Viewing: predbat.2.log

2026-08-16 02:05:06.394285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:05:06.394534: Inverter 0 count register writes 0
2026-08-16 02:05:06.416652: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:05:06.427712: Total inverter register writes now 826
2026-08-16 02:05:06.483162: Info: Completed run status Demand
2026-08-16 02:05:06.499029: Info: record_status Demand
2026-08-16 02:05:06.531261: Saved current settings to /config/predbat_config.json
2026-08-16 02:05:06.535368: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:05:36.132687: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0062 val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0008 kWh ema_combined=0.0010 kWh
2026-08-16 02:05:41.751435: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:05:41.751720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:05:41.751768: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:05:41.751931: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:05:41.751980: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:05:41.752009: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:05:41.752148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:06:07.360313: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0056 val_mae=0.0015 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0011 kWh ema_combined=0.0010 kWh
2026-08-16 02:06:40.617932: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0013 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0008 kWh ema_combined=0.0009 kWh
2026-08-16 02:07:11.724294: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0013 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0007 kWh ema_combined=0.0009 kWh
2026-08-16 02:07:42.311891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:07:42.312330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:07:42.312393: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:07:42.312751: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:07:42.312846: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:07:42.312894: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:07:42.313236: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:07:44.556509: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0053 val_mae=0.0013 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0010 kWh ema_combined=0.0009 kWh
2026-08-16 02:08:18.114242: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0055 val_mae=0.0013 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0010 kWh ema_combined=0.0009 kWh
2026-08-16 02:08:52.005667: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0012 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0007 kWh ema_combined=0.0009 kWh
2026-08-16 02:09:25.027798: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0052 val_mae=0.0012 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0007 kWh ema_combined=0.0008 kWh
2026-08-16 02:09:55.284702: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0011 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0007 kWh ema_combined=0.0008 kWh
2026-08-16 02:09:56.919433: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:09:56.919908: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:09:56.920079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:09:56.920418: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:09:56.920574: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:09:56.920706: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:09:56.920832: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:10:00.184557: --------------- PredBat - update at 2026-08-16 02:10:00+01:00 with clock skew 0 minutes, minutes now 130
2026-08-16 02:10:00.189887: Saved current settings to /config/predbat_config.json
2026-08-16 02:10:00.190064: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 02:10:00.190176: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:10:00.190431: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:10:00.219580: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:10:00.219717: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:10:00.219890: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:10:00.220472: Cars 1 charging from battery False 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-16 02:10:00.220600: Predbat mode is set to Control charge & discharge
2026-08-16 02:10:00.568261: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:10:00.568522: Using load_power data to fill gaps in load_today data
2026-08-16 02:10:02.161109: Processing 721 30-minute periods for power integration
2026-08-16 02:10:02.598361: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:10:02.598649: Car charging hold False, threshold 6.0kWh
2026-08-16 02:10:02.598716: Current data so far today: load 1.75kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:10:02.617822: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:10:02.618331: Standing charge is set to 49.98p
2026-08-16 02:10:02.653223: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:10:02.653364: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:10:02.653672: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 130.0 minutes
2026-08-16 02:10:02.654282: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 129.8 minutes
2026-08-16 02:10:02.657943: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:10:02.783924: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:10:02.952090: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:10:02.966365: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:10:03.117002: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:10:03.117189: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:10:03.118915: High export rate found rates in range 99p to -99p
2026-08-16 02:10:03.257088: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:10:03.257354: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:10:03.288115: Battery level now 10.49kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -0.55p, change today -1.72p, rate_forward 1.0p
2026-08-16 02:10:03.288546: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 0.93p, import 0.93p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:10:03.394134: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:10:03.399139: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:10:03.545099: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:10:03.614284: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:10:03.626204: Today's predicted so far 1.96kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 1.96kWh forecast extra.
2026-08-16 02:10:03.627772: Today's actual load so far 1.77kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:10:03.748288: Inverter 0: Type SK Sunsynk
2026-08-16 02:10:03.749741: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:10:03.749984: Reserve min: 7%, battery_min: 7%
2026-08-16 02:10:03.750061: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:10:03.750349: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 465W, current battery voltage 51.2V, grid power -55W, load power 521W, PV Power 0W
2026-08-16 02:10:03.750520: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:10:03.750616: Inverter 0 scheduled charge enable is False
2026-08-16 02:10:03.750655: Inverter 0 charge windows currently []
2026-08-16 02:10:03.750683: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:10:03.750789: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:10:03.750934: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:10:03.751073: Inverter 0 scheduled discharge enable is False
2026-08-16 02:10:03.751338: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:10:03.751467: Inverter 0 discharge windows currently []
2026-08-16 02:10:03.751592: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:10:03.751700: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:10:03.751791: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:10:03.894281: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:10:03.895832: Plan was last updated on 2026-08-16 02:00:00+01:00 and is now 10.0 minutes old
2026-08-16 02:10:03.896936: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:10:03.897027: Best export window [  ]
2026-08-16 02:10:03.901625: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:10:03.906594: Load divergence over 8.0 hours mean 517.12W, min 291.6W, max 1619.4W, std dev 312.23W, divergence 30.19%
2026-08-16 02:10:03.960882: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:10:03.974543: LoadML is_calculating True
2026-08-16 02:10:03.974698: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:10:04.048254: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 378.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.3kWh, PV 0.0kWh
2026-08-16 02:10:04.291644: Battery has 17.42 hours left - now at 10.4kWh
2026-08-16 02:10:04.354916: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 407.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.18kWh, PV 0.0kWh
2026-08-16 02:10:04.517722: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 273.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 21.18kWh, PV 0.0kWh
2026-08-16 02:10:04.715012: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 237.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.3kWh, PV 0.0kWh
2026-08-16 02:10:04.715381: Saving plan best values to HA entities
2026-08-16 02:10:05.056480: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:10:05.065002: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:10:05.072670: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.26kWh, house 1.39kWh, export 0.0kWh, metric 237.71p, metric10 273.17p
2026-08-16 02:10:05.272067: Marginal costs baseline metric (no standing charge): 187.7251
2026-08-16 02:10:05.668145: Marginal energy costs matrix computed: min=20.84 max=26.05
2026-08-16 02:10:05.885243: Rate array import [{'start': 130, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 130, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:10:05.886080: - Your estimated bill for today is £1.30 and tomorrow is £7.27
2026-08-16 02:10:05.886131: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:10:05.886168: - The battery is currently at 65% and is in eco mode for the next 8 hours.
2026-08-16 02:10:05.886191: - For the next 48 hours there will be no solar generation.
2026-08-16 02:10:05.886301: - You will run out of battery in 30 hours.
2026-08-16 02:10:05.886348: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:10:05.886370: 
2026-08-16 02:10:05.941249: Plan calculation took 2.05 seconds
2026-08-16 02:10:05.944855: No high rate period found
2026-08-16 02:10:06.105345: Import threshold used for optimisation was 23.43p
2026-08-16 02:10:06.184872: Low import rate windows [0: 08-16 02:00:00 - 08-16 02:30:00 @ 25.79, 1: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 2: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 3: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 4: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 5: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 6: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 7: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 8: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 9: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 10: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 11: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 12: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 13: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 14: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 15: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 16: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 17: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 18: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 19: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 20: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 21: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 22: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 23: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 24: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 25: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 26: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 27: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 28: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 29: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 30: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 31: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 32: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 33: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 34: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 35: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 36: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 37: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 38: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 39: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 40: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 41: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 42: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 43: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 44: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 45: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 46: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 47: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 48: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 49: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 50: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 51: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 52: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 53: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 54: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 55: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 56: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 57: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 58: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 59: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 60: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 61: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 62: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 63: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 64: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 65: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 66: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 67: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 68: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 69: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 70: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 71: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 72: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 73: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 74: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 75: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 76: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 77: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 78: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 79: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 80: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 81: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 82: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 83: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 84: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 85: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 86: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 87: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 88: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 89: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 90: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 91: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 92: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 93: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 94: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79]
2026-08-16 02:10:06.193001: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 02:10:06.193178: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:10:06.193319: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:10:06.193501: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:10:06.193570: No export window planned
2026-08-16 02:10:06.193656: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:10:06.193684: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:10:06.193795: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:10:06.193926: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:10:06.193963: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:10:06.194001: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:10:06.194062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194136: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194222: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:10:06.194426: Inverter 0 count register writes 0
2026-08-16 02:10:06.212750: 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-16 02:10:06.212909: Recompute is saving previous plan...
2026-08-16 02:10:06.215454: Best charge window [ 16-08 02:00:00 - 16-08 02:30:00 @ 25.79p 0%, 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0% ]
2026-08-16 02:10:06.238801: Best export window [  ]
2026-08-16 02:10:06.240339: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:10:06.246667: Load divergence over 8.0 hours mean 517.12W, min 291.6W, max 1619.4W, std dev 312.23W, divergence 30.19%
2026-08-16 02:10:06.339968: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:10:06.340114: LoadML is_calculating True
2026-08-16 02:10:06.340165: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:10:06.402457: 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(0.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-16 02:10:06.404317: Optimise levels pass started at 2026-08-16 02:10:06
2026-08-16 02:10:06.404389: Optimise all windows, total charge 94 export 1
2026-08-16 02:10:14.433092: >> Region optimisation pass width 960 gives best_metric 428.27p, best_cost 440.63p, best_cycle 41.44kWh, best_import 23.15kWh
2026-08-16 02:10:15.474547: >> Region optimisation pass width 480 gives best_metric 428.27p, best_cost 440.63p, best_cycle 41.44kWh, best_import 23.15kWh
2026-08-16 02:10:20.752559: >> Region optimisation pass width 240 gives best_metric 428.27p, best_cost 440.63p, best_cycle 41.44kWh, best_import 23.15kWh
2026-08-16 02:10:24.952001: >> Region optimisation pass width 120 gives best_metric 428.27p, best_cost 440.63p, best_cycle 41.44kWh, best_import 23.15kWh
2026-08-16 02:10:24.952561: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 65
2026-08-16 02:10:24.952882: Optimise levels pass ended at 2026-08-16 02:10:24, duration 18.5 seconds tried 386 combinations
2026-08-16 02:10:24.953011: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 428.27p, best_keep 0kWh, best_cycle 41.44kWh, best_carbon 0kg, best_import 23.15kWh
2026-08-16 02:10:24.979345: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 02:10:57.318298: Tweak plan optimisation started metric 149.59p, cost 164.46p
2026-08-16 02:10:59.618714: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0048 val_mae=0.0011 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0008 kWh ema_combined=0.0008 kWh
2026-08-16 02:10:59.738140: Tweak optimisation finished metric 149.59p, cost 164.46p, metric_keep 0kWh, cycle 22.77kWh, carbon 0kg, import 10.76kWh, changed 8 window(s)
2026-08-16 02:10:59.755112: Swap charge optimisation started metric 149.59p, cost 164.46p, min_improvement_swap 0.1p
2026-08-16 02:11:12.654781: Swap charge optimisation finished metric 149.59p, cost 164.46p
2026-08-16 02:11:12.809964: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 143.86p -> 143.86p, plan now metric 149.68p, cost 164.46p, cycle 22.77kWh, import 10.76kWh
2026-08-16 02:11:12.841763: Raw charge windows [ 16-08 02:00:00 - 16-08 02:30:00 @ 25.79p 0%, 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100% ] reserve 1.12
2026-08-16 02:11:12.842679: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:11:12.843060: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:11:12.843404: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:11:12.902450: Previous plan best metric is 149.48 (cost 164.37) and new plan best metric is 149.59 (cost 164.46)
2026-08-16 02:11:12.902917: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 02:11:12.903253: Plan valid is now true after recompute was False
2026-08-16 02:11:12.951681: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 375.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.17kWh, PV 0.0kWh
2026-08-16 02:11:13.210799: Battery has 17.42 hours left - now at 10.4kWh
2026-08-16 02:11:13.266146: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 403.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.04kWh, PV 0.0kWh
2026-08-16 02:11:13.381975: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 253.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 21.04kWh, PV 0.0kWh
2026-08-16 02:11:13.525913: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 214.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.17kWh, PV 0.0kWh
2026-08-16 02:11:13.526003: Saving plan best values to HA entities
2026-08-16 02:11:13.912369: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:11:13.922957: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:11:13.947345: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.3kWh, house 1.39kWh, export 0.0kWh, metric 214.35p, metric10 253.03p
2026-08-16 02:11:14.066258: Marginal costs baseline metric (no standing charge): 164.3691
2026-08-16 02:11:14.412568: Marginal energy costs matrix computed: min=20.84 max=26.05
2026-08-16 02:11:14.500811: Rate array import [{'start': 130, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 130, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:11:14.501707: - Your estimated bill for today is £1.30 and tomorrow is £7.27
2026-08-16 02:11:14.501787: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:11:14.501850: - The battery is currently at 65% and is in eco mode for the next 8 hours.
2026-08-16 02:11:14.501973: - For the next 48 hours there will be no solar generation.
2026-08-16 02:11:14.502036: - You will run out of battery in 30 hours.
2026-08-16 02:11:14.502089: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:11:14.502116: 
2026-08-16 02:11:14.553406: Plan calculation took 68.34 seconds
2026-08-16 02:11:14.553698: Inverter 0: Type SK Sunsynk
2026-08-16 02:11:14.553770: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:11:14.554045: Reserve min: 7%, battery_min: 7%
2026-08-16 02:11:14.554184: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:11:14.554563: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 472W, current battery voltage 51.2V, grid power -55W, load power 527W, PV Power 0W
2026-08-16 02:11:14.554796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:11:14.554933: Inverter 0 scheduled charge enable is False
2026-08-16 02:11:14.554992: Inverter 0 charge windows currently []
2026-08-16 02:11:14.555039: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:11:14.555342: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:11:14.555504: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:11:14.555675: Inverter 0 scheduled discharge enable is False
2026-08-16 02:11:14.555980: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:11:14.556107: Inverter 0 discharge windows currently []
2026-08-16 02:11:14.556174: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:11:14.556259: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:11:14.556394: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:11:14.664778: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 02:11:14.665118: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:11:14.665305: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:11:14.665592: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:11:14.665756: No export window planned
2026-08-16 02:11:14.665959: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:11:14.666077: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:11:14.666326: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:11:14.666580: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:11:14.666716: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:11:14.666854: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:11:14.667024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667406: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.667924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:11:14.668874: Inverter 0 count register writes 0
2026-08-16 02:11:14.709386: Total inverter register writes now 826
2026-08-16 02:11:14.791132: Info: Completed run status Demand
2026-08-16 02:11:14.800483: Info: record_status Demand
2026-08-16 02:11:14.814230: Saved current settings to /config/predbat_config.json
2026-08-16 02:11:14.814590: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:11:41.151406: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0011 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0007 kWh ema_combined=0.0008 kWh
2026-08-16 02:11:56.989543: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:11:56.989805: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:11:56.989855: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:11:56.989997: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:11:56.990039: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:11:56.990061: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:11:56.990183: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:12:11.183947: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0048 val_mae=0.0012 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0006 kWh ema_combined=0.0007 kWh
2026-08-16 02:12:45.049062: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0011 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0006 kWh ema_combined=0.0007 kWh
2026-08-16 02:13:16.896571: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0011 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0007 kWh ema_combined=0.0007 kWh
2026-08-16 02:13:16.903628: ML Predictor: Restored best weights from epoch with val_mae=0.0011 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-16 02:13:16.904095: ML Predictor: Training complete, final val_mae=0.0011 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-16 02:13:25.828446: ML Predictor: AR rollout over holdout: ar_mae=0.0012 kWh ar_bias=-0.0002 kWh (-0.3%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 02:13:25.848465: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0011 kWh
2026-08-16 02:13:25.926874: ML Predictor: Curriculum pass 2/5: window=55.0 days (1320 hours of data)
2026-08-16 02:13:25.927144: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 02:13:26.607508: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 02:13:32.179778: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 02:13:32.231782: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0471) load(mean=0.0587 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.5093 std=4.4217) import_rate(mean=26.1317 std=2.9082) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5246)
2026-08-16 02:13:32.323355: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 02:13:32.342196: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 02:13:32.381884: ML Predictor: Baseline (pre-finetune) val_mae=0.0032 kWh val_bias=-0.0017 kWh
2026-08-16 02:13:57.006096: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:13:57.006541: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:13:57.006699: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:13:57.006969: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:13:57.007100: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:13:57.007239: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:13:57.007348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:14:04.840009: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0087 val_mae=0.0033 kWh val_bias=-0.0020 kWh (-2.9%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-16 02:14:37.787408: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0091 val_mae=0.0037 kWh val_bias=-0.0027 kWh (-3.8%) combined=0.0037 kWh ema_combined=0.0032 kWh
2026-08-16 02:15:00.355844: --------------- PredBat - update at 2026-08-16 02:15:00+01:00 with clock skew 0 minutes, minutes now 135
2026-08-16 02:15:00.356683: Saved current settings to /config/predbat_config.json
2026-08-16 02:15:00.356838: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 02:15:00.356928: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:15:00.357028: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:15:00.386046: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:15:00.386199: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:15:00.386510: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:15:00.387651: Cars 1 charging from battery False 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-16 02:15:00.387848: Predbat mode is set to Control charge & discharge
2026-08-16 02:15:00.810927: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:15:00.811198: Using load_power data to fill gaps in load_today data
2026-08-16 02:15:02.243498: Processing 721 30-minute periods for power integration
2026-08-16 02:15:02.480050: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:15:02.480369: Car charging hold False, threshold 6.0kWh
2026-08-16 02:15:02.480537: Current data so far today: load 1.8kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:15:02.503831: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:15:02.504510: Standing charge is set to 49.98p
2026-08-16 02:15:02.561510: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:15:02.561673: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:15:02.561952: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 135.0 minutes
2026-08-16 02:15:02.562641: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 134.8 minutes
2026-08-16 02:15:02.566702: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:15:02.709697: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:15:02.883654: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:15:02.885597: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:15:02.979156: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:15:02.980689: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:15:02.982016: High export rate found rates in range 99p to -99p
2026-08-16 02:15:03.076149: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:15:03.076590: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:15:03.098426: Battery level now 10.4kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -1.81p, rate_forward 1.0p
2026-08-16 02:15:03.098920: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.79p, import 0.79p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:15:03.209725: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:15:03.210054: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:15:03.400996: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:15:03.426366: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:15:03.426470: Today's predicted so far 1.96kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 1.96kWh forecast extra.
2026-08-16 02:15:03.426502: Today's actual load so far 1.74kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:15:03.475509: Inverter 0: Type SK Sunsynk
2026-08-16 02:15:03.475605: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:15:03.475785: Reserve min: 7%, battery_min: 7%
2026-08-16 02:15:03.475857: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:15:03.476123: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 492W, current battery voltage 51.2V, grid power -54W, load power 545W, PV Power 0W
2026-08-16 02:15:03.476318: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:15:03.476442: Inverter 0 scheduled charge enable is False
2026-08-16 02:15:03.476481: Inverter 0 charge windows currently []
2026-08-16 02:15:03.476594: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:15:03.476785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:15:03.476833: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:15:03.476977: Inverter 0 scheduled discharge enable is False
2026-08-16 02:15:03.477208: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:15:03.477257: Inverter 0 discharge windows currently []
2026-08-16 02:15:03.477325: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:15:03.477359: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:15:03.477414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:15:03.582207: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:15:03.582329: Plan was last updated on 2026-08-16 02:10:00+01:00 and is now 5.0 minutes old
2026-08-16 02:15:03.582688: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:15:03.582743: Best export window [  ]
2026-08-16 02:15:03.583611: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:15:03.586934: Load divergence over 8.0 hours mean 511.53W, min 288.0W, max 1631.4W, std dev 314.3W, divergence 30.72%
2026-08-16 02:15:03.609676: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:15:03.609936: LoadML is_calculating True
2026-08-16 02:15:03.610054: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:15:03.645798: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 376.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.24kWh, PV 0.0kWh
2026-08-16 02:15:03.902843: Battery has 17.42 hours left - now at 10.4kWh
2026-08-16 02:15:04.039010: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 403.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.12kWh, PV 0.0kWh
2026-08-16 02:15:04.197571: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 261.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 21.12kWh, PV 0.0kWh
2026-08-16 02:15:04.335282: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 224.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.24kWh, PV 0.0kWh
2026-08-16 02:15:04.335470: Saving plan best values to HA entities
2026-08-16 02:15:04.671045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:15:04.681902: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:15:04.689902: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.74kWh, house 1.38kWh, export 0.0kWh, metric 224.93p, metric10 261.88p
2026-08-16 02:15:04.814305: Marginal costs baseline metric (no standing charge): 174.9445
2026-08-16 02:15:05.378490: Marginal energy costs matrix computed: min=18.64 max=26.07
2026-08-16 02:15:05.504030: Rate array import [{'start': 135, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 135, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:15:05.504904: - Your estimated bill for today is £1.29 and tomorrow is £7.29
2026-08-16 02:15:05.505120: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:15:05.505259: - The battery is currently at 65% and is in eco mode for the next 8 hours.
2026-08-16 02:15:05.505367: - For the next 48 hours there will be no solar generation.
2026-08-16 02:15:05.505467: - You will run out of battery in 30 hours.
2026-08-16 02:15:05.505609: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:15:05.505718: 
2026-08-16 02:15:05.551510: Plan calculation took 1.97 seconds
2026-08-16 02:15:05.559957: No high rate period found
2026-08-16 02:15:05.730575: Import threshold used for optimisation was 23.43p
2026-08-16 02:15:05.886497: Low import rate windows [0: 08-16 02:00:00 - 08-16 02:30:00 @ 25.79, 1: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 2: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 3: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 4: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 5: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 6: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 7: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 8: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 9: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 10: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 11: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 12: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 13: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 14: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 15: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 16: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 17: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 18: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 19: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 20: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 21: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 22: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 23: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 24: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 25: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 26: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 27: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 28: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 29: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 30: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 31: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 32: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 33: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 34: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 35: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 36: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 37: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 38: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 39: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 40: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 41: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 42: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 43: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 44: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 45: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 46: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 47: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 48: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 49: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 50: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 51: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 52: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 53: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 54: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 55: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 56: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 57: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 58: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 59: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 60: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 61: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 62: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 63: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 64: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 65: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 66: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 67: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 68: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 69: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 70: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 71: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 72: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 73: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 74: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 75: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 76: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 77: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 78: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 79: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 80: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 81: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 82: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 83: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 84: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 85: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 86: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 87: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 88: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 89: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 90: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 91: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 92: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 93: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 94: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79]
2026-08-16 02:15:05.895844: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 02:15:05.896016: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:15:05.896112: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:15:05.896399: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:15:05.896515: No export window planned
2026-08-16 02:15:05.896757: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:15:05.896890: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:15:05.897197: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:15:05.897425: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:15:05.897502: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:15:05.897578: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:15:05.897708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.897779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.897832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.897882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.897929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.897976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:15:05.898647: Inverter 0 count register writes 0
2026-08-16 02:15:05.935536: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:15:05.949153: Total inverter register writes now 826
2026-08-16 02:15:06.006451: Info: Completed run status Demand
2026-08-16 02:15:06.016814: Info: record_status Demand
2026-08-16 02:15:06.028226: Saved current settings to /config/predbat_config.json
2026-08-16 02:15:06.028634: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:15:14.113269: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0095 val_mae=0.0029 kWh val_bias=-0.0011 kWh (-1.6%) combined=0.0018 kWh ema_combined=0.0028 kWh
2026-08-16 02:15:42.224789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:15:42.225185: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:15:42.225266: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:15:42.225494: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:15:42.225721: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:15:42.225781: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:15:42.225819: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:15:46.431386: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0090 val_mae=0.0032 kWh val_bias=-0.0013 kWh (-1.9%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-16 02:16:19.499088: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0095 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-16 02:16:50.421071: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0103 val_mae=0.0038 kWh val_bias=-0.0024 kWh (-3.4%) combined=0.0033 kWh ema_combined=0.0026 kWh
2026-08-16 02:17:24.364308: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0092 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0023 kWh
2026-08-16 02:17:56.753319: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0081 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 02:17:56.765309: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:17:56.765770: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:17:56.765931: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:17:56.766250: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:17:56.766406: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:17:56.766537: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:17:56.766661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:18:52.078941: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0088 val_mae=0.0031 kWh val_bias=+0.0015 kWh (+2.1%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 02:19:50.008213: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-16 02:20:00.712857: --------------- PredBat - update at 2026-08-16 02:20:00+01:00 with clock skew 0 minutes, minutes now 140
2026-08-16 02:20:00.714207: Saved current settings to /config/predbat_config.json
2026-08-16 02:20:00.714409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 02:20:00.714633: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:20:00.714796: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:20:00.766486: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:20:00.766935: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:20:00.767601: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:20:00.770866: Cars 1 charging from battery False 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-16 02:20:00.771315: Predbat mode is set to Control charge & discharge
2026-08-16 02:20:01.331776: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:20:01.331965: Using load_power data to fill gaps in load_today data
2026-08-16 02:20:02.829904: Processing 721 30-minute periods for power integration
2026-08-16 02:20:03.308046: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:20:03.308494: Car charging hold False, threshold 6.0kWh
2026-08-16 02:20:03.308578: Current data so far today: load 1.7kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:20:03.347958: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:20:03.348587: Standing charge is set to 49.98p
2026-08-16 02:20:03.389850: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:20:03.389973: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:20:03.390383: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 140.0 minutes
2026-08-16 02:20:03.390989: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 139.8 minutes
2026-08-16 02:20:03.396586: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:20:03.507382: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:20:03.609563: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:20:03.610201: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:20:03.727353: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:20:03.737879: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:20:03.740579: High export rate found rates in range 99p to -99p
2026-08-16 02:20:04.062091: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:20:04.062537: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:20:04.080099: Battery level now 10.4kWh, -1hr ago 10.75kWh, at midnight 12.21kWh, battery value change in the last hour -0.35p, change today -1.81p, rate_forward 1.0p
2026-08-16 02:20:04.080484: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.66p, import 0.66p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:20:04.169068: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:20:04.169298: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:20:04.285483: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:20:04.319505: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:20:04.319682: Today's predicted so far 2.01kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.01kWh forecast extra.
2026-08-16 02:20:04.319756: Today's actual load so far 1.66kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:20:04.426202: Inverter 0: Type SK Sunsynk
2026-08-16 02:20:04.426465: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:20:04.426797: Reserve min: 7%, battery_min: 7%
2026-08-16 02:20:04.426976: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:20:04.427421: Inverter 0 SoC: 10.3kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -54W, load power 503W, PV Power 0W
2026-08-16 02:20:04.427745: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:20:04.427979: Inverter 0 scheduled charge enable is False
2026-08-16 02:20:04.428107: Inverter 0 charge windows currently []
2026-08-16 02:20:04.428257: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:20:04.428544: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:20:04.428693: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:20:04.428971: Inverter 0 scheduled discharge enable is False
2026-08-16 02:20:04.429316: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:20:04.429476: Inverter 0 discharge windows currently []
2026-08-16 02:20:04.429610: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:20:04.429765: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:20:04.430077: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:20:04.539240: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:20:04.539567: Plan was last updated on 2026-08-16 02:10:00+01:00 and is now 10.0 minutes old
2026-08-16 02:20:04.540317: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:20:04.540530: Best export window [  ]
2026-08-16 02:20:04.542080: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:20:04.546472: Load divergence over 8.0 hours mean 498.59W, min 290.4W, max 1545.0W, std dev 294.84W, divergence 29.57%
2026-08-16 02:20:04.599390: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:20:04.599744: LoadML is_calculating True
2026-08-16 02:20:04.599949: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:20:04.684716: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 378.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.13kWh, PV 0.0kWh
2026-08-16 02:20:05.290319: Battery has 17.33 hours left - now at 10.3kWh
2026-08-16 02:20:05.361711: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 406.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.01kWh, PV 0.0kWh
2026-08-16 02:20:05.603573: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 272.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 21.01kWh, PV 0.0kWh
2026-08-16 02:20:05.893367: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 237.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.13kWh, PV 0.0kWh
2026-08-16 02:20:05.893519: Saving plan best values to HA entities
2026-08-16 02:20:06.257850: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:20:06.276771: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:20:06.290241: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.25kWh, house 1.37kWh, export 0.0kWh, metric 237.14p, metric10 272.46p
2026-08-16 02:20:06.438951: Marginal costs baseline metric (no standing charge): 187.1587
2026-08-16 02:20:06.952375: Marginal energy costs matrix computed: min=16.54 max=26.11
2026-08-16 02:20:07.127584: Rate array import [{'start': 140, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 140, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:20:07.129004: - Your estimated bill for today is £1.30 and tomorrow is £7.29
2026-08-16 02:20:07.129251: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:20:07.129404: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:20:07.129547: - For the next 48 hours there will be no solar generation.
2026-08-16 02:20:07.129680: - You will run out of battery in 30 hours.
2026-08-16 02:20:07.129814: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:20:07.129946: 
2026-08-16 02:20:07.190685: Plan calculation took 2.65 seconds
2026-08-16 02:20:07.196289: No high rate period found
2026-08-16 02:20:07.296883: Import threshold used for optimisation was 23.43p
2026-08-16 02:20:07.430753: Low import rate windows [0: 08-16 02:00:00 - 08-16 02:30:00 @ 25.79, 1: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 2: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 3: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 4: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 5: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 6: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 7: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 8: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 9: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 10: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 11: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 12: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 13: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 14: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 15: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 16: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 17: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 18: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 19: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 20: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 21: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 22: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 23: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 24: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 25: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 26: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 27: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 28: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 29: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 30: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 31: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 32: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 33: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 34: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 35: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 36: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 37: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 38: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 39: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 40: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 41: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 42: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 43: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 44: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 45: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 46: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 47: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 48: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 49: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 50: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 51: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 52: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 53: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 54: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 55: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 56: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 57: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 58: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 59: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 60: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 61: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 62: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 63: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 64: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 65: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 66: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 67: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 68: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 69: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 70: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 71: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 72: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 73: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 74: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 75: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 76: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 77: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 78: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 79: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 80: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 81: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 82: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 83: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 84: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 85: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 86: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 87: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 88: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 89: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 90: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 91: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 92: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 93: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 94: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79]
2026-08-16 02:20:07.460248: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:20:07.460449: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:20:07.460565: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:20:07.460833: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:20:07.460938: No export window planned
2026-08-16 02:20:07.461128: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:20:07.461198: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:20:07.461556: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:20:07.461851: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:20:07.462025: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:20:07.462166: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:20:07.462365: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462612: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462709: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462771: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.462910: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:20:07.463835: Inverter 0 count register writes 0
2026-08-16 02:20:07.493467: 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-16 02:20:07.493749: Recompute is saving previous plan...
2026-08-16 02:20:07.500026: Best charge window [ 16-08 02:00:00 - 16-08 02:30:00 @ 25.79p 0%, 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0% ]
2026-08-16 02:20:07.500317: Best export window [  ]
2026-08-16 02:20:07.502164: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:20:07.508851: Load divergence over 8.0 hours mean 498.59W, min 290.4W, max 1545.0W, std dev 294.84W, divergence 29.57%
2026-08-16 02:20:07.530268: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:20:07.530556: LoadML is_calculating True
2026-08-16 02:20:07.530701: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:20:07.539691: 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(0.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-16 02:20:07.542243: Optimise levels pass started at 2026-08-16 02:20:07
2026-08-16 02:20:07.542323: Optimise all windows, total charge 94 export 1
2026-08-16 02:20:12.968687: >> Region optimisation pass width 960 gives best_metric 431.26p, best_cost 443.54p, best_cycle 40.61kWh, best_import 23.2kWh
2026-08-16 02:20:14.050913: >> Region optimisation pass width 480 gives best_metric 431.26p, best_cost 443.54p, best_cycle 40.61kWh, best_import 23.2kWh
2026-08-16 02:20:15.249736: >> Region optimisation pass width 240 gives best_metric 431.26p, best_cost 443.54p, best_cycle 40.61kWh, best_import 23.2kWh
2026-08-16 02:20:21.339909: >> Region optimisation pass width 120 gives best_metric 430.62p, best_cost 442.92p, best_cycle 41.38kWh, best_import 23.25kWh
2026-08-16 02:20:21.345198: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 65
2026-08-16 02:20:21.345572: Optimise levels pass ended at 2026-08-16 02:20:21, duration 13.8 seconds tried 326 combinations
2026-08-16 02:20:21.345863: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 430.62p, best_keep 0kWh, best_cycle 41.38kWh, best_carbon 0kg, best_import 23.25kWh
2026-08-16 02:20:21.383829: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.75, 11.75, 0, 0, 0, 0, 16.0, 11.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 02:20:58.706317: Tweak plan optimisation started metric 148.93p, cost 163.83p
2026-08-16 02:21:01.091299: Tweak optimisation finished metric 148.93p, cost 163.83p, metric_keep 0kWh, cycle 22.66kWh, carbon 0kg, import 10.73kWh, changed 8 window(s)
2026-08-16 02:21:01.116761: Swap charge optimisation started metric 148.93p, cost 163.83p, min_improvement_swap 0.1p
2026-08-16 02:21:05.133310: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0087 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0011 kWh ema_combined=0.0018 kWh
2026-08-16 02:21:14.295437: Swap charge optimisation finished metric 148.93p, cost 163.83p
2026-08-16 02:21:14.529444: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 143.23p -> 143.23p, plan now metric 149.03p, cost 163.83p, cycle 22.66kWh, import 10.73kWh
2026-08-16 02:21:14.539605: Raw charge windows [ 16-08 02:00:00 - 16-08 02:30:00 @ 25.79p 0%, 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100% ] reserve 1.12
2026-08-16 02:21:14.540273: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:21:14.540555: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:21:14.540727: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:21:14.571947: Previous plan best metric is 148.84 (cost 163.74) and new plan best metric is 148.93 (cost 163.83)
2026-08-16 02:21:14.572158: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 02:21:14.572287: Plan valid is now true after recompute was False
2026-08-16 02:21:14.594635: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 375.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:21:14.784239: Battery has 17.33 hours left - now at 10.3kWh
2026-08-16 02:21:14.900426: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 402.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:21:15.037416: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 252.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:21:15.220307: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 213.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:21:15.220560: Saving plan best values to HA entities
2026-08-16 02:21:15.534169: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:21:15.540308: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:21:15.557593: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.29kWh, house 1.37kWh, export 0.0kWh, metric 213.72p, metric10 252.25p
2026-08-16 02:21:15.695601: Marginal costs baseline metric (no standing charge): 163.7373
2026-08-16 02:21:16.241137: Marginal energy costs matrix computed: min=16.54 max=26.11
2026-08-16 02:21:16.354499: Rate array import [{'start': 140, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 140, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:21:16.355544: - Your estimated bill for today is £1.30 and tomorrow is £7.29
2026-08-16 02:21:16.355600: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:21:16.355628: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:21:16.355661: - For the next 48 hours there will be no solar generation.
2026-08-16 02:21:16.355684: - You will run out of battery in 30 hours.
2026-08-16 02:21:16.355706: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:21:16.355737: 
2026-08-16 02:21:16.406603: Plan calculation took 68.91 seconds
2026-08-16 02:21:16.407053: Inverter 0: Type SK Sunsynk
2026-08-16 02:21:16.407246: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:21:16.407577: Reserve min: 7%, battery_min: 7%
2026-08-16 02:21:16.407785: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:21:16.408215: Inverter 0 SoC: 10.3kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 465W, current battery voltage 51.2V, grid power -56W, load power 519W, PV Power 0W
2026-08-16 02:21:16.408535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:21:16.408771: Inverter 0 scheduled charge enable is False
2026-08-16 02:21:16.408902: Inverter 0 charge windows currently []
2026-08-16 02:21:16.409073: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:21:16.409431: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:21:16.409568: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:21:16.409735: Inverter 0 scheduled discharge enable is False
2026-08-16 02:21:16.410134: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:21:16.410304: Inverter 0 discharge windows currently []
2026-08-16 02:21:16.410451: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:21:16.410589: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:21:16.410922: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:21:16.534119: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:21:16.534321: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:21:16.534397: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:21:16.534729: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:21:16.534879: No export window planned
2026-08-16 02:21:16.535087: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:21:16.535147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:21:16.535471: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:21:16.535722: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:21:16.535835: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:21:16.535971: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:21:16.536135: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536262: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536321: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536449: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.536935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:21:16.537485: Inverter 0 count register writes 0
2026-08-16 02:21:16.587848: Total inverter register writes now 826
2026-08-16 02:21:16.644764: Info: Completed run status Demand
2026-08-16 02:21:16.657379: Info: record_status Demand
2026-08-16 02:21:16.670131: Saved current settings to /config/predbat_config.json
2026-08-16 02:21:16.670462: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:21:47.236276: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0080 val_mae=0.0024 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 02:21:56.896541: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:21:56.896825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:21:56.896877: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:21:56.897083: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:21:56.897139: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:21:56.897168: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:21:56.897302: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:22:17.895324: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0078 val_mae=0.0024 kWh val_bias=+0.0007 kWh (+1.1%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-16 02:22:53.369830: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0066 val_mae=0.0024 kWh val_bias=-0.0011 kWh (-1.6%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-16 02:23:27.575908: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0061 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 02:24:03.464041: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=-0.0012 kWh (-1.7%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 02:24:11.522118: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:24:11.522494: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:24:11.522546: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:24:11.522792: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:24:11.522843: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:24:11.522918: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:24:11.523036: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:24:36.319616: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0058 val_mae=0.0020 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 02:25:00.751074: --------------- PredBat - update at 2026-08-16 02:25:00+01:00 with clock skew 0 minutes, minutes now 145
2026-08-16 02:25:00.752315: Saved current settings to /config/predbat_config.json
2026-08-16 02:25:00.752562: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 02:25:00.752719: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:25:00.752877: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:25:00.788781: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:25:00.789080: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:25:00.789407: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:25:00.790112: Cars 1 charging from battery False 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-16 02:25:00.790357: Predbat mode is set to Control charge & discharge
2026-08-16 02:25:01.135877: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:25:01.136250: Using load_power data to fill gaps in load_today data
2026-08-16 02:25:02.380621: Processing 721 30-minute periods for power integration
2026-08-16 02:25:02.696111: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:25:02.696314: Car charging hold False, threshold 6.0kWh
2026-08-16 02:25:02.696390: Current data so far today: load 1.7kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:25:02.712776: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:25:02.713437: Standing charge is set to 49.98p
2026-08-16 02:25:02.773615: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:25:02.773752: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:25:02.774207: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 145.0 minutes
2026-08-16 02:25:02.774887: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 144.8 minutes
2026-08-16 02:25:02.779834: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:25:02.925069: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:25:03.056231: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:25:03.056770: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:25:03.150976: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:25:03.163957: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:25:03.165525: High export rate found rates in range 99p to -99p
2026-08-16 02:25:03.301756: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:25:03.302170: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:25:03.323366: Battery level now 10.3kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -0.42p, change today -1.91p, rate_forward 1.0p
2026-08-16 02:25:03.323937: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.53p, import 0.53p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:25:03.403419: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:25:03.403626: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:25:03.582819: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:25:03.671143: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:25:03.671329: Today's predicted so far 2.06kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.06kWh forecast extra.
2026-08-16 02:25:03.671382: Today's actual load so far 1.67kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:25:03.760161: Inverter 0: Type SK Sunsynk
2026-08-16 02:25:03.760599: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:25:03.761060: Reserve min: 7%, battery_min: 7%
2026-08-16 02:25:03.761256: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:25:03.761862: Inverter 0 SoC: 10.3kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 475W, current battery voltage 51.2V, grid power -55W, load power 530W, PV Power 0W
2026-08-16 02:25:03.762095: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:25:03.762858: Inverter 0 scheduled charge enable is False
2026-08-16 02:25:03.762923: Inverter 0 charge windows currently []
2026-08-16 02:25:03.762957: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:25:03.763107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:25:03.763148: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:25:03.763206: Inverter 0 scheduled discharge enable is False
2026-08-16 02:25:03.763357: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:25:03.763396: Inverter 0 discharge windows currently []
2026-08-16 02:25:03.763420: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:25:03.763439: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:25:03.763466: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:25:03.882960: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:25:03.883109: Plan was last updated on 2026-08-16 02:20:00+01:00 and is now 5.0 minutes old
2026-08-16 02:25:03.883512: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:25:03.883593: Best export window [  ]
2026-08-16 02:25:03.885005: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:25:03.890368: Load divergence over 8.0 hours mean 488.87W, min 290.4W, max 1572.0W, std dev 277.96W, divergence 28.43%
2026-08-16 02:25:03.957088: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:25:03.957395: LoadML is_calculating True
2026-08-16 02:25:03.957577: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:25:04.102041: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 374.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:25:04.389959: Battery has 17.33 hours left - now at 10.3kWh
2026-08-16 02:25:04.474147: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 401.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:25:04.674116: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 260.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:25:04.837399: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 224.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:25:04.837658: Saving plan best values to HA entities
2026-08-16 02:25:05.224314: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:25:05.231523: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:25:05.238092: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.72kWh, house 1.37kWh, export 0.0kWh, metric 224.19p, metric10 260.84p
2026-08-16 02:25:05.407429: Marginal costs baseline metric (no standing charge): 174.2079
2026-08-16 02:25:06.038435: Marginal energy costs matrix computed: min=14.19 max=26.11
2026-08-16 02:25:06.163901: Rate array import [{'start': 145, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 145, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:25:06.165166: - Your estimated bill for today is £1.28 and tomorrow is £7.29
2026-08-16 02:25:06.165247: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:25:06.165389: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:25:06.165472: - For the next 48 hours there will be no solar generation.
2026-08-16 02:25:06.165521: - You will run out of battery in 30 hours.
2026-08-16 02:25:06.165603: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:25:06.165680: 
2026-08-16 02:25:06.221269: Plan calculation took 2.34 seconds
2026-08-16 02:25:06.224228: No high rate period found
2026-08-16 02:25:06.389267: Import threshold used for optimisation was 24.06p
2026-08-16 02:25:06.523720: Low import rate windows [0: 08-16 02:00:00 - 08-16 02:30:00 @ 25.79, 1: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 2: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 3: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 4: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 5: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 6: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 7: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 8: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 9: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 10: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 11: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 12: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 13: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 14: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 15: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 16: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 17: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 18: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 19: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 20: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 21: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 22: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 23: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 24: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 25: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 26: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 27: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 28: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 29: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 30: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 31: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 32: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 33: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 34: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 35: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 36: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 37: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 38: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 39: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 40: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 41: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 42: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 43: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 44: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 45: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 46: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 47: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 48: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 49: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 50: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 51: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 52: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 53: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 54: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 55: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 56: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 57: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 58: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 59: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 60: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 61: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 62: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 63: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 64: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 65: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 66: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 67: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 68: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 69: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 70: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 71: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 72: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 73: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 74: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 75: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 76: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 77: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 78: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 79: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 80: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 81: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 82: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 83: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 84: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 85: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 86: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 87: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 88: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 89: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 90: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 91: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 92: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 93: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 94: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79]
2026-08-16 02:25:06.548244: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:25:06.548429: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:25:06.548511: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:25:06.548737: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:25:06.548824: No export window planned
2026-08-16 02:25:06.548985: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:25:06.549041: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:25:06.549349: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:25:06.549608: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:25:06.549722: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:25:06.549842: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:25:06.550001: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.550720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:25:06.551874: Inverter 0 count register writes 0
2026-08-16 02:25:06.589698: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:25:06.597577: Total inverter register writes now 826
2026-08-16 02:25:06.684765: Info: Completed run status Demand
2026-08-16 02:25:06.704610: Info: record_status Demand
2026-08-16 02:25:06.723269: Saved current settings to /config/predbat_config.json
2026-08-16 02:25:06.723701: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:25:11.768062: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 02:25:41.953664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:25:41.953989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:25:41.954046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:25:41.954254: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:25:41.954296: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:25:41.954321: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:25:41.954345: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:25:43.330756: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 02:26:16.799510: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0007 kWh (-1.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 02:26:48.180018: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-16 02:27:18.875246: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0053 val_mae=0.0018 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-16 02:27:42.400738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:27:42.401239: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:27:42.401294: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:27:42.401486: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:27:42.401549: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:27:42.401659: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:27:42.401777: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:27:52.424128: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0051 val_mae=0.0024 kWh val_bias=-0.0017 kWh (-2.4%) combined=0.0020 kWh ema_combined=0.0016 kWh
2026-08-16 02:28:23.026458: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0016 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 02:28:54.156446: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 02:29:28.892091: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 02:29:57.168655: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:29:57.169190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:29:57.169381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:29:57.169753: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:29:57.169917: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:29:57.170060: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:29:57.170209: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:29:59.600633: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0047 val_mae=0.0017 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-16 02:30:00.352876: --------------- PredBat - update at 2026-08-16 02:30:00+01:00 with clock skew 0 minutes, minutes now 150
2026-08-16 02:30:00.353830: Saved current settings to /config/predbat_config.json
2026-08-16 02:30:00.353973: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 02:30:00.354058: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:30:00.354139: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:30:00.409727: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:30:00.409895: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:30:00.410248: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:30:00.410979: Cars 1 charging from battery False 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-16 02:30:00.411222: Predbat mode is set to Control charge & discharge
2026-08-16 02:30:00.798856: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:30:00.799867: Using load_power data to fill gaps in load_today data
2026-08-16 02:30:02.497101: Processing 721 30-minute periods for power integration
2026-08-16 02:30:02.896398: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:30:02.911993: Car charging hold False, threshold 6.0kWh
2026-08-16 02:30:02.912266: Current data so far today: load 1.83kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:30:02.950969: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:30:02.951739: Standing charge is set to 49.98p
2026-08-16 02:30:03.015034: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:30:03.015291: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:30:03.015923: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 150.0 minutes
2026-08-16 02:30:03.016601: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 149.8 minutes
2026-08-16 02:30:03.020731: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:30:03.147867: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:30:03.336244: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:30:03.344870: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:30:03.422937: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:30:03.423085: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:30:03.424939: High export rate found rates in range 99p to -99p
2026-08-16 02:30:03.673249: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:30:03.673537: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:30:03.696163: Battery level now 10.3kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -0.42p, change today -1.91p, rate_forward 1.0p
2026-08-16 02:30:03.696925: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 0.39p, import 0.39p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:30:03.786016: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:30:03.786363: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:30:04.015890: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:30:04.072864: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:30:04.097654: Today's predicted so far 2.22kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.22kWh forecast extra.
2026-08-16 02:30:04.097749: Today's actual load so far 1.84kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:30:04.229810: Inverter 0: Type SK Sunsynk
2026-08-16 02:30:04.230582: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:30:04.230802: Reserve min: 7%, battery_min: 7%
2026-08-16 02:30:04.230873: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:30:04.231140: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 403W, current battery voltage 51.2V, grid power -54W, load power 458W, PV Power 0W
2026-08-16 02:30:04.231352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:30:04.231449: Inverter 0 scheduled charge enable is False
2026-08-16 02:30:04.231479: Inverter 0 charge windows currently []
2026-08-16 02:30:04.231505: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:30:04.231764: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:30:04.231981: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:30:04.232087: Inverter 0 scheduled discharge enable is False
2026-08-16 02:30:04.232359: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:30:04.232491: Inverter 0 discharge windows currently []
2026-08-16 02:30:04.232572: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:30:04.232702: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:30:04.232780: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:30:04.335079: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:30:04.335368: Plan was last updated on 2026-08-16 02:20:00+01:00 and is now 10.0 minutes old
2026-08-16 02:30:04.335721: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:30:04.335851: Best export window [  ]
2026-08-16 02:30:04.336719: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:30:04.339854: Load divergence over 8.0 hours mean 480.01W, min 285.0W, max 1698.0W, std dev 274.81W, divergence 28.63%
2026-08-16 02:30:04.358324: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:30:04.376563: LoadML is_calculating True
2026-08-16 02:30:04.376707: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:30:04.446669: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 375.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.14kWh, PV 0.0kWh
2026-08-16 02:30:04.668943: Battery has 17.25 hours left - now at 10.24kWh
2026-08-16 02:30:04.740759: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 403.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.01kWh, PV 0.0kWh
2026-08-16 02:30:05.041903: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 270.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 21.01kWh, PV 0.0kWh
2026-08-16 02:30:05.185933: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 235.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 20.14kWh, PV 0.0kWh
2026-08-16 02:30:05.186350: Saving plan best values to HA entities
2026-08-16 02:30:05.677931: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:30:05.695815: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:30:05.702874: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.17kWh, house 1.39kWh, export 0.0kWh, metric 235.76p, metric10 270.72p
2026-08-16 02:30:05.866938: Marginal costs baseline metric (no standing charge): 185.7817
2026-08-16 02:30:06.470746: Marginal energy costs matrix computed: min=12.02 max=26.13
2026-08-16 02:30:06.612584: Rate array import [{'start': 150, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 150, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:30:06.614157: - Your estimated bill for today is £1.28 and tomorrow is £7.28
2026-08-16 02:30:06.614239: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:30:06.614324: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:30:06.614397: - For the next 48 hours there will be no solar generation.
2026-08-16 02:30:06.614422: - You will run out of battery in 29 hours.
2026-08-16 02:30:06.614443: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:30:06.614463: 
2026-08-16 02:30:06.702394: Plan calculation took 2.37 seconds
2026-08-16 02:30:06.706277: No high rate period found
2026-08-16 02:30:06.837407: Import threshold used for optimisation was 24.06p
2026-08-16 02:30:06.954791: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79]
2026-08-16 02:30:06.967173: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:30:06.967369: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:30:06.967465: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:30:06.967695: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:30:06.967790: No export window planned
2026-08-16 02:30:06.967921: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:30:06.967967: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:30:06.968139: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:30:06.968343: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:30:06.968409: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:30:06.968477: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:30:06.968579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968719: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.968919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:30:06.969322: Inverter 0 count register writes 0
2026-08-16 02:30:07.029964: 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-16 02:30:07.030186: Recompute is saving previous plan...
2026-08-16 02:30:07.034790: Best charge window [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0% ]
2026-08-16 02:30:07.034896: Best export window [  ]
2026-08-16 02:30:07.036147: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:30:07.061056: Load divergence over 8.0 hours mean 480.01W, min 285.0W, max 1698.0W, std dev 274.81W, divergence 28.63%
2026-08-16 02:30:07.155467: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:30:07.165057: LoadML is_calculating True
2026-08-16 02:30:07.165330: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:30:07.205138: 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(0.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-16 02:30:07.208593: Optimise levels pass started at 2026-08-16 02:30:07
2026-08-16 02:30:07.212385: Optimise all windows, total charge 94 export 1
2026-08-16 02:30:13.597013: >> Region optimisation pass width 960 gives best_metric 433.91p, best_cost 446.1p, best_cycle 39.97kWh, best_import 23.26kWh
2026-08-16 02:30:14.461831: >> Region optimisation pass width 480 gives best_metric 433.91p, best_cost 446.1p, best_cycle 39.97kWh, best_import 23.26kWh
2026-08-16 02:30:18.526488: >> Region optimisation pass width 240 gives best_metric 433.52p, best_cost 445.77p, best_cycle 41.45kWh, best_import 23.37kWh
2026-08-16 02:30:23.017051: >> Region optimisation pass width 120 gives best_metric 433.52p, best_cost 445.77p, best_cycle 41.45kWh, best_import 23.37kWh
2026-08-16 02:30:23.033501: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 64
2026-08-16 02:30:23.033597: Optimise levels pass ended at 2026-08-16 02:30:23, duration 15.8 seconds tried 343 combinations
2026-08-16 02:30:23.033765: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 433.52p, best_keep 0kWh, best_cycle 41.45kWh, best_carbon 0kg, best_import 23.37kWh
2026-08-16 02:30:23.071733: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.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, 0, 0, 0, 0, 16.0, 11.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 02:30:53.665078: Tweak plan optimisation started metric 147.35p, cost 162.31p
2026-08-16 02:30:56.304359: Tweak optimisation finished metric 147.35p, cost 162.31p, metric_keep 0kWh, cycle 21.57kWh, carbon 0kg, import 10.59kWh, changed 8 window(s)
2026-08-16 02:30:56.329810: Swap charge optimisation started metric 147.35p, cost 162.31p, min_improvement_swap 0.1p
2026-08-16 02:31:08.305543: Swap charge optimisation finished metric 147.35p, cost 162.31p
2026-08-16 02:31:08.589240: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 141.71p -> 141.71p, plan now metric 147.43p, cost 162.31p, cycle 21.57kWh, import 10.59kWh
2026-08-16 02:31:08.627543: Raw charge windows [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100% ] reserve 1.12
2026-08-16 02:31:08.629606: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:31:08.632051: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:31:08.632563: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 02:30:00 @ 26.34p 100% ] reserve 1.12
2026-08-16 02:31:08.678154: Previous plan best metric is 147.38 (cost 162.31) and new plan best metric is 147.35 (cost 162.31)
2026-08-16 02:31:08.678518: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 02:31:08.678712: Plan valid is now true after recompute was False
2026-08-16 02:31:08.719252: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 372.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:31:09.023012: Battery has 17.25 hours left - now at 10.24kWh
2026-08-16 02:31:09.101130: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 399.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:31:09.263310: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 250.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 20.87kWh, PV 0.0kWh
2026-08-16 02:31:09.363025: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 212.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 20.0kWh, PV 0.0kWh
2026-08-16 02:31:09.363262: Saving plan best values to HA entities
2026-08-16 02:31:09.616827: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:31:09.623616: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:31:09.630947: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.21kWh, house 1.39kWh, export 0.0kWh, metric 212.29p, metric10 250.46p
2026-08-16 02:31:09.725461: Marginal costs baseline metric (no standing charge): 162.3093
2026-08-16 02:31:10.266778: Marginal energy costs matrix computed: min=12.02 max=26.13
2026-08-16 02:31:10.431221: Rate array import [{'start': 150, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 150, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:31:10.431914: - Your estimated bill for today is £1.28 and tomorrow is £7.28
2026-08-16 02:31:10.432048: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:31:10.432148: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:31:10.432243: - For the next 48 hours there will be no solar generation.
2026-08-16 02:31:10.432323: - You will run out of battery in 29 hours.
2026-08-16 02:31:10.432403: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:31:10.432516: 
2026-08-16 02:31:10.489772: Plan calculation took 63.46 seconds
2026-08-16 02:31:10.492838: Inverter 0: Type SK Sunsynk
2026-08-16 02:31:10.493044: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:31:10.493487: Reserve min: 7%, battery_min: 7%
2026-08-16 02:31:10.493657: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:31:10.494586: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 436W, current battery voltage 51.2V, grid power -56W, load power 490W, PV Power 0W
2026-08-16 02:31:10.494833: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:31:10.494985: Inverter 0 scheduled charge enable is False
2026-08-16 02:31:10.495028: Inverter 0 charge windows currently []
2026-08-16 02:31:10.495107: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:31:10.495329: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:31:10.495378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:31:10.495451: Inverter 0 scheduled discharge enable is False
2026-08-16 02:31:10.495713: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:31:10.495880: Inverter 0 discharge windows currently []
2026-08-16 02:31:10.496107: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:31:10.496273: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:31:10.496327: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:31:10.597955: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:31:10.598137: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:31:10.598342: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:31:10.598725: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:31:10.598951: No export window planned
2026-08-16 02:31:10.599242: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:31:10.599425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:31:10.599765: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:31:10.600107: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:31:10.600306: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:31:10.600536: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:31:10.600807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.601078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.601298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.601509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.601765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.601984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.602255: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.602749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.603011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.603240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.603635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.603872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.604080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.604294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:31:10.604491: Inverter 0 count register writes 0
2026-08-16 02:31:10.694306: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0017 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 02:31:10.741627: Total inverter register writes now 826
2026-08-16 02:31:10.831858: Info: Completed run status Demand
2026-08-16 02:31:10.844726: Info: record_status Demand
2026-08-16 02:31:10.855773: Saved current settings to /config/predbat_config.json
2026-08-16 02:31:10.856150: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:31:42.057315: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:31:42.057630: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:31:42.057801: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:31:42.058281: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:31:42.058347: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:31:42.058390: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:31:42.058428: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:31:44.322089: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0017 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-16 02:32:17.244682: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0007 kWh ema_combined=0.0010 kWh
2026-08-16 02:32:17.271296: ML Predictor: Restored best weights from epoch with val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 02:32:17.271987: ML Predictor: Training complete, final val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 02:32:23.587424: ML Predictor: AR rollout over holdout: ar_mae=0.0015 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 02:32:23.594411: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0015 kWh
2026-08-16 02:32:23.713487: ML Predictor: Curriculum pass 3/5: window=56.0 days (1344 hours of data)
2026-08-16 02:32:23.713626: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 02:32:24.358299: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 02:32:29.838580: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 02:32:29.892776: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0471) load(mean=0.0588 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.5307 std=4.4379) import_rate(mean=26.1398 std=2.9063) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5248)
2026-08-16 02:32:29.984406: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 02:32:30.002665: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 02:32:30.221866: ML Predictor: Baseline (pre-finetune) val_mae=0.0044 kWh val_bias=-0.0008 kWh
2026-08-16 02:33:01.881611: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0062 kWh val_bias=-0.0042 kWh (-4.7%) combined=0.0058 kWh ema_combined=0.0058 kWh
2026-08-16 02:33:35.448553: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0120 val_mae=0.0045 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0047 kWh
2026-08-16 02:33:56.553750: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:33:56.554242: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:33:56.554390: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:33:56.554720: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:33:56.554856: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:33:56.554999: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:33:56.555124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:34:07.503640: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0103 val_mae=0.0048 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0026 kWh ema_combined=0.0041 kWh
2026-08-16 02:34:40.953436: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0098 val_mae=0.0046 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0028 kWh ema_combined=0.0037 kWh
2026-08-16 02:35:00.863240: --------------- PredBat - update at 2026-08-16 02:35:00+01:00 with clock skew 0 minutes, minutes now 155
2026-08-16 02:35:00.864365: Saved current settings to /config/predbat_config.json
2026-08-16 02:35:01.200218: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:35:01.200539: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:35:01.240337: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:35:01.240656: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:35:01.241060: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:35:01.241622: Cars 1 charging from battery False 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-16 02:35:01.241780: Predbat mode is set to Control charge & discharge
2026-08-16 02:35:01.586684: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:35:01.587064: Using load_power data to fill gaps in load_today data
2026-08-16 02:35:02.989163: Processing 721 30-minute periods for power integration
2026-08-16 02:35:03.197203: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:35:03.198057: Car charging hold False, threshold 6.0kWh
2026-08-16 02:35:03.198236: Current data so far today: load 1.85kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:35:03.210913: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:35:03.211513: Standing charge is set to 49.98p
2026-08-16 02:35:03.373962: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:35:03.374276: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:35:03.374675: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 155.0 minutes
2026-08-16 02:35:03.375407: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 154.8 minutes
2026-08-16 02:35:03.379224: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:35:03.547559: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:35:03.609323: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:35:03.609769: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:35:03.646901: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:35:03.647025: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:35:03.648306: High export rate found rates in range 99p to -99p
2026-08-16 02:35:03.712322: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:35:03.712451: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:35:03.733523: Battery level now 10.24kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -1.97p, rate_forward 1.0p
2026-08-16 02:35:03.734337: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.26p, import 0.26p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:35:03.813475: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:35:03.813825: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:35:04.065359: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:35:04.094686: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:35:04.096177: Today's predicted so far 2.36kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.36kWh forecast extra.
2026-08-16 02:35:04.096506: Today's actual load so far 1.93kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:35:04.179753: Inverter 0: Type SK Sunsynk
2026-08-16 02:35:04.185244: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:35:04.185649: Reserve min: 7%, battery_min: 7%
2026-08-16 02:35:04.185905: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:35:04.186334: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 467W, current battery voltage 51.2V, grid power -57W, load power 522W, PV Power 0W
2026-08-16 02:35:04.186626: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:35:04.186839: Inverter 0 scheduled charge enable is False
2026-08-16 02:35:04.186982: Inverter 0 charge windows currently []
2026-08-16 02:35:04.188827: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:35:04.189151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:35:04.189311: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:35:04.189449: Inverter 0 scheduled discharge enable is False
2026-08-16 02:35:04.189698: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:35:04.189827: Inverter 0 discharge windows currently []
2026-08-16 02:35:04.189954: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:35:04.190080: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:35:04.190182: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:35:04.348557: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:35:04.348820: Plan was last updated on 2026-08-16 02:30:00+01:00 and is now 5.0 minutes old
2026-08-16 02:35:04.350772: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:35:04.350930: Best export window [  ]
2026-08-16 02:35:04.351868: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:35:04.355872: Load divergence over 8.0 hours mean 473.25W, min 288.6W, max 1688.4W, std dev 268.9W, divergence 28.41%
2026-08-16 02:35:04.411157: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:35:04.411626: LoadML is_calculating True
2026-08-16 02:35:04.411756: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:35:04.483338: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 372.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.04kWh, PV 0.0kWh
2026-08-16 02:35:04.761985: Battery has 17.33 hours left - now at 10.24kWh
2026-08-16 02:35:04.833403: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 399.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 20.9kWh, PV 0.0kWh
2026-08-16 02:35:04.982166: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 258.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 20.9kWh, PV 0.0kWh
2026-08-16 02:35:05.161376: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 222.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 20.04kWh, PV 0.0kWh
2026-08-16 02:35:05.161649: Saving plan best values to HA entities
2026-08-16 02:35:05.579054: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:35:05.586740: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:35:05.606365: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.63kWh, house 1.4kWh, export 0.0kWh, metric 222.78p, metric10 258.89p
2026-08-16 02:35:05.755846: Marginal costs baseline metric (no standing charge): 172.7967
2026-08-16 02:35:06.395811: Marginal energy costs matrix computed: min=9.64 max=26.09
2026-08-16 02:35:06.577651: Rate array import [{'start': 155, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 155, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:35:06.578665: - Your estimated bill for today is £1.26 and tomorrow is £7.26
2026-08-16 02:35:06.578722: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:35:06.578751: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:35:06.578776: - For the next 48 hours there will be no solar generation.
2026-08-16 02:35:06.578801: - You will run out of battery in 29 hours.
2026-08-16 02:35:06.578834: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:35:06.578869: 
2026-08-16 02:35:06.672637: Plan calculation took 2.32 seconds
2026-08-16 02:35:06.675979: No high rate period found
2026-08-16 02:35:06.766071: Import threshold used for optimisation was 23.43p
2026-08-16 02:35:06.844366: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 94: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 02:35:06.870734: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:35:06.870895: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:35:06.870978: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:35:06.871163: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:35:06.871258: No export window planned
2026-08-16 02:35:06.871373: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:35:06.871410: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:35:06.871542: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:35:06.871721: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:35:06.871780: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:35:06.871836: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:35:06.871910: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.871951: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.871988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:35:06.872413: Inverter 0 count register writes 0
2026-08-16 02:35:06.909278: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:35:06.917796: Total inverter register writes now 826
2026-08-16 02:35:07.006439: Info: Completed run status Demand
2026-08-16 02:35:07.025656: Info: record_status Demand
2026-08-16 02:35:07.060998: Saved current settings to /config/predbat_config.json
2026-08-16 02:35:07.061423: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:35:17.158060: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0106 val_mae=0.0043 kWh val_bias=-0.0020 kWh (-2.3%) combined=0.0036 kWh ema_combined=0.0037 kWh
2026-08-16 02:35:42.242561: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:35:42.243204: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:35:42.243383: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:35:42.243651: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:35:42.243779: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:35:42.243887: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:35:42.243981: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:35:49.706032: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0095 val_mae=0.0039 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0024 kWh ema_combined=0.0033 kWh
2026-08-16 02:36:24.174916: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0036 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0021 kWh ema_combined=0.0029 kWh
2026-08-16 02:36:57.915761: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0076 val_mae=0.0044 kWh val_bias=-0.0033 kWh (-3.7%) combined=0.0043 kWh ema_combined=0.0033 kWh
2026-08-16 02:37:31.188384: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0074 val_mae=0.0036 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0025 kWh ema_combined=0.0031 kWh
2026-08-16 02:37:56.741173: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:37:56.741590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:37:56.741751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:37:56.742002: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:37:56.742117: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:37:56.742170: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:37:56.742193: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:38:05.632818: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0072 val_mae=0.0034 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-16 02:38:37.235438: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0066 val_mae=0.0036 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-16 02:39:10.380118: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0074 val_mae=0.0034 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0018 kWh ema_combined=0.0027 kWh
2026-08-16 02:39:41.723838: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0072 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 02:39:57.261960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:39:57.262269: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:39:57.262330: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:39:57.262557: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:39:57.262616: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:39:57.262656: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:39:57.262792: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:40:00.480446: --------------- PredBat - update at 2026-08-16 02:40:00+01:00 with clock skew 0 minutes, minutes now 160
2026-08-16 02:40:00.481981: Saved current settings to /config/predbat_config.json
2026-08-16 02:40:00.482319: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 02:40:00.482548: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:40:00.482785: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:40:00.523310: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:40:00.524299: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:40:00.524567: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:40:00.525288: Cars 1 charging from battery False 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-16 02:40:00.525450: Predbat mode is set to Control charge & discharge
2026-08-16 02:40:00.930053: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:40:00.930940: Using load_power data to fill gaps in load_today data
2026-08-16 02:40:02.271154: Processing 721 30-minute periods for power integration
2026-08-16 02:40:02.541159: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:40:02.541415: Car charging hold False, threshold 6.0kWh
2026-08-16 02:40:02.541493: Current data so far today: load 1.95kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:40:02.554671: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:40:02.554999: Standing charge is set to 49.98p
2026-08-16 02:40:02.629556: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:40:02.629786: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:40:02.630127: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 160.0 minutes
2026-08-16 02:40:02.630685: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 159.8 minutes
2026-08-16 02:40:02.633918: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:40:02.780996: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:40:02.864405: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:40:02.864886: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:40:02.944188: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:40:02.950891: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:40:02.952312: High export rate found rates in range 99p to -99p
2026-08-16 02:40:03.063543: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:40:03.063734: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:40:03.097991: Battery level now 10.24kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -1.97p, rate_forward 1.0p
2026-08-16 02:40:03.098417: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.13p, import 0.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 02:40:03.203527: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:40:03.203799: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:40:03.373133: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:40:03.406438: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:40:03.406583: Today's predicted so far 2.4kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.4kWh forecast extra.
2026-08-16 02:40:03.406624: Today's actual load so far 1.98kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:40:03.459534: Inverter 0: Type SK Sunsynk
2026-08-16 02:40:03.459631: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:40:03.459961: Reserve min: 7%, battery_min: 7%
2026-08-16 02:40:03.460084: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:40:03.460502: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 447W, current battery voltage 51.2V, grid power -54W, load power 497W, PV Power 0W
2026-08-16 02:40:03.460770: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:40:03.460965: Inverter 0 scheduled charge enable is False
2026-08-16 02:40:03.461044: Inverter 0 charge windows currently []
2026-08-16 02:40:03.461091: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:40:03.461342: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:40:03.461437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:40:03.461552: Inverter 0 scheduled discharge enable is False
2026-08-16 02:40:03.461850: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:40:03.461901: Inverter 0 discharge windows currently []
2026-08-16 02:40:03.461973: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:40:03.462058: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:40:03.462096: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:40:03.539720: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:40:03.539888: Plan was last updated on 2026-08-16 02:30:00+01:00 and is now 10.0 minutes old
2026-08-16 02:40:03.540196: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:40:03.540248: Best export window [  ]
2026-08-16 02:40:03.541204: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:40:03.546220: Load divergence over 8.0 hours mean 461.71W, min 291.6W, max 1619.4W, std dev 250.85W, divergence 27.16%
2026-08-16 02:40:03.573306: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:40:03.576932: LoadML is_calculating True
2026-08-16 02:40:03.577043: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:40:03.673790: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 370.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 20:05:00, load 20.11kWh, PV 0.0kWh
2026-08-16 02:40:03.937694: Battery has 17.42 hours left - now at 10.24kWh
2026-08-16 02:40:04.024194: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.97kWh, PV 0.0kWh
2026-08-16 02:40:04.210988: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 266.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 20.97kWh, PV 0.0kWh
2026-08-16 02:40:04.356027: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 232.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.11kWh, PV 0.0kWh
2026-08-16 02:40:04.356134: Saving plan best values to HA entities
2026-08-16 02:40:04.756582: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:40:04.779081: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:40:04.795167: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.02kWh, house 1.39kWh, export 0.0kWh, metric 232.34p, metric10 266.52p
2026-08-16 02:40:04.906757: Marginal costs baseline metric (no standing charge): 182.353
2026-08-16 02:40:05.458879: Marginal energy costs matrix computed: min=7.45 max=26.06
2026-08-16 02:40:05.671344: Rate array import [{'start': 160, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 160, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:40:05.672368: - Your estimated bill for today is £1.25 and tomorrow is £7.27
2026-08-16 02:40:05.672445: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:40:05.672477: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:40:05.672502: - For the next 48 hours there will be no solar generation.
2026-08-16 02:40:05.672536: - You will run out of battery in 29 hours.
2026-08-16 02:40:05.672584: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:40:05.672610: 
2026-08-16 02:40:05.755774: Plan calculation took 2.22 seconds
2026-08-16 02:40:05.763142: No high rate period found
2026-08-16 02:40:05.911224: Import threshold used for optimisation was 23.43p
2026-08-16 02:40:06.002513: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 94: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 02:40:06.015311: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 02:40:06.015531: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:40:06.015685: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:40:06.015939: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:40:06.016060: No export window planned
2026-08-16 02:40:06.016223: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:40:06.016266: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:40:06.016497: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:40:06.016719: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:40:06.016814: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:40:06.016917: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:40:06.017039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017236: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017565: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.017986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.018028: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.018098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:40:06.018132: Inverter 0 count register writes 0
2026-08-16 02:40:06.046187: 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-16 02:40:06.046464: Recompute is saving previous plan...
2026-08-16 02:40:06.050437: Best charge window [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0% ]
2026-08-16 02:40:06.050521: Best export window [  ]
2026-08-16 02:40:06.051959: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:40:06.056570: Load divergence over 8.0 hours mean 461.71W, min 291.6W, max 1619.4W, std dev 250.85W, divergence 27.16%
2026-08-16 02:40:06.080888: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:40:06.081030: LoadML is_calculating True
2026-08-16 02:40:06.081062: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:40:06.093721: 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(0.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-16 02:40:06.110621: Optimise levels pass started at 2026-08-16 02:40:06
2026-08-16 02:40:06.110733: Optimise all windows, total charge 94 export 1
2026-08-16 02:40:13.904295: >> Region optimisation pass width 960 gives best_metric 434.23p, best_cost 446.54p, best_cycle 41.38kWh, best_import 23.39kWh
2026-08-16 02:40:14.901139: >> Region optimisation pass width 480 gives best_metric 434.23p, best_cost 446.54p, best_cycle 41.38kWh, best_import 23.39kWh
2026-08-16 02:40:16.127271: >> Region optimisation pass width 240 gives best_metric 434.23p, best_cost 446.54p, best_cycle 41.38kWh, best_import 23.39kWh
2026-08-16 02:40:19.752046: >> Region optimisation pass width 120 gives best_metric 434.23p, best_cost 446.54p, best_cycle 41.38kWh, best_import 23.39kWh
2026-08-16 02:40:19.752793: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 64
2026-08-16 02:40:19.753040: Optimise levels pass ended at 2026-08-16 02:40:19, duration 13.6 seconds tried 311 combinations
2026-08-16 02:40:19.753218: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 434.23p, best_keep 0kWh, best_cycle 41.38kWh, best_carbon 0kg, best_import 23.39kWh
2026-08-16 02:40:19.831998: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 02:40:33.009757: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0067 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-16 02:40:52.194495: Tweak plan optimisation started metric 143.26p, cost 158.15p
2026-08-16 02:40:55.163167: Tweak optimisation finished metric 143.26p, cost 158.15p, metric_keep 0kWh, cycle 20.62kWh, carbon 0kg, import 10.37kWh, changed 8 window(s)
2026-08-16 02:40:55.195578: Swap charge optimisation started metric 143.26p, cost 158.15p, min_improvement_swap 0.1p
2026-08-16 02:41:07.775119: Swap charge optimisation finished metric 143.26p, cost 158.15p
2026-08-16 02:41:08.113781: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 137.55p -> 137.48p, plan now metric 143.27p, cost 158.08p, cycle 20.65kWh, import 10.38kWh
2026-08-16 02:41:08.128000: Raw charge windows [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 02:41:08.129096: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:41:08.129355: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:41:08.129656: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:41:08.171916: Previous plan best metric is 144.01 (cost 159.0) and new plan best metric is 143.26 (cost 158.15)
2026-08-16 02:41:08.172249: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 02:41:08.172385: Plan valid is now true after recompute was False
2026-08-16 02:41:08.210007: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 367.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 20:05:00, load 19.98kWh, PV 0.0kWh
2026-08-16 02:41:08.446819: Battery has 17.42 hours left - now at 10.24kWh
2026-08-16 02:41:08.580691: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.84kWh, PV 0.0kWh
2026-08-16 02:41:08.787001: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 246.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 20.84kWh, PV 0.0kWh
2026-08-16 02:41:08.943066: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 208.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 19.98kWh, PV 0.0kWh
2026-08-16 02:41:08.943359: Saving plan best values to HA entities
2026-08-16 02:41:09.258397: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:41:09.268727: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:41:09.278175: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.05kWh, house 1.39kWh, export 0.0kWh, metric 208.98p, metric10 246.38p
2026-08-16 02:41:09.456423: Marginal costs baseline metric (no standing charge): 158.9971
2026-08-16 02:41:09.842825: Marginal energy costs matrix computed: min=7.45 max=26.06
2026-08-16 02:41:09.975743: Rate array import [{'start': 160, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 160, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:41:09.989835: - Your estimated bill for today is £1.25 and tomorrow is £7.27
2026-08-16 02:41:09.990033: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:41:09.990166: - The battery is currently at 64% and is in eco mode for the next 8 hours.
2026-08-16 02:41:09.990270: - For the next 48 hours there will be no solar generation.
2026-08-16 02:41:09.990357: - You will run out of battery in 29 hours.
2026-08-16 02:41:09.990452: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:41:09.990546: 
2026-08-16 02:41:10.059103: Plan calculation took 64.01 seconds
2026-08-16 02:41:10.059550: Inverter 0: Type SK Sunsynk
2026-08-16 02:41:10.059687: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:41:10.073270: Reserve min: 7%, battery_min: 7%
2026-08-16 02:41:10.073535: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:41:10.073935: Inverter 0 SoC: 10.14kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 476W, current battery voltage 51.2V, grid power -55W, load power 526W, PV Power 0W
2026-08-16 02:41:10.074203: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:41:10.074401: Inverter 0 scheduled charge enable is False
2026-08-16 02:41:10.074529: Inverter 0 charge windows currently []
2026-08-16 02:41:10.074653: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:41:10.074857: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:41:10.074983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:41:10.075096: Inverter 0 scheduled discharge enable is False
2026-08-16 02:41:10.075341: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:41:10.075453: Inverter 0 discharge windows currently []
2026-08-16 02:41:10.075582: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:41:10.075673: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:41:10.075768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:41:10.197441: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 02:41:10.197637: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:41:10.197709: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:41:10.197921: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:41:10.197996: No export window planned
2026-08-16 02:41:10.198112: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:41:10.198144: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:41:10.198305: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:41:10.198489: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:41:10.198540: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:41:10.198593: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:41:10.198681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198842: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198875: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198908: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.198977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:41:10.199197: Inverter 0 count register writes 0
2026-08-16 02:41:10.255610: Total inverter register writes now 826
2026-08-16 02:41:10.365290: Info: Completed run status Demand
2026-08-16 02:41:10.391725: Info: record_status Demand
2026-08-16 02:41:10.413396: Saved current settings to /config/predbat_config.json
2026-08-16 02:41:10.413650: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:41:26.763189: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0068 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 02:41:41.606009: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:41:41.606283: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:41:41.606329: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:41:41.606469: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:41:41.606638: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:41:41.606749: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:41:41.606845: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:41:58.224011: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0070 val_mae=0.0031 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 02:42:31.021214: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 02:43:01.955910: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0038 kWh val_bias=-0.0027 kWh (-3.1%) combined=0.0036 kWh ema_combined=0.0023 kWh
2026-08-16 02:43:33.132844: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-16 02:43:42.026999: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:43:42.027288: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:43:42.027340: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:43:42.027503: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:43:42.027549: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:43:42.027637: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:43:42.027764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:44:05.219897: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 02:44:36.411595: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-16 02:45:00.546569: --------------- PredBat - update at 2026-08-16 02:45:00+01:00 with clock skew 0 minutes, minutes now 165
2026-08-16 02:45:00.547905: Saved current settings to /config/predbat_config.json
2026-08-16 02:45:00.548140: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 02:45:00.548396: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:45:00.548603: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:45:00.607724: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:45:00.608045: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:45:00.608383: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:45:00.609194: Cars 1 charging from battery False 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-16 02:45:00.609467: Predbat mode is set to Control charge & discharge
2026-08-16 02:45:00.896523: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:45:00.896720: Using load_power data to fill gaps in load_today data
2026-08-16 02:45:02.326811: Processing 721 30-minute periods for power integration
2026-08-16 02:45:02.809002: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:45:02.809174: Car charging hold False, threshold 6.0kWh
2026-08-16 02:45:02.809244: Current data so far today: load 2.0kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:45:02.827842: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:45:02.828320: Standing charge is set to 49.98p
2026-08-16 02:45:02.862763: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:45:02.862885: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:45:02.863147: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 165.0 minutes
2026-08-16 02:45:02.863699: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 164.8 minutes
2026-08-16 02:45:02.866839: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:45:02.965618: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:45:03.032386: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:45:03.032875: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:45:03.082627: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:45:03.082760: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:45:03.098243: High export rate found rates in range 99p to -99p
2026-08-16 02:45:03.263609: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:45:03.263744: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:45:03.287057: Battery level now 10.24kWh, -1hr ago 10.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.44p, change today -1.97p, rate_forward 1.0p
2026-08-16 02:45:03.287535: 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-16 02:45:03.386563: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:45:03.386842: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:45:03.611479: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:45:03.637562: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:45:03.637848: Today's predicted so far 2.42kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.42kWh forecast extra.
2026-08-16 02:45:03.638011: Today's actual load so far 1.95kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:45:03.758782: Inverter 0: Type SK Sunsynk
2026-08-16 02:45:03.759035: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:45:03.759367: Reserve min: 7%, battery_min: 7%
2026-08-16 02:45:03.759505: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:45:03.759931: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -54W, load power 549W, PV Power 0W
2026-08-16 02:45:03.760187: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:45:03.760362: Inverter 0 scheduled charge enable is False
2026-08-16 02:45:03.760499: Inverter 0 charge windows currently []
2026-08-16 02:45:03.760666: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:45:03.760915: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:45:03.761091: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:45:03.761233: Inverter 0 scheduled discharge enable is False
2026-08-16 02:45:03.761526: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:45:03.761673: Inverter 0 discharge windows currently []
2026-08-16 02:45:03.761806: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:45:03.761913: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:45:03.762021: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:45:03.951868: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:45:03.952142: Plan was last updated on 2026-08-16 02:40:00+01:00 and is now 5.0 minutes old
2026-08-16 02:45:03.961847: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:45:03.961942: Best export window [  ]
2026-08-16 02:45:03.963245: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:45:03.970875: Load divergence over 8.0 hours mean 448.61W, min 277.8W, max 1582.8W, std dev 234.64W, divergence 26.15%
2026-08-16 02:45:04.020748: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:45:04.033346: LoadML is_calculating True
2026-08-16 02:45:04.033539: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:45:04.107096: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 372.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.04kWh, PV 0.0kWh
2026-08-16 02:45:04.337417: Battery has 17.17 hours left - now at 10.08kWh
2026-08-16 02:45:04.407918: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 399.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 20.9kWh, PV 0.0kWh
2026-08-16 02:45:04.503904: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 258.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 20.9kWh, PV 0.0kWh
2026-08-16 02:45:04.615254: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 222.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.04kWh, PV 0.0kWh
2026-08-16 02:45:04.615506: Saving plan best values to HA entities
2026-08-16 02:45:04.994777: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:45:05.010009: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 02:45:05.016360: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.63kWh, house 1.38kWh, export 0.0kWh, metric 222.65p, metric10 258.72p
2026-08-16 02:45:05.237469: Marginal costs baseline metric (no standing charge): 172.6619
2026-08-16 02:45:05.635627: Marginal energy costs matrix computed: min=5.66 max=26.12
2026-08-16 02:45:05.768730: Rate array import [{'start': 165, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 165, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:45:05.769982: - Your estimated bill for today is £1.27 and tomorrow is £7.29
2026-08-16 02:45:05.770066: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:45:05.770107: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 02:45:05.770140: - For the next 48 hours there will be no solar generation.
2026-08-16 02:45:05.770174: - You will run out of battery in 29 hours.
2026-08-16 02:45:05.770207: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:45:05.770254: 
2026-08-16 02:45:05.881735: Plan calculation took 1.92 seconds
2026-08-16 02:45:05.887216: No high rate period found
2026-08-16 02:45:06.030330: Import threshold used for optimisation was 24.66p
2026-08-16 02:45:06.161531: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 94: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 02:45:06.187078: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 02:45:06.187419: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:45:06.187638: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:45:06.187960: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:45:06.188154: No export window planned
2026-08-16 02:45:06.188377: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:45:06.188520: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:45:06.188812: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:45:06.189184: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:45:06.190894: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:45:06.191101: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:45:06.191297: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.191453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.191579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.191747: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.191871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.192888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.193045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.193198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:45:06.193322: Inverter 0 count register writes 0
2026-08-16 02:45:06.233673: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:45:06.251848: Total inverter register writes now 826
2026-08-16 02:45:06.339325: Info: Completed run status Demand
2026-08-16 02:45:06.351011: Info: record_status Demand
2026-08-16 02:45:06.379163: Saved current settings to /config/predbat_config.json
2026-08-16 02:45:06.379582: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:45:11.539719: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0049 val_mae=0.0021 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-16 02:45:41.618694: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:45:41.619211: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:45:41.619268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:45:41.619473: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:45:41.619588: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:45:41.619728: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:45:41.619823: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:45:44.779994: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0026 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 02:46:17.016074: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 02:46:49.313737: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 02:47:22.275121: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0048 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0015 kWh
2026-08-16 02:47:42.044640: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:47:42.047183: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:47:42.047287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:47:42.047498: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:47:42.047555: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:47:42.047590: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:47:42.047958: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:47:55.003483: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 02:48:29.651650: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0019 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 02:49:00.039995: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 02:49:31.564725: ML Predictor: Epoch 30/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.0013 kWh
2026-08-16 02:49:31.572244: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 02:49:31.572583: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 02:49:34.531224: ML Predictor: AR rollout over holdout: ar_mae=0.0020 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 02:49:34.535636: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0019 kWh
2026-08-16 02:49:34.604475: ML Predictor: Curriculum pass 4/5: window=57.0 days (1368 hours of data)
2026-08-16 02:49:34.604739: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 02:49:35.149455: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 02:49:40.301817: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 02:49:40.356528: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0471) load(mean=0.0589 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.5525 std=4.4514) import_rate(mean=26.1504 std=2.9036) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1895 std=0.5252)
2026-08-16 02:49:40.454909: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 02:49:40.477904: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 02:49:40.589905: ML Predictor: Baseline (pre-finetune) val_mae=0.0105 kWh val_bias=+0.0028 kWh
2026-08-16 02:49:42.223132: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:49:42.223574: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:49:42.223732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:49:42.224047: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:49:42.224177: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:49:42.224307: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:49:42.224410: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:50:00.458061: --------------- PredBat - update at 2026-08-16 02:50:00+01:00 with clock skew 0 minutes, minutes now 170
2026-08-16 02:50:00.459302: Saved current settings to /config/predbat_config.json
2026-08-16 02:50:00.459495: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 02:50:00.459737: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:50:00.459894: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:50:00.485997: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:50:00.486258: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:50:00.486536: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:50:00.487169: Cars 1 charging from battery False 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-16 02:50:00.487391: Predbat mode is set to Control charge & discharge
2026-08-16 02:50:00.767544: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:50:00.781131: Using load_power data to fill gaps in load_today data
2026-08-16 02:50:02.207439: Processing 721 30-minute periods for power integration
2026-08-16 02:50:02.491121: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:50:02.504701: Car charging hold False, threshold 6.0kWh
2026-08-16 02:50:02.505338: Current data so far today: load 2.05kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:50:02.546263: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:50:02.547006: Standing charge is set to 49.98p
2026-08-16 02:50:02.649046: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:50:02.649275: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:50:02.649642: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 170.0 minutes
2026-08-16 02:50:02.650287: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 169.8 minutes
2026-08-16 02:50:02.653816: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:50:02.819136: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:50:02.890488: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:50:02.891145: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:50:02.937173: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:50:02.937567: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:50:02.939151: High export rate found rates in range 99p to -99p
2026-08-16 02:50:03.030659: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:50:03.036102: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:50:03.052223: Battery level now 10.08kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.13p, rate_forward 1.0p
2026-08-16 02:50:03.052741: 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-16 02:50:03.147765: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:50:03.147912: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:50:03.356041: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:50:03.380327: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:50:03.381343: Today's predicted so far 2.45kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.45kWh forecast extra.
2026-08-16 02:50:03.381506: Today's actual load so far 2.0kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:50:03.474402: Inverter 0: Type SK Sunsynk
2026-08-16 02:50:03.484779: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:50:03.485792: Reserve min: 7%, battery_min: 7%
2026-08-16 02:50:03.486110: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:50:03.486759: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 457W, current battery voltage 51.2V, grid power -55W, load power 505W, PV Power 0W
2026-08-16 02:50:03.487202: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:50:03.487487: Inverter 0 scheduled charge enable is False
2026-08-16 02:50:03.487670: Inverter 0 charge windows currently []
2026-08-16 02:50:03.487864: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:50:03.488209: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:50:03.488384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:50:03.488585: Inverter 0 scheduled discharge enable is False
2026-08-16 02:50:03.489018: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:50:03.489200: Inverter 0 discharge windows currently []
2026-08-16 02:50:03.489360: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:50:03.489522: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:50:03.489733: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:50:03.698319: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:50:03.698444: Plan was last updated on 2026-08-16 02:40:00+01:00 and is now 10.0 minutes old
2026-08-16 02:50:03.698700: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:50:03.698830: Best export window [  ]
2026-08-16 02:50:03.699728: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:50:03.702903: Load divergence over 8.0 hours mean 439.59W, min 283.2W, max 1545.0W, std dev 220.81W, divergence 25.12%
2026-08-16 02:50:03.769021: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:50:03.769282: LoadML is_calculating True
2026-08-16 02:50:03.769403: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:50:03.828400: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 372.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 20:00:00, load 20.1kWh, PV 0.0kWh
2026-08-16 02:50:04.111348: Battery has 17.17 hours left - now at 10.08kWh
2026-08-16 02:50:04.259304: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 398.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.96kWh, PV 0.0kWh
2026-08-16 02:50:04.400034: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 267.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 20.96kWh, PV 0.0kWh
2026-08-16 02:50:04.592538: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 233.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.1kWh, PV 0.0kWh
2026-08-16 02:50:04.593411: Saving plan best values to HA entities
2026-08-16 02:50:04.974673: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:50:04.986525: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:50:05.010762: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.08kWh, house 1.37kWh, export 0.0kWh, metric 233.14p, metric10 267.41p
2026-08-16 02:50:05.149818: Marginal costs baseline metric (no standing charge): 183.1592
2026-08-16 02:50:05.724728: Marginal energy costs matrix computed: min=3.72 max=26.1
2026-08-16 02:50:05.898996: Rate array import [{'start': 170, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 170, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:50:05.900293: - Your estimated bill for today is £1.26 and tomorrow is £7.29
2026-08-16 02:50:05.914191: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:50:05.914459: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 02:50:05.914585: - For the next 48 hours there will be no solar generation.
2026-08-16 02:50:05.914727: - You will run out of battery in 29 hours.
2026-08-16 02:50:05.914848: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:50:05.914965: 
2026-08-16 02:50:05.983977: Plan calculation took 2.29 seconds
2026-08-16 02:50:05.989372: No high rate period found
2026-08-16 02:50:06.068725: Import threshold used for optimisation was 24.66p
2026-08-16 02:50:06.176524: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 94: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 02:50:06.185211: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 02:50:06.185346: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:50:06.185424: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:50:06.185610: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:50:06.185706: No export window planned
2026-08-16 02:50:06.185822: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:50:06.185866: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:50:06.186004: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:50:06.186153: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:50:06.186230: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:50:06.186318: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:50:06.186475: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.186538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.186569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.187591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.187651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.187763: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.187813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.187965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.188014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.188182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.188424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.188915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.189040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.189090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:50:06.189161: Inverter 0 count register writes 0
2026-08-16 02:50:06.252844: 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-16 02:50:06.253278: Recompute is saving previous plan...
2026-08-16 02:50:06.258073: Best charge window [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0% ]
2026-08-16 02:50:06.273111: Best export window [  ]
2026-08-16 02:50:06.274727: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:50:06.279576: Load divergence over 8.0 hours mean 439.59W, min 283.2W, max 1545.0W, std dev 220.81W, divergence 25.12%
2026-08-16 02:50:06.328325: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:50:06.342162: LoadML is_calculating True
2026-08-16 02:50:06.342422: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:50:06.366856: 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(0.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-16 02:50:06.368715: Optimise levels pass started at 2026-08-16 02:50:06
2026-08-16 02:50:06.368875: Optimise all windows, total charge 94 export 1
2026-08-16 02:50:09.660803: >> Region optimisation pass width 960 gives best_metric 438.2p, best_cost 450.4p, best_cycle 39.61kWh, best_import 23.42kWh
2026-08-16 02:50:10.850598: >> Region optimisation pass width 480 gives best_metric 438.2p, best_cost 450.4p, best_cycle 39.61kWh, best_import 23.42kWh
2026-08-16 02:50:12.348298: >> Region optimisation pass width 240 gives best_metric 438.2p, best_cost 450.4p, best_cycle 39.61kWh, best_import 23.42kWh
2026-08-16 02:50:16.338199: >> Region optimisation pass width 120 gives best_metric 438.2p, best_cost 450.4p, best_cycle 39.61kWh, best_import 23.42kWh
2026-08-16 02:50:16.338763: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 64
2026-08-16 02:50:16.338920: Optimise levels pass ended at 2026-08-16 02:50:16, duration 10.0 seconds tried 305 combinations
2026-08-16 02:50:16.339068: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 438.2p, best_keep 0kWh, best_cycle 39.61kWh, best_carbon 0kg, best_import 23.42kWh
2026-08-16 02:50:16.360939: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.75, 11.75, 0, 11.75, 0, 11.75, 11.75, 11.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 02:50:29.587435: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0123 val_mae=0.0073 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0038 kWh ema_combined=0.0038 kWh
2026-08-16 02:50:49.234128: Tweak plan optimisation started metric 144.64p, cost 159.74p
2026-08-16 02:50:51.300515: Tweak optimisation finished metric 144.64p, cost 159.74p, metric_keep 0kWh, cycle 21.42kWh, carbon 0kg, import 10.48kWh, changed 8 window(s)
2026-08-16 02:50:51.343846: Swap charge optimisation started metric 144.64p, cost 159.74p, min_improvement_swap 0.1p
2026-08-16 02:51:04.279300: Swap charge optimisation finished metric 144.64p, cost 159.74p
2026-08-16 02:51:04.443676: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 139.14p -> 139.14p, plan now metric 144.76p, cost 159.74p, cycle 21.42kWh, import 10.48kWh
2026-08-16 02:51:04.456402: Raw charge windows [ 16-08 02:30:00 - 16-08 03:00:00 @ 25.86p 0%, 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 02:51:04.457138: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:51:04.457509: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:51:04.457829: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 02:51:04.498535: Previous plan best metric is 144.74 (cost 159.74) and new plan best metric is 144.64 (cost 159.74)
2026-08-16 02:51:04.498910: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 02:51:04.499134: Plan valid is now true after recompute was False
2026-08-16 02:51:04.527808: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 368.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 20:00:00, load 19.97kWh, PV 0.0kWh
2026-08-16 02:51:04.707021: Battery has 17.17 hours left - now at 10.08kWh
2026-08-16 02:51:04.805527: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 395.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.82kWh, PV 0.0kWh
2026-08-16 02:51:04.922801: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 247.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 20.82kWh, PV 0.0kWh
2026-08-16 02:51:05.048565: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 209.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 19.97kWh, PV 0.0kWh
2026-08-16 02:51:05.061032: Saving plan best values to HA entities
2026-08-16 02:51:05.429962: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:51:05.438246: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:51:05.446541: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.11kWh, house 1.37kWh, export 0.0kWh, metric 209.72p, metric10 247.21p
2026-08-16 02:51:05.557339: Marginal costs baseline metric (no standing charge): 159.7378
2026-08-16 02:51:06.049083: Marginal energy costs matrix computed: min=3.72 max=26.1
2026-08-16 02:51:06.279212: Rate array import [{'start': 170, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 170, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:51:06.280219: - Your estimated bill for today is £1.26 and tomorrow is £7.29
2026-08-16 02:51:06.280275: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:51:06.280303: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 02:51:06.280338: - For the next 48 hours there will be no solar generation.
2026-08-16 02:51:06.280371: - You will run out of battery in 29 hours.
2026-08-16 02:51:06.280396: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:51:06.280453: 
2026-08-16 02:51:06.377889: Plan calculation took 60.12 seconds
2026-08-16 02:51:06.378209: Inverter 0: Type SK Sunsynk
2026-08-16 02:51:06.378754: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:51:06.379099: Reserve min: 7%, battery_min: 7%
2026-08-16 02:51:06.379242: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:51:06.379852: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -55W, load power 500W, PV Power 0W
2026-08-16 02:51:06.380211: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:51:06.380367: Inverter 0 scheduled charge enable is False
2026-08-16 02:51:06.380434: Inverter 0 charge windows currently []
2026-08-16 02:51:06.380488: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:51:06.380690: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:51:06.380776: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:51:06.380843: Inverter 0 scheduled discharge enable is False
2026-08-16 02:51:06.381174: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:51:06.381335: Inverter 0 discharge windows currently []
2026-08-16 02:51:06.381390: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:51:06.381434: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:51:06.381481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:51:06.462221: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 02:51:06.462379: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:51:06.462442: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:51:06.462623: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:51:06.462690: No export window planned
2026-08-16 02:51:06.462816: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:51:06.462925: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:51:06.463163: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:51:06.463387: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:51:06.463447: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:51:06.463591: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:51:06.463742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.463797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.463903: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.463948: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464126: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:51:06.464807: Inverter 0 count register writes 0
2026-08-16 02:51:06.495328: Total inverter register writes now 826
2026-08-16 02:51:06.539939: Info: Completed run status Demand
2026-08-16 02:51:06.552166: Info: record_status Demand
2026-08-16 02:51:06.563454: Saved current settings to /config/predbat_config.json
2026-08-16 02:51:06.563836: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:51:23.563496: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0122 val_mae=0.0070 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0043 kWh ema_combined=0.0039 kWh
2026-08-16 02:51:41.773620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:51:41.773974: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:51:41.774040: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:51:41.774267: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:51:41.774326: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:51:41.774364: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:51:41.800765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:51:54.491855: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0120 val_mae=0.0061 kWh val_bias=-0.0014 kWh (-1.7%) combined=0.0040 kWh ema_combined=0.0039 kWh
2026-08-16 02:52:27.855604: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0114 val_mae=0.0061 kWh val_bias=-0.0021 kWh (-2.6%) combined=0.0042 kWh ema_combined=0.0040 kWh
2026-08-16 02:52:59.609714: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0113 val_mae=0.0057 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0030 kWh ema_combined=0.0037 kWh
2026-08-16 02:53:34.502346: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0102 val_mae=0.0048 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0027 kWh ema_combined=0.0034 kWh
2026-08-16 02:53:42.399017: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:53:42.399306: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:53:42.399355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:53:42.399522: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:53:42.399565: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:53:42.399678: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:53:42.399720: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:54:07.323775: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0122 val_mae=0.0057 kWh val_bias=-0.0018 kWh (-2.2%) combined=0.0040 kWh ema_combined=0.0036 kWh
2026-08-16 02:54:40.978067: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0109 val_mae=0.0049 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0028 kWh ema_combined=0.0034 kWh
2026-08-16 02:55:00.743568: --------------- PredBat - update at 2026-08-16 02:55:00+01:00 with clock skew 0 minutes, minutes now 175
2026-08-16 02:55:00.744764: Saved current settings to /config/predbat_config.json
2026-08-16 02:55:00.745036: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 02:55:00.745997: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 02:55:00.746222: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 02:55:00.781089: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 02:55:00.781235: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 02:55:00.781401: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 02:55:00.781929: Cars 1 charging from battery False 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-16 02:55:00.782048: Predbat mode is set to Control charge & discharge
2026-08-16 02:55:01.141886: Found 21602 load_today datapoints going back 28 days
2026-08-16 02:55:01.142100: Using load_power data to fill gaps in load_today data
2026-08-16 02:55:02.568116: Processing 721 30-minute periods for power integration
2026-08-16 02:55:02.761551: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 02:55:02.761980: Car charging hold False, threshold 6.0kWh
2026-08-16 02:55:02.762230: Current data so far today: load 2.1kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 02:55:02.778791: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 02:55:02.779386: Standing charge is set to 49.98p
2026-08-16 02:55:02.906553: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 02:55:02.906905: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 02:55:02.907316: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 175.0 minutes
2026-08-16 02:55:02.908025: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 174.8 minutes
2026-08-16 02:55:02.911508: Loaded 47 datapoints of futurerate analysis
2026-08-16 02:55:03.035256: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 02:55:03.087145: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 02:55:03.087499: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 02:55:03.123398: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 02:55:03.123612: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 02:55:03.124636: High export rate found rates in range 99p to -99p
2026-08-16 02:55:03.188429: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 02:55:03.188573: Car 0 charging is not planned as it is not plugged in
2026-08-16 02:55:03.201643: Battery level now 10.08kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.13p, rate_forward 1.0p
2026-08-16 02:55:03.202064: 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-16 02:55:03.253611: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 02:55:03.253772: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 02:55:03.489729: Using weighted-bucket historical load forecast over 14 days
2026-08-16 02:55:03.530843: Today's load divergence 100.0%, in-day adjustment 82.97%, damping 0.95x, yesterday 82.97% today 100.0% blend 100.0%
2026-08-16 02:55:03.531078: Today's predicted so far 2.48kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.48kWh forecast extra.
2026-08-16 02:55:03.531146: Today's actual load so far 2.04kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 02:55:03.591660: Inverter 0: Type SK Sunsynk
2026-08-16 02:55:03.591768: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 02:55:03.592073: Reserve min: 7%, battery_min: 7%
2026-08-16 02:55:03.592188: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 02:55:03.592567: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 503W, current battery voltage 51.2V, grid power -55W, load power 550W, PV Power 0W
2026-08-16 02:55:03.592825: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:55:03.593000: Inverter 0 scheduled charge enable is False
2026-08-16 02:55:03.593057: Inverter 0 charge windows currently []
2026-08-16 02:55:03.593134: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 02:55:03.593402: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:55:03.593449: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:55:03.593576: Inverter 0 scheduled discharge enable is False
2026-08-16 02:55:03.593837: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:55:03.593886: Inverter 0 discharge windows currently []
2026-08-16 02:55:03.593946: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:55:03.594012: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:55:03.594047: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:55:03.825935: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 02:55:03.826241: Plan was last updated on 2026-08-16 02:50:00+01:00 and is now 5.0 minutes old
2026-08-16 02:55:03.826646: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 02:55:03.826733: Best export window [  ]
2026-08-16 02:55:03.828178: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 02:55:03.833056: Load divergence over 8.0 hours mean 432.71W, min 273.0W, max 1572.0W, std dev 209.12W, divergence 24.16%
2026-08-16 02:55:03.879036: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 02:55:03.881946: LoadML is_calculating True
2026-08-16 02:55:03.882035: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 02:55:03.994251: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 368.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 20:05:00, load 20.03kWh, PV 0.0kWh
2026-08-16 02:55:04.207116: Battery has 17.17 hours left - now at 10.08kWh
2026-08-16 02:55:04.266226: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 395.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.89kWh, PV 0.0kWh
2026-08-16 02:55:04.446424: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 256.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 20.89kWh, PV 0.0kWh
2026-08-16 02:55:04.661538: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 220.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 20.03kWh, PV 0.0kWh
2026-08-16 02:55:04.667266: Saving plan best values to HA entities
2026-08-16 02:55:04.974312: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 02:55:04.981376: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 02:55:04.990809: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.55kWh, house 1.37kWh, export 0.0kWh, metric 220.48p, metric10 256.13p
2026-08-16 02:55:05.133270: Marginal costs baseline metric (no standing charge): 170.4991
2026-08-16 02:55:05.518244: Marginal energy costs matrix computed: min=1.8 max=26.08
2026-08-16 02:55:05.647313: Rate array import [{'start': 175, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 175, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 02:55:05.648696: - Your estimated bill for today is £1.25 and tomorrow is £7.29
2026-08-16 02:55:05.648935: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 02:55:05.649128: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 02:55:05.649261: - For the next 48 hours there will be no solar generation.
2026-08-16 02:55:05.649386: - You will run out of battery in 29 hours.
2026-08-16 02:55:05.649509: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 02:55:05.649637: 
2026-08-16 02:55:05.693177: Plan calculation took 1.87 seconds
2026-08-16 02:55:05.696375: No high rate period found
2026-08-16 02:55:05.848777: Import threshold used for optimisation was 24.06p
2026-08-16 02:55:05.973438: Low import rate windows [0: 08-16 02:30:00 - 08-16 03:00:00 @ 25.86, 1: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 2: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 3: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 4: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 5: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 6: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 7: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 8: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 9: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 10: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 11: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 12: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 13: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 14: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 15: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 16: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 17: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 18: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 19: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 20: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 21: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 22: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 23: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 24: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 25: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 26: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 27: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 28: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 29: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 30: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 31: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 32: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 33: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 34: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 35: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 36: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 37: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 38: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 39: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 40: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 41: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 42: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 43: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 44: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 45: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 46: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 47: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 48: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 49: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 50: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 51: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 52: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 53: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 54: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 55: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 56: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 57: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 58: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 59: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 60: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 61: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 62: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 63: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 64: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 65: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 66: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 67: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 68: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 69: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 70: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 71: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 72: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 73: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 74: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 75: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 76: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 77: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 78: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 79: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 80: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 81: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 82: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 83: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 84: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 85: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 86: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 87: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 88: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 89: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 90: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 91: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 92: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 93: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 94: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 02:55:05.986090: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 02:55:05.987338: Inverter 0 disabled charge window while waiting for schedule (now 08-16 02:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 02:55:05.987517: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:55:05.987730: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:55:05.987833: No export window planned
2026-08-16 02:55:05.987981: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 02:55:05.988026: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 02:55:05.988165: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 02:55:05.988320: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 02:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 02:55:05.988373: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 02:55:05.988424: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 02:55:05.988511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.989907: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.990871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.991622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.991798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.991940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.992080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.992215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.992350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 02:55:05.992468: Inverter 0 count register writes 0
2026-08-16 02:55:06.026142: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 02:55:06.034067: Total inverter register writes now 826
2026-08-16 02:55:06.084043: Info: Completed run status Demand
2026-08-16 02:55:06.101704: Info: record_status Demand
2026-08-16 02:55:06.118579: Saved current settings to /config/predbat_config.json
2026-08-16 02:55:06.118866: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 02:55:17.740063: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0097 val_mae=0.0053 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0030 kWh ema_combined=0.0033 kWh
2026-08-16 02:55:42.306275: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:55:42.306860: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:55:42.306985: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:55:42.307291: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:55:42.307407: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:55:42.307527: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:55:42.307632: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:55:51.232350: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0110 val_mae=0.0046 kWh val_bias=-0.0025 kWh (-3.1%) combined=0.0038 kWh ema_combined=0.0034 kWh
2026-08-16 02:56:28.082646: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0088 val_mae=0.0046 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 02:57:03.381045: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0084 val_mae=0.0037 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0019 kWh ema_combined=0.0028 kWh
2026-08-16 02:57:36.806118: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0072 val_mae=0.0036 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 02:57:56.860100: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:57:56.860692: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:57:56.860791: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:57:56.861214: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:57:56.861285: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:57:56.861315: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:57:56.861394: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 02:58:09.062521: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0090 val_mae=0.0040 kWh val_bias=-0.0016 kWh (-1.9%) combined=0.0029 kWh ema_combined=0.0027 kWh
2026-08-16 02:58:41.523609: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-16 02:59:15.060267: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0082 val_mae=0.0034 kWh val_bias=-0.0012 kWh (-1.5%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 02:59:27.645298: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 02:59:27.807954: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 02:59:48.797466: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 02:59:57.343911: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 02:59:57.344169: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 02:59:57.344215: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 02:59:57.344362: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 02:59:57.344404: Note: Inverter does not support discharge freeze - disabled
2026-08-16 02:59:57.344426: Note: Inverter does not support charge freeze - disabled
2026-08-16 02:59:57.344443: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:00:00.489418: --------------- PredBat - update at 2026-08-16 03:00:00+01:00 with clock skew 0 minutes, minutes now 180
2026-08-16 03:00:00.490836: Saved current settings to /config/predbat_config.json
2026-08-16 03:00:00.491059: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 03:00:00.491271: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:00:00.491530: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:00:00.574153: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:00:00.574444: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:00:00.593208: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:00:00.594004: Cars 1 charging from battery False 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-16 03:00:00.594245: Predbat mode is set to Control charge & discharge
2026-08-16 03:00:00.962511: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:00:00.962850: Using load_power data to fill gaps in load_today data
2026-08-16 03:00:02.556340: Processing 721 30-minute periods for power integration
2026-08-16 03:00:02.766217: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:00:02.766482: Car charging hold False, threshold 6.0kWh
2026-08-16 03:00:02.766616: Current data so far today: load 2.15kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:00:02.790094: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:00:02.790670: Standing charge is set to 49.98p
2026-08-16 03:00:02.834427: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:00:02.834771: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:00:02.835111: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 180.0 minutes
2026-08-16 03:00:02.835624: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 179.8 minutes
2026-08-16 03:00:02.839102: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:00:02.991171: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:00:03.131252: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:00:03.140553: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:00:03.184266: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:00:03.184487: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:00:03.185841: High export rate found rates in range 99p to -99p
2026-08-16 03:00:03.317481: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:00:03.330421: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:00:03.351604: Battery level now 10.08kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.13p, rate_forward 1.0p
2026-08-16 03:00:03.352119: 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-16 03:00:03.443174: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:00:03.443321: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:00:03.573230: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:00:03.598824: Today's load divergence 96.9%, in-day adjustment 84.73%, damping 0.95x, yesterday 82.97% today 97.05% blend 87.5%
2026-08-16 03:00:03.599449: Today's predicted so far 2.63kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.63kWh forecast extra.
2026-08-16 03:00:03.599528: Today's actual load so far 2.15kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:00:03.674906: Inverter 0: Type SK Sunsynk
2026-08-16 03:00:03.675177: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:00:03.675577: Reserve min: 7%, battery_min: 7%
2026-08-16 03:00:03.675738: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:00:03.676122: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 454W, current battery voltage 51.2V, grid power -55W, load power 506W, PV Power 0W
2026-08-16 03:00:03.676392: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:00:03.676566: Inverter 0 scheduled charge enable is False
2026-08-16 03:00:03.676691: Inverter 0 charge windows currently []
2026-08-16 03:00:03.676806: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:00:03.677059: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:00:03.677176: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:00:03.677307: Inverter 0 scheduled discharge enable is False
2026-08-16 03:00:03.677538: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:00:03.677664: Inverter 0 discharge windows currently []
2026-08-16 03:00:03.677756: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:00:03.677901: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:00:03.677999: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:00:03.824807: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:00:03.825076: Plan was last updated on 2026-08-16 02:50:00+01:00 and is now 10.0 minutes old
2026-08-16 03:00:03.825414: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:00:03.825467: Best export window [  ]
2026-08-16 03:00:03.826587: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:00:03.830731: Load divergence over 8.0 hours mean 425.89W, min 223.8W, max 1698.0W, std dev 212.96W, divergence 25.0%
2026-08-16 03:00:03.894288: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:00:03.894684: LoadML is_calculating True
2026-08-16 03:00:03.894739: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:00:04.007089: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 376.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:00:04.279331: Battery has 16.83 hours left - now at 10.08kWh
2026-08-16 03:00:04.406324: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 403.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.21kWh, PV 0.0kWh
2026-08-16 03:00:04.694746: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 270.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.21kWh, PV 0.0kWh
2026-08-16 03:00:04.929907: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 236.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:00:04.930197: Saving plan best values to HA entities
2026-08-16 03:00:05.370463: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:00:05.379703: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:00:05.389107: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.1kWh, house 1.49kWh, export 0.0kWh, metric 236.14p, metric10 270.57p
2026-08-16 03:00:05.490217: Marginal costs baseline metric (no standing charge): 186.1566
2026-08-16 03:00:05.963502: Marginal energy costs matrix computed: min=0.0 max=26.11
2026-08-16 03:00:06.106688: Rate array import [{'start': 180, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 180, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:00:06.107970: - Your estimated bill for today is £1.26 and tomorrow is £7.30
2026-08-16 03:00:06.108190: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:00:06.108374: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 03:00:06.108524: - For the next 48 hours there will be no solar generation.
2026-08-16 03:00:06.108658: - You will run out of battery in 29 hours.
2026-08-16 03:00:06.108796: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 03:00:06.108984: 
2026-08-16 03:00:06.215695: Plan calculation took 2.39 seconds
2026-08-16 03:00:06.220184: No high rate period found
2026-08-16 03:00:06.364033: Import threshold used for optimisation was 24.06p
2026-08-16 03:00:06.479840: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86]
2026-08-16 03:00:06.495848: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 63%, target 100%
2026-08-16 03:00:06.496059: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:00:06.496216: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:00:06.496471: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:00:06.496601: No export window planned
2026-08-16 03:00:06.496768: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:00:06.496830: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:00:06.497082: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:00:06.497300: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:00:06.497395: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:00:06.497494: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:00:06.497623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.497697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.497818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.497922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.497964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498414: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:00:06.498824: Inverter 0 count register writes 0
2026-08-16 03:00:06.546416: 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-16 03:00:06.546668: Recompute is saving previous plan...
2026-08-16 03:00:06.549922: Best charge window [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0% ]
2026-08-16 03:00:06.550008: Best export window [  ]
2026-08-16 03:00:06.550915: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:00:06.553996: Load divergence over 8.0 hours mean 425.89W, min 223.8W, max 1698.0W, std dev 212.96W, divergence 25.0%
2026-08-16 03:00:06.601521: Calculating data from yesterday for savings calculation
2026-08-16 03:00:06.619692: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 03:00:06.740300: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 03:00:06.791292: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 03:00:06.857330: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 03:00:06.925291: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 03:00:07.105411: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 03:00:07.110287: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 03:00:07.136063: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:00:07.142672: LoadML is_calculating True
2026-08-16 03:00:07.142985: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:00:07.180752: 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(0.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-16 03:00:07.190134: Optimise levels pass started at 2026-08-16 03:00:07
2026-08-16 03:00:07.194002: Optimise all windows, total charge 94 export 1
2026-08-16 03:00:13.812497: >> Region optimisation pass width 960 gives best_metric 445.16p, best_cost 457.29p, best_cycle 40.06kWh, best_import 23.73kWh
2026-08-16 03:00:14.818651: >> Region optimisation pass width 480 gives best_metric 445.16p, best_cost 457.29p, best_cycle 40.06kWh, best_import 23.73kWh
2026-08-16 03:00:16.224930: >> Region optimisation pass width 240 gives best_metric 445.16p, best_cost 457.29p, best_cycle 40.06kWh, best_import 23.73kWh
2026-08-16 03:00:20.886044: >> Region optimisation pass width 120 gives best_metric 445.16p, best_cost 457.29p, best_cycle 40.06kWh, best_import 23.73kWh
2026-08-16 03:00:20.903448: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 63
2026-08-16 03:00:20.909661: Optimise levels pass ended at 2026-08-16 03:00:20, duration 13.7 seconds tried 303 combinations
2026-08-16 03:00:20.909948: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 445.16p, best_keep 0kWh, best_cycle 40.06kWh, best_carbon 0kg, best_import 23.73kWh
2026-08-16 03:00:20.960397: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:00:49.385663: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0071 val_mae=0.0029 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 03:00:52.963385: Tweak plan optimisation started metric 147.61p, cost 162.68p
2026-08-16 03:00:55.930618: Tweak optimisation finished metric 147.61p, cost 162.68p, metric_keep 0kWh, cycle 21.38kWh, carbon 0kg, import 10.62kWh, changed 8 window(s)
2026-08-16 03:00:55.987162: Swap charge optimisation started metric 147.61p, cost 162.68p, min_improvement_swap 0.1p
2026-08-16 03:01:07.275574: Swap charge optimisation finished metric 147.61p, cost 162.68p
2026-08-16 03:01:07.576927: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 142.08p -> 142.08p, plan now metric 147.73p, cost 162.68p, cycle 21.38kWh, import 10.62kWh
2026-08-16 03:01:07.622014: Raw charge windows [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 75%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 03:01:07.630771: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 03:01:07.631342: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 03:01:07.633303: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 03:01:07.723854: Previous plan best metric is 147.73 (cost 162.68) and new plan best metric is 147.61 (cost 162.68)
2026-08-16 03:01:07.724220: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:01:07.724352: Plan valid is now true after recompute was False
2026-08-16 03:01:07.758770: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 373.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.21kWh, PV 0.0kWh
2026-08-16 03:01:07.952826: Battery has 16.83 hours left - now at 10.08kWh
2026-08-16 03:01:08.040137: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 400.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.07kWh, PV 0.0kWh
2026-08-16 03:01:08.189184: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 250.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.07kWh, PV 0.0kWh
2026-08-16 03:01:08.339476: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 212.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.21kWh, PV 0.0kWh
2026-08-16 03:01:08.339595: Saving plan best values to HA entities
2026-08-16 03:01:08.612919: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:01:08.619725: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:01:08.626721: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.13kWh, house 1.49kWh, export 0.0kWh, metric 212.67p, metric10 250.31p
2026-08-16 03:01:08.747704: Marginal costs baseline metric (no standing charge): 162.6842
2026-08-16 03:01:09.296423: Marginal energy costs matrix computed: min=0.0 max=26.11
2026-08-16 03:01:09.381456: Rate array import [{'start': 180, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 180, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:01:09.382232: - Your estimated bill for today is £1.26 and tomorrow is £7.30
2026-08-16 03:01:09.382281: - Import rates are expensive (24.1p - 27.0p) for the next 8 hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:01:09.382304: - The battery is currently at 63% and is in eco mode for the next 8 hours.
2026-08-16 03:01:09.382323: - For the next 48 hours there will be no solar generation.
2026-08-16 03:01:09.382340: - You will run out of battery in 29 hours.
2026-08-16 03:01:09.382358: - Your next charge slot will be in 8 hours where import rates will be free (0.0p).
2026-08-16 03:01:09.382376: 
2026-08-16 03:01:09.445639: Plan calculation took 62.90 seconds
2026-08-16 03:01:09.445967: Inverter 0: Type SK Sunsynk
2026-08-16 03:01:09.446021: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:01:09.446268: Reserve min: 7%, battery_min: 7%
2026-08-16 03:01:09.446357: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:01:09.446681: Inverter 0 SoC: 9.98kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 495W, current battery voltage 51.2V, grid power -55W, load power 544W, PV Power 0W
2026-08-16 03:01:09.446891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:01:09.447004: Inverter 0 scheduled charge enable is False
2026-08-16 03:01:09.447049: Inverter 0 charge windows currently []
2026-08-16 03:01:09.447084: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:01:09.447323: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:01:09.447385: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:01:09.447435: Inverter 0 scheduled discharge enable is False
2026-08-16 03:01:09.447605: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:01:09.447654: Inverter 0 discharge windows currently []
2026-08-16 03:01:09.447683: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:01:09.460995: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:01:09.461079: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:01:09.619603: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:01:09.619799: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:01:09.619885: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:01:09.620111: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:01:09.620200: No export window planned
2026-08-16 03:01:09.620331: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:01:09.620375: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:01:09.620544: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:01:09.620722: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:01:09.620799: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:01:09.620859: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:01:09.621848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.621939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622142: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.622849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:01:09.623902: Inverter 0 count register writes 0
2026-08-16 03:01:09.666658: Total inverter register writes now 826
2026-08-16 03:01:09.729051: Info: Completed run status Demand
2026-08-16 03:01:09.739552: Info: record_status Demand
2026-08-16 03:01:09.750726: Saved current settings to /config/predbat_config.json
2026-08-16 03:01:09.751023: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:01:34.304329: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0066 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-16 03:01:41.875812: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:01:41.876094: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:01:41.876147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:01:41.876315: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:01:41.876362: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:01:41.876389: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:01:41.876414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:02:08.407564: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 03:02:43.072886: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 03:03:13.744012: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-16 03:03:48.288175: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 03:03:56.526488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:03:56.526811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:03:56.526868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:03:56.527019: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:03:56.527062: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:03:56.527084: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:03:56.527102: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:04:22.948048: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 03:04:57.248011: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 03:05:00.762182: Info: HAHistory: Pruning history data started.
2026-08-16 03:05:00.765870: Info: HAHistory: Pruning history data completed.
2026-08-16 03:05:00.872927: --------------- PredBat - update at 2026-08-16 03:05:00+01:00 with clock skew 0 minutes, minutes now 185
2026-08-16 03:05:00.873867: Saved current settings to /config/predbat_config.json
2026-08-16 03:05:00.874004: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 03:05:00.874089: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:05:00.874206: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:05:00.930520: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:05:00.930863: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:05:00.931290: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:05:00.932168: Cars 1 charging from battery False 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-16 03:05:00.932484: Predbat mode is set to Control charge & discharge
2026-08-16 03:05:01.352406: Found 21602 load_today datapoints going back 27 days
2026-08-16 03:05:01.352712: Using load_power data to fill gaps in load_today data
2026-08-16 03:05:03.155547: Processing 721 30-minute periods for power integration
2026-08-16 03:05:03.384916: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:05:03.401220: Car charging hold False, threshold 6.0kWh
2026-08-16 03:05:03.401398: Current data so far today: load 2.2kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:05:03.415965: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:05:03.441431: Standing charge is set to 49.98p
2026-08-16 03:05:03.535034: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:05:03.535319: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:05:03.535893: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 185.0 minutes
2026-08-16 03:05:03.536683: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 184.8 minutes
2026-08-16 03:05:03.542451: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:05:03.738529: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:05:03.952931: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:05:03.957342: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:05:04.097117: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:05:04.097460: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:05:04.098891: High export rate found rates in range 99p to -99p
2026-08-16 03:05:04.193257: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:05:04.193394: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:05:04.215901: Battery level now 10.08kWh, -1hr ago 10.49kWh, at midnight 12.21kWh, battery value change in the last hour -0.41p, change today -2.13p, rate_forward 1.0p
2026-08-16 03:05:04.227849: 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-16 03:05:04.330664: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:05:04.330831: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:05:04.553072: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:05:04.596920: Today's load divergence 96.86%, in-day adjustment 84.77%, damping 0.95x, yesterday 82.97% today 97.02% blend 87.15%
2026-08-16 03:05:04.597203: Today's predicted so far 2.74kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.74kWh forecast extra.
2026-08-16 03:05:04.597342: Today's actual load so far 2.26kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:05:04.667522: Inverter 0: Type SK Sunsynk
2026-08-16 03:05:04.667617: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:05:04.667819: Reserve min: 7%, battery_min: 7%
2026-08-16 03:05:04.667885: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:05:04.668142: Inverter 0 SoC: 9.98kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 532W, current battery voltage 51.2V, grid power -55W, load power 583W, PV Power 0W
2026-08-16 03:05:04.668296: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:05:04.668380: Inverter 0 scheduled charge enable is False
2026-08-16 03:05:04.668409: Inverter 0 charge windows currently []
2026-08-16 03:05:04.668435: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:05:04.668537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:05:04.668566: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:05:04.668599: Inverter 0 scheduled discharge enable is False
2026-08-16 03:05:04.668720: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:05:04.668748: Inverter 0 discharge windows currently []
2026-08-16 03:05:04.668770: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:05:04.668787: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:05:04.668835: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:05:04.828922: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:05:04.829125: Plan was last updated on 2026-08-16 03:00:00+01:00 and is now 5.0 minutes old
2026-08-16 03:05:04.829541: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:05:04.829892: Best export window [  ]
2026-08-16 03:05:04.831416: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:05:04.839421: Load divergence over 8.0 hours mean 416.97W, min 213.6W, max 1688.4W, std dev 200.25W, divergence 24.01%
2026-08-16 03:05:04.909361: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:05:04.921117: LoadML is_calculating True
2026-08-16 03:05:04.921371: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:05:05.018778: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 377.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.29kWh, PV 0.0kWh
2026-08-16 03:05:05.330664: Battery has 16.67 hours left - now at 9.98kWh
2026-08-16 03:05:05.404660: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 404.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.15kWh, PV 0.0kWh
2026-08-16 03:05:05.543249: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 261.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.15kWh, PV 0.0kWh
2026-08-16 03:05:05.697886: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 225.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.29kWh, PV 0.0kWh
2026-08-16 03:05:05.698218: Saving plan best values to HA entities
2026-08-16 03:05:06.110204: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:05:06.129374: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:05:06.148251: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.68kWh, house 1.5kWh, export 0.0kWh, metric 225.9p, metric10 261.91p
2026-08-16 03:05:06.311524: Marginal costs baseline metric (no standing charge): 175.9205
2026-08-16 03:05:06.859494: Marginal energy costs matrix computed: min=1.79 max=26.06
2026-08-16 03:05:07.000725: Rate array import [{'start': 185, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 185, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:05:07.001774: - Your estimated bill for today is £1.27 and tomorrow is £7.28
2026-08-16 03:05:07.001877: - Import rates are expensive (24.1p - 27.0p) for the next 7  hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:05:07.001910: - The battery is currently at 62% and is in eco mode for the next 7  hours.
2026-08-16 03:05:07.001936: - For the next 48 hours there will be no solar generation.
2026-08-16 03:05:07.002072: - You will run out of battery in 29 hours.
2026-08-16 03:05:07.002125: - Your next charge slot will be in 7  hours where import rates will be free (0.0p).
2026-08-16 03:05:07.002235: 
2026-08-16 03:05:07.065205: Plan calculation took 2.24 seconds
2026-08-16 03:05:07.070591: No high rate period found
2026-08-16 03:05:07.246847: Import threshold used for optimisation was 23.43p
2026-08-16 03:05:07.491833: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 94: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:05:07.504929: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:05:07.505141: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:05:07.505232: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:05:07.505456: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:05:07.505566: No export window planned
2026-08-16 03:05:07.505693: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:05:07.505734: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:05:07.505921: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:05:07.506102: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:05:07.506160: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:05:07.506476: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:05:07.514817: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.514929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515520: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.515863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.516013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.516156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.516295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.516432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:05:07.516557: Inverter 0 count register writes 0
2026-08-16 03:05:07.550320: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:05:07.559537: Total inverter register writes now 826
2026-08-16 03:05:07.623216: Info: Completed run status Demand
2026-08-16 03:05:07.633678: Info: record_status Demand
2026-08-16 03:05:07.646583: Saved current settings to /config/predbat_config.json
2026-08-16 03:05:07.646930: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:05:36.908166: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 03:05:41.812271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:05:41.812603: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:05:41.812668: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:05:41.812899: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:05:41.812985: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:05:41.813148: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:05:41.813293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:06:09.265361: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 03:06:45.189384: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-16 03:07:22.184811: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 03:07:42.301726: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:07:42.302820: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:07:42.302975: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:07:42.303297: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:07:42.303448: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:07:42.303575: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:07:42.303694: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:07:55.232066: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 03:07:55.238298: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%)
2026-08-16 03:07:55.238652: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%)
2026-08-16 03:07:59.685387: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0000 kWh (-0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 03:07:59.730685: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-16 03:07:59.730825: ML Predictor: Curriculum final pass 5/5: full dataset (57.5 days)
2026-08-16 03:07:59.730869: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 03:08:00.566193: ML Predictor: Creating dataset with 1381 hours of training data, 48 hours validation
2026-08-16 03:08:06.697541: ML Predictor: Created 16286 training samples, 576 validation samples
2026-08-16 03:08:06.754017: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0471) load(mean=0.0590 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.5701 std=4.4622) import_rate(mean=26.1590 std=2.9067) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1905 std=0.5255)
2026-08-16 03:08:06.843721: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 03:08:06.860312: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 03:08:06.907363: ML Predictor: Baseline (pre-finetune) val_mae=0.0059 kWh val_bias=-0.0004 kWh
2026-08-16 03:08:41.967657: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0104 val_mae=0.0050 kWh val_bias=-0.0013 kWh (-2.1%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 03:09:16.775069: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0108 val_mae=0.0050 kWh val_bias=-0.0012 kWh (-1.9%) combined=0.0030 kWh ema_combined=0.0028 kWh
2026-08-16 03:09:50.460126: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0105 val_mae=0.0045 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-16 03:09:57.255791: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:09:57.256205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:09:57.256279: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:09:57.256669: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:09:57.256872: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:09:57.256941: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:09:57.257079: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:10:00.442221: --------------- PredBat - update at 2026-08-16 03:10:00+01:00 with clock skew 0 minutes, minutes now 190
2026-08-16 03:10:00.443630: Saved current settings to /config/predbat_config.json
2026-08-16 03:10:00.443909: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 03:10:00.444184: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:10:00.444394: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:10:00.517996: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:10:00.518291: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:10:00.518586: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:10:00.519296: Cars 1 charging from battery False 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-16 03:10:00.519513: Predbat mode is set to Control charge & discharge
2026-08-16 03:10:01.005148: Found 21602 load_today datapoints going back 27 days
2026-08-16 03:10:01.005382: Using load_power data to fill gaps in load_today data
2026-08-16 03:10:02.300310: Processing 721 30-minute periods for power integration
2026-08-16 03:10:02.564141: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:10:02.564502: Car charging hold False, threshold 6.0kWh
2026-08-16 03:10:02.564697: Current data so far today: load 2.25kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:10:02.587827: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:10:02.588475: Standing charge is set to 49.98p
2026-08-16 03:10:02.673575: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:10:02.674149: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:10:02.674697: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 190.0 minutes
2026-08-16 03:10:02.676234: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 189.8 minutes
2026-08-16 03:10:02.680500: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:10:02.913370: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:10:02.968852: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:10:02.969172: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:10:03.004683: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:10:03.004894: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:10:03.005883: High export rate found rates in range 99p to -99p
2026-08-16 03:10:03.090475: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:10:03.091026: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:10:03.111748: Battery level now 9.98kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -0.42p, change today -2.23p, rate_forward 1.0p
2026-08-16 03:10:03.112514: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.52kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:10:03.210605: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:10:03.210754: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:10:03.423136: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:10:03.536511: Today's load divergence 96.82%, in-day adjustment 84.82%, damping 0.95x, yesterday 82.97% today 96.98% blend 86.81%
2026-08-16 03:10:03.545057: Today's predicted so far 2.76kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.76kWh forecast extra.
2026-08-16 03:10:03.545324: Today's actual load so far 2.27kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:10:03.631943: Inverter 0: Type SK Sunsynk
2026-08-16 03:10:03.632066: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:10:03.632259: Reserve min: 7%, battery_min: 7%
2026-08-16 03:10:03.632591: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:10:03.633055: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 480W, current battery voltage 51.2V, grid power -55W, load power 529W, PV Power 0W
2026-08-16 03:10:03.633334: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:10:03.633446: Inverter 0 scheduled charge enable is False
2026-08-16 03:10:03.633483: Inverter 0 charge windows currently []
2026-08-16 03:10:03.633631: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:10:03.633776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:10:03.634000: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:10:03.634060: Inverter 0 scheduled discharge enable is False
2026-08-16 03:10:03.634272: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:10:03.634378: Inverter 0 discharge windows currently []
2026-08-16 03:10:03.634408: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:10:03.634428: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:10:03.634450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:10:03.771748: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:10:03.772018: Plan was last updated on 2026-08-16 03:00:00+01:00 and is now 10.0 minutes old
2026-08-16 03:10:03.772489: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:10:03.772622: Best export window [  ]
2026-08-16 03:10:03.774018: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:10:03.778788: Load divergence over 8.0 hours mean 413.62W, min 222.6W, max 1619.4W, std dev 182.23W, divergence 22.03%
2026-08-16 03:10:03.839892: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:10:03.845062: LoadML is_calculating True
2026-08-16 03:10:03.845146: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:10:03.937741: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 378.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:10:04.149661: Battery has 16.58 hours left - now at 9.92kWh
2026-08-16 03:10:04.275396: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 405.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.2kWh, PV 0.0kWh
2026-08-16 03:10:04.420271: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 271.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.2kWh, PV 0.0kWh
2026-08-16 03:10:04.564665: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 237.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:10:04.564932: Saving plan best values to HA entities
2026-08-16 03:10:04.969644: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:10:04.981236: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:10:04.994671: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.15kWh, house 1.49kWh, export 0.0kWh, metric 237.31p, metric10 271.63p
2026-08-16 03:10:05.155731: Marginal costs baseline metric (no standing charge): 187.3264
2026-08-16 03:10:05.741854: Marginal energy costs matrix computed: min=3.71 max=26.01
2026-08-16 03:10:05.887594: Rate array import [{'start': 190, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 190, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:10:05.888410: - Your estimated bill for today is £1.27 and tomorrow is £7.30
2026-08-16 03:10:05.888562: - Import rates are expensive (24.1p - 27.0p) for the next 7 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:10:05.888678: - The battery is currently at 62% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 03:10:05.888787: - For the next 48 hours there will be no solar generation.
2026-08-16 03:10:05.888910: - You will run out of battery in 29 hours.
2026-08-16 03:10:05.889043: - Your next charge slot will be in 7 and three quarters hours where import rates will be free (0.0p).
2026-08-16 03:10:05.889155: 
2026-08-16 03:10:05.948862: Plan calculation took 2.18 seconds
2026-08-16 03:10:05.952197: No high rate period found
2026-08-16 03:10:06.089687: Import threshold used for optimisation was 23.43p
2026-08-16 03:10:06.216383: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 94: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:10:06.238607: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:10:06.238839: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:10:06.239039: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:10:06.239315: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:10:06.239450: No export window planned
2026-08-16 03:10:06.239619: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:10:06.239664: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:10:06.239923: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:10:06.240148: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:10:06.240244: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:10:06.240351: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:10:06.240487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.240538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.240650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.240695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.240790: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.240863: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241010: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.241474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.253132: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:10:06.253284: Inverter 0 count register writes 0
2026-08-16 03:10:06.296363: 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-16 03:10:06.296638: Recompute is saving previous plan...
2026-08-16 03:10:06.300004: Best charge window [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0% ]
2026-08-16 03:10:06.300232: Best export window [  ]
2026-08-16 03:10:06.301204: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:10:06.304984: Load divergence over 8.0 hours mean 413.62W, min 222.6W, max 1619.4W, std dev 182.23W, divergence 22.03%
2026-08-16 03:10:06.323950: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:10:06.324495: LoadML is_calculating True
2026-08-16 03:10:06.324561: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:10:06.333763: 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(0.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-16 03:10:06.334940: Optimise levels pass started at 2026-08-16 03:10:06
2026-08-16 03:10:06.335001: Optimise all windows, total charge 94 export 1
2026-08-16 03:10:14.097732: >> Region optimisation pass width 960 gives best_metric 449.23p, best_cost 461.46p, best_cycle 41.26kWh, best_import 24.0kWh
2026-08-16 03:10:17.103310: >> Region optimisation pass width 480 gives best_metric 449.23p, best_cost 461.46p, best_cycle 41.26kWh, best_import 24.0kWh
2026-08-16 03:10:18.615327: >> Region optimisation pass width 240 gives best_metric 449.23p, best_cost 461.46p, best_cycle 41.26kWh, best_import 24.0kWh
2026-08-16 03:10:22.863324: >> Region optimisation pass width 120 gives best_metric 449.23p, best_cost 461.46p, best_cycle 41.26kWh, best_import 24.0kWh
2026-08-16 03:10:22.864007: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 63
2026-08-16 03:10:22.864218: Optimise levels pass ended at 2026-08-16 03:10:22, duration 16.5 seconds tried 347 combinations
2026-08-16 03:10:22.864362: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 449.23p, best_keep 0kWh, best_cycle 41.26kWh, best_carbon 0kg, best_import 24.0kWh
2026-08-16 03:10:22.888279: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:10:52.385714: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0120 val_mae=0.0058 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-16 03:10:54.234130: Tweak plan optimisation started metric 148.87p, cost 163.97p
2026-08-16 03:10:56.871154: Tweak optimisation finished metric 148.87p, cost 163.97p, metric_keep 0kWh, cycle 21.31kWh, carbon 0kg, import 10.68kWh, changed 8 window(s)
2026-08-16 03:10:56.892266: Swap charge optimisation started metric 148.87p, cost 163.97p, min_improvement_swap 0.1p
2026-08-16 03:11:09.476333: Swap charge optimisation finished metric 148.87p, cost 163.97p
2026-08-16 03:11:09.641633: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 143.37p -> 143.37p, plan now metric 149.0p, cost 163.97p, cycle 21.31kWh, import 10.68kWh
2026-08-16 03:11:09.657842: Raw charge windows [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 03:11:09.658907: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:11:09.660857: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:11:09.661362: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:11:09.807871: Previous plan best metric is 148.98 (cost 163.97) and new plan best metric is 148.87 (cost 163.97)
2026-08-16 03:11:09.810167: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:11:09.810349: Plan valid is now true after recompute was False
2026-08-16 03:11:09.885474: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 375.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.21kWh, PV 0.0kWh
2026-08-16 03:11:10.082446: Battery has 16.58 hours left - now at 9.92kWh
2026-08-16 03:11:10.172866: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 401.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.07kWh, PV 0.0kWh
2026-08-16 03:11:10.327910: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 251.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.07kWh, PV 0.0kWh
2026-08-16 03:11:10.492745: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 213.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.21kWh, PV 0.0kWh
2026-08-16 03:11:10.494306: Saving plan best values to HA entities
2026-08-16 03:11:10.877628: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:11:10.888112: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:11:10.898059: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.18kWh, house 1.49kWh, export 0.0kWh, metric 213.95p, metric10 251.49p
2026-08-16 03:11:11.131805: Marginal costs baseline metric (no standing charge): 163.9704
2026-08-16 03:11:11.559231: Marginal energy costs matrix computed: min=3.71 max=26.01
2026-08-16 03:11:11.667344: Rate array import [{'start': 190, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 190, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:11:11.689536: - Your estimated bill for today is £1.27 and tomorrow is £7.30
2026-08-16 03:11:11.689630: - Import rates are expensive (24.1p - 27.0p) for the next 7 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:11:11.689656: - The battery is currently at 62% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 03:11:11.689675: - For the next 48 hours there will be no solar generation.
2026-08-16 03:11:11.689692: - You will run out of battery in 29 hours.
2026-08-16 03:11:11.689709: - Your next charge slot will be in 7 and three quarters hours where import rates will be free (0.0p).
2026-08-16 03:11:11.689726: 
2026-08-16 03:11:11.770565: Plan calculation took 65.47 seconds
2026-08-16 03:11:11.771125: Inverter 0: Type SK Sunsynk
2026-08-16 03:11:11.771331: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:11:11.771729: Reserve min: 7%, battery_min: 7%
2026-08-16 03:11:11.771995: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:11:11.772527: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 486W, current battery voltage 51.2V, grid power -54W, load power 533W, PV Power 0W
2026-08-16 03:11:11.772915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:11:11.773216: Inverter 0 scheduled charge enable is False
2026-08-16 03:11:11.773374: Inverter 0 charge windows currently []
2026-08-16 03:11:11.773561: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:11:11.773947: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:11:11.774111: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:11:11.777931: Inverter 0 scheduled discharge enable is False
2026-08-16 03:11:11.778373: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:11:11.778535: Inverter 0 discharge windows currently []
2026-08-16 03:11:11.778922: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:11:11.779073: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:11:11.779242: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:11:11.897216: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:11:11.897659: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:11:11.898329: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:11:11.899049: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:11:11.900046: No export window planned
2026-08-16 03:11:11.900712: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:11:11.901488: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:11:11.902084: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:11:11.902461: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:11:11.902703: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:11:11.902984: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:11:11.903323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.903641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.903920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.904239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.904508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.904726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.904987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.905268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.905443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.905716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.905944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.906204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.906351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.906535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:11:11.906689: Inverter 0 count register writes 0
2026-08-16 03:11:11.954039: Total inverter register writes now 826
2026-08-16 03:11:12.055603: Info: Completed run status Demand
2026-08-16 03:11:12.081104: Info: record_status Demand
2026-08-16 03:11:12.139853: Saved current settings to /config/predbat_config.json
2026-08-16 03:11:12.140269: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:11:36.303861: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0135 val_mae=0.0048 kWh val_bias=+0.0021 kWh (+3.2%) combined=0.0044 kWh ema_combined=0.0034 kWh
2026-08-16 03:11:42.345689: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:11:42.346015: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:11:42.346066: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:11:42.346253: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:11:42.346302: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:11:42.346331: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:11:42.346359: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:12:08.741891: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0137 val_mae=0.0045 kWh val_bias=-0.0009 kWh (-1.4%) combined=0.0029 kWh ema_combined=0.0032 kWh
2026-08-16 03:12:44.349026: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0042 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0028 kWh ema_combined=0.0031 kWh
2026-08-16 03:13:17.591299: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0115 val_mae=0.0043 kWh val_bias=-0.0018 kWh (-2.8%) combined=0.0033 kWh ema_combined=0.0031 kWh
2026-08-16 03:13:50.263043: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0100 val_mae=0.0040 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 03:13:56.849442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:13:56.849925: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:13:56.849980: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:13:56.850191: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:13:56.850235: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:13:56.850285: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:13:56.850387: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:14:22.039955: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0040 kWh val_bias=+0.0015 kWh (+2.3%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-16 03:14:56.965422: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0089 val_mae=0.0035 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-16 03:15:00.217386: --------------- PredBat - update at 2026-08-16 03:15:00+01:00 with clock skew 0 minutes, minutes now 195
2026-08-16 03:15:00.218293: Saved current settings to /config/predbat_config.json
2026-08-16 03:15:00.218424: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 03:15:00.218514: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:15:00.218670: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:15:00.251055: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:15:00.251208: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:15:00.251546: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:15:00.252151: Cars 1 charging from battery False 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-16 03:15:00.259805: Predbat mode is set to Control charge & discharge
2026-08-16 03:15:00.603960: Found 21602 load_today datapoints going back 27 days
2026-08-16 03:15:00.604564: Using load_power data to fill gaps in load_today data
2026-08-16 03:15:02.038818: Processing 721 30-minute periods for power integration
2026-08-16 03:15:02.351647: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:15:02.352452: Car charging hold False, threshold 6.0kWh
2026-08-16 03:15:02.352540: Current data so far today: load 2.3kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:15:02.367838: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:15:02.368856: Standing charge is set to 49.98p
2026-08-16 03:15:02.426054: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:15:02.426184: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:15:02.426555: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 195.0 minutes
2026-08-16 03:15:02.427210: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 194.8 minutes
2026-08-16 03:15:02.431832: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:15:02.709970: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:15:02.836676: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:15:02.837184: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:15:02.888670: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:15:02.888942: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:15:02.890299: High export rate found rates in range 99p to -99p
2026-08-16 03:15:02.983678: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:15:02.983850: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:15:03.001771: Battery level now 9.92kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.29p, rate_forward 1.0p
2026-08-16 03:15:03.002152: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:15:03.104419: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:15:03.104617: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:15:03.203584: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:15:03.288426: Today's load divergence 96.47%, in-day adjustment 84.82%, damping 0.95x, yesterday 82.97% today 96.65% blend 86.46%
2026-08-16 03:15:03.288546: Today's predicted so far 2.78kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.78kWh forecast extra.
2026-08-16 03:15:03.288579: Today's actual load so far 2.24kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:15:03.401822: Inverter 0: Type SK Sunsynk
2026-08-16 03:15:03.402123: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:15:03.402873: Reserve min: 7%, battery_min: 7%
2026-08-16 03:15:03.403117: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:15:03.403612: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 535W, current battery voltage 51.2V, grid power -55W, load power 583W, PV Power 0W
2026-08-16 03:15:03.403986: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:15:03.404421: Inverter 0 scheduled charge enable is False
2026-08-16 03:15:03.404738: Inverter 0 charge windows currently []
2026-08-16 03:15:03.405041: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:15:03.405835: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:15:03.406048: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:15:03.406226: Inverter 0 scheduled discharge enable is False
2026-08-16 03:15:03.407145: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:15:03.407224: Inverter 0 discharge windows currently []
2026-08-16 03:15:03.407407: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:15:03.407451: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:15:03.407654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:15:03.728149: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:15:03.728513: Plan was last updated on 2026-08-16 03:10:00+01:00 and is now 5.0 minutes old
2026-08-16 03:15:03.729021: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:15:03.729087: Best export window [  ]
2026-08-16 03:15:03.730520: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:15:03.751793: Load divergence over 8.0 hours mean 406.54W, min 244.8W, max 1582.8W, std dev 166.99W, divergence 20.54%
2026-08-16 03:15:03.786081: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:15:03.788583: LoadML is_calculating True
2026-08-16 03:15:03.788625: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:15:03.830121: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 374.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.27kWh, PV 0.0kWh
2026-08-16 03:15:04.131886: Battery has 16.58 hours left - now at 9.92kWh
2026-08-16 03:15:04.264682: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 401.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.12kWh, PV 0.0kWh
2026-08-16 03:15:04.374752: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 259.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.12kWh, PV 0.0kWh
2026-08-16 03:15:04.470785: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 224.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.27kWh, PV 0.0kWh
2026-08-16 03:15:04.470895: Saving plan best values to HA entities
2026-08-16 03:15:04.880378: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:15:04.891032: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:15:04.902466: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.61kWh, house 1.49kWh, export 0.0kWh, metric 224.22p, metric10 259.89p
2026-08-16 03:15:05.114202: Marginal costs baseline metric (no standing charge): 174.2374
2026-08-16 03:15:05.566534: Marginal energy costs matrix computed: min=5.51 max=25.93
2026-08-16 03:15:05.743118: Rate array import [{'start': 195, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 195, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:15:05.744262: - Your estimated bill for today is £1.26 and tomorrow is £7.31
2026-08-16 03:15:05.748940: - Import rates are expensive (24.1p - 27.0p) for the next 7 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:15:05.749436: - The battery is currently at 62% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 03:15:05.749659: - For the next 48 hours there will be no solar generation.
2026-08-16 03:15:05.749877: - You will run out of battery in 28 hours.
2026-08-16 03:15:05.750111: - Your next charge slot will be in 7 and three quarters hours where import rates will be free (0.0p).
2026-08-16 03:15:05.750303: 
2026-08-16 03:15:05.834260: Plan calculation took 2.11 seconds
2026-08-16 03:15:05.840497: No high rate period found
2026-08-16 03:15:05.919649: Import threshold used for optimisation was 24.06p
2026-08-16 03:15:06.006839: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 94: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:15:06.034016: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:15:06.034177: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:15:06.034346: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:15:06.034614: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:15:06.034748: No export window planned
2026-08-16 03:15:06.034940: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:15:06.034991: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:15:06.035330: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:15:06.035554: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:15:06.035651: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:15:06.035780: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:15:06.035884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.035937: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.035972: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.035999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:15:06.036328: Inverter 0 count register writes 0
2026-08-16 03:15:06.081196: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:15:06.091064: Total inverter register writes now 826
2026-08-16 03:15:06.190493: Info: Completed run status Demand
2026-08-16 03:15:06.205598: Info: record_status Demand
2026-08-16 03:15:06.218274: Saved current settings to /config/predbat_config.json
2026-08-16 03:15:06.219024: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:15:30.702835: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0077 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0025 kWh
2026-08-16 03:15:42.380557: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:15:42.380839: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:15:42.380891: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:15:42.381250: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:15:42.381312: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:15:42.381395: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:15:42.381437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:16:06.727855: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=-0.0011 kWh (-1.7%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-16 03:16:42.048135: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0072 val_mae=0.0034 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 03:17:18.383110: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0076 val_mae=0.0034 kWh val_bias=-0.0010 kWh (-1.6%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-16 03:17:50.659284: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.2%) combined=0.0027 kWh ema_combined=0.0025 kWh
2026-08-16 03:17:56.889205: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:17:56.889667: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:17:56.889822: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:17:56.890109: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:17:56.890255: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:17:56.890354: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:17:56.890484: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:18:22.819803: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 03:18:59.591969: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0034 kWh val_bias=+0.0012 kWh (+1.9%) combined=0.0027 kWh ema_combined=0.0024 kWh
2026-08-16 03:19:32.890169: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0073 val_mae=0.0029 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 03:19:57.474283: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:19:57.474587: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:19:57.474727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:19:57.475013: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:19:57.475132: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:19:57.475250: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:19:57.475348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:20:00.682172: --------------- PredBat - update at 2026-08-16 03:20:00+01:00 with clock skew 0 minutes, minutes now 200
2026-08-16 03:20:00.683102: Saved current settings to /config/predbat_config.json
2026-08-16 03:20:00.683239: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 03:20:00.683325: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:20:00.683546: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:20:00.725811: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:20:00.725951: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:20:00.726138: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:20:00.726854: Cars 1 charging from battery False 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-16 03:20:00.727062: Predbat mode is set to Control charge & discharge
2026-08-16 03:20:01.107259: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:20:01.107432: Using load_power data to fill gaps in load_today data
2026-08-16 03:20:02.617545: Processing 721 30-minute periods for power integration
2026-08-16 03:20:02.917260: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:20:02.917623: Car charging hold False, threshold 6.0kWh
2026-08-16 03:20:02.917841: Current data so far today: load 2.35kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:20:02.957669: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:20:02.958407: Standing charge is set to 49.98p
2026-08-16 03:20:03.013544: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:20:03.013838: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:20:03.014197: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 200.0 minutes
2026-08-16 03:20:03.014909: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 199.8 minutes
2026-08-16 03:20:03.019359: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:20:03.312003: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:20:03.470459: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:20:03.471043: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:20:03.520589: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:20:03.520788: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:20:03.522441: High export rate found rates in range 99p to -99p
2026-08-16 03:20:03.638230: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:20:03.638372: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:20:03.668326: Battery level now 9.92kWh, -1hr ago 10.3kWh, at midnight 12.21kWh, battery value change in the last hour -0.38p, change today -2.29p, rate_forward 1.0p
2026-08-16 03:20:03.668690: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.57kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:20:03.790303: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:20:03.790611: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:20:03.883841: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:20:03.910482: Today's load divergence 96.58%, in-day adjustment 84.88%, damping 0.95x, yesterday 82.97% today 96.75% blend 86.11%
2026-08-16 03:20:03.910851: Today's predicted so far 2.82kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.82kWh forecast extra.
2026-08-16 03:20:03.912040: Today's actual load so far 2.29kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:20:03.974771: Inverter 0: Type SK Sunsynk
2026-08-16 03:20:03.974891: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:20:03.975099: Reserve min: 7%, battery_min: 7%
2026-08-16 03:20:03.975177: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:20:03.975448: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 485W, current battery voltage 51.2V, grid power -54W, load power 534W, PV Power 0W
2026-08-16 03:20:03.975619: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:20:03.975717: Inverter 0 scheduled charge enable is False
2026-08-16 03:20:03.975756: Inverter 0 charge windows currently []
2026-08-16 03:20:03.975784: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:20:03.975891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:20:03.975929: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:20:03.975980: Inverter 0 scheduled discharge enable is False
2026-08-16 03:20:03.976122: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:20:03.976161: Inverter 0 discharge windows currently []
2026-08-16 03:20:03.976184: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:20:03.976204: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:20:03.976221: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:20:04.114699: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:20:04.114822: Plan was last updated on 2026-08-16 03:10:00+01:00 and is now 10.0 minutes old
2026-08-16 03:20:04.115087: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:20:04.115136: Best export window [  ]
2026-08-16 03:20:04.115922: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:20:04.119366: Load divergence over 8.0 hours mean 402.58W, min 252.0W, max 1545.0W, std dev 159.13W, divergence 19.76%
2026-08-16 03:20:04.168294: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:20:04.168574: LoadML is_calculating True
2026-08-16 03:20:04.168694: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:20:04.222195: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 374.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.33kWh, PV 0.0kWh
2026-08-16 03:20:04.463051: Battery has 16.58 hours left - now at 9.92kWh
2026-08-16 03:20:04.556874: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 401.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.18kWh, PV 0.0kWh
2026-08-16 03:20:04.703338: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 268.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 21.18kWh, PV 0.0kWh
2026-08-16 03:20:04.908027: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 234.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 20.33kWh, PV 0.0kWh
2026-08-16 03:20:04.908592: Saving plan best values to HA entities
2026-08-16 03:20:05.302574: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:20:05.312447: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:20:05.337149: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.04kWh, house 1.48kWh, export 0.0kWh, metric 234.66p, metric10 268.46p
2026-08-16 03:20:05.531940: Marginal costs baseline metric (no standing charge): 184.675
2026-08-16 03:20:06.158425: Marginal energy costs matrix computed: min=7.46 max=25.86
2026-08-16 03:20:06.349452: Rate array import [{'start': 200, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 200, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:20:06.351538: - Your estimated bill for today is £1.25 and tomorrow is £7.31
2026-08-16 03:20:06.351624: - Import rates are expensive (24.1p - 27.0p) for the next 7 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:20:06.351653: - The battery is currently at 62% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 03:20:06.351678: - For the next 48 hours there will be no solar generation.
2026-08-16 03:20:06.351700: - You will run out of battery in 28 hours.
2026-08-16 03:20:06.351733: - Your next charge slot will be in 7 and three quarters hours where import rates will be free (0.0p).
2026-08-16 03:20:06.351757: 
2026-08-16 03:20:06.403070: Plan calculation took 2.29 seconds
2026-08-16 03:20:06.406248: No high rate period found
2026-08-16 03:20:06.472929: Import threshold used for optimisation was 24.06p
2026-08-16 03:20:06.585746: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 94: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:20:06.596194: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 03:20:06.596343: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:20:06.596432: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:20:06.596643: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:20:06.596729: No export window planned
2026-08-16 03:20:06.596850: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:20:06.596888: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:20:06.597092: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:20:06.597255: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:20:06.597308: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:20:06.597363: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:20:06.597437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597479: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597515: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597658: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.597835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.609130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.609202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:20:06.609280: Inverter 0 count register writes 0
2026-08-16 03:20:06.643284: 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-16 03:20:06.643685: Recompute is saving previous plan...
2026-08-16 03:20:06.647704: Best charge window [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0% ]
2026-08-16 03:20:06.647898: Best export window [  ]
2026-08-16 03:20:06.649073: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:20:06.657178: Load divergence over 8.0 hours mean 402.58W, min 252.0W, max 1545.0W, std dev 159.13W, divergence 19.76%
2026-08-16 03:20:06.701900: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:20:06.709095: LoadML is_calculating True
2026-08-16 03:20:06.709311: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:20:06.727370: 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(0.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-16 03:20:06.731640: Optimise levels pass started at 2026-08-16 03:20:06
2026-08-16 03:20:06.733036: Optimise all windows, total charge 94 export 1
2026-08-16 03:20:10.451719: >> Region optimisation pass width 960 gives best_metric 449.8p, best_cost 461.96p, best_cycle 39.77kWh, best_import 23.91kWh
2026-08-16 03:20:11.223073: >> Region optimisation pass width 480 gives best_metric 449.8p, best_cost 461.96p, best_cycle 39.77kWh, best_import 23.91kWh
2026-08-16 03:20:11.625011: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0028 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 03:20:12.420403: >> Region optimisation pass width 240 gives best_metric 449.8p, best_cost 461.96p, best_cycle 39.77kWh, best_import 23.91kWh
2026-08-16 03:20:16.526757: >> Region optimisation pass width 120 gives best_metric 449.8p, best_cost 461.96p, best_cycle 39.77kWh, best_import 23.91kWh
2026-08-16 03:20:16.527215: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 63
2026-08-16 03:20:16.527289: Optimise levels pass ended at 2026-08-16 03:20:16, duration 9.8 seconds tried 313 combinations
2026-08-16 03:20:16.527335: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 449.8p, best_keep 0kWh, best_cycle 39.77kWh, best_carbon 0kg, best_import 23.91kWh
2026-08-16 03:20:16.565220: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:20:50.653964: Tweak plan optimisation started metric 145.29p, cost 160.29p
2026-08-16 03:20:53.317211: Tweak optimisation finished metric 145.29p, cost 160.29p, metric_keep 0kWh, cycle 20.26kWh, carbon 0kg, import 10.49kWh, changed 8 window(s)
2026-08-16 03:20:53.365321: Swap charge optimisation started metric 145.29p, cost 160.29p, min_improvement_swap 0.1p
2026-08-16 03:21:06.624376: Swap charge optimisation finished metric 145.29p, cost 160.29p
2026-08-16 03:21:06.773719: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 139.69p -> 139.69p, plan now metric 145.41p, cost 160.29p, cycle 20.26kWh, import 10.49kWh
2026-08-16 03:21:06.784042: Raw charge windows [ 16-08 03:00:00 - 16-08 03:30:00 @ 26.13p 0%, 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 03:21:06.784638: Unclipped charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:21:06.785008: Unfiltered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:21:06.785337: Filtered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:21:06.832600: Previous plan best metric is 146.21 (cost 161.25) and new plan best metric is 145.29 (cost 160.29)
2026-08-16 03:21:06.832927: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:21:06.833149: Plan valid is now true after recompute was False
2026-08-16 03:21:06.863973: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 371.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.19kWh, PV 0.0kWh
2026-08-16 03:21:07.025936: Battery has 16.58 hours left - now at 9.92kWh
2026-08-16 03:21:07.163711: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 397.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.04kWh, PV 0.0kWh
2026-08-16 03:21:07.333397: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 248.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 21.04kWh, PV 0.0kWh
2026-08-16 03:21:07.549104: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 211.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 20.19kWh, PV 0.0kWh
2026-08-16 03:21:07.549262: Saving plan best values to HA entities
2026-08-16 03:21:07.937920: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:21:07.947365: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:21:07.957244: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.08kWh, house 1.48kWh, export 0.0kWh, metric 211.24p, metric10 248.26p
2026-08-16 03:21:08.134750: Marginal costs baseline metric (no standing charge): 161.2536
2026-08-16 03:21:08.764929: Marginal energy costs matrix computed: min=7.46 max=25.86
2026-08-16 03:21:08.941574: Rate array import [{'start': 200, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 200, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:21:08.942269: - Your estimated bill for today is £1.25 and tomorrow is £7.31
2026-08-16 03:21:08.942317: - Import rates are expensive (24.1p - 27.0p) for the next 7 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:21:08.942340: - The battery is currently at 62% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 03:21:08.942359: - For the next 48 hours there will be no solar generation.
2026-08-16 03:21:08.942376: - You will run out of battery in 28 hours.
2026-08-16 03:21:08.942394: - Your next charge slot will be in 7 and three quarters hours where import rates will be free (0.0p).
2026-08-16 03:21:08.942411: 
2026-08-16 03:21:09.035879: Plan calculation took 62.39 seconds
2026-08-16 03:21:09.036242: Inverter 0: Type SK Sunsynk
2026-08-16 03:21:09.036318: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:21:09.036608: Reserve min: 7%, battery_min: 7%
2026-08-16 03:21:09.036738: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:21:09.038109: Inverter 0 SoC: 9.77kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 470W, current battery voltage 51.2V, grid power -54W, load power 520W, PV Power 0W
2026-08-16 03:21:09.038391: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:21:09.038542: Inverter 0 scheduled charge enable is False
2026-08-16 03:21:09.038604: Inverter 0 charge windows currently []
2026-08-16 03:21:09.039052: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:21:09.039359: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:21:09.039436: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:21:09.039633: Inverter 0 scheduled discharge enable is False
2026-08-16 03:21:09.039949: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:21:09.040041: Inverter 0 discharge windows currently []
2026-08-16 03:21:09.040230: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:21:09.040458: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:21:09.040720: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:21:09.171783: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:21:09.172100: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:21:09.172557: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:21:09.172973: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:21:09.173187: No export window planned
2026-08-16 03:21:09.173444: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:21:09.173517: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:21:09.173924: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:21:09.174289: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:21:09.174434: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:21:09.174596: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:21:09.174804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.174935: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175210: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175338: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.175993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.176122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.176243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.176367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.176490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:21:09.176557: Inverter 0 count register writes 0
2026-08-16 03:21:09.234862: Total inverter register writes now 826
2026-08-16 03:21:09.327279: Info: Completed run status Demand
2026-08-16 03:21:09.357345: Info: record_status Demand
2026-08-16 03:21:09.368720: Saved current settings to /config/predbat_config.json
2026-08-16 03:21:09.369030: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:21:16.981322: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0029 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-16 03:21:41.505854: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:21:41.506443: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:21:41.508753: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:21:41.509132: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:21:41.509272: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:21:41.509383: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:21:41.509486: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:21:51.828999: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0055 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 03:22:27.745373: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 03:23:00.785216: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0061 val_mae=0.0027 kWh val_bias=-0.0013 kWh (-1.9%) combined=0.0024 kWh ema_combined=0.0020 kWh
2026-08-16 03:23:33.207610: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-16 03:23:42.013332: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:23:42.013966: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:23:42.014194: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:23:42.014669: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:23:42.014877: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:23:42.015086: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:23:42.015276: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:24:05.935627: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 03:24:38.991245: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 03:25:00.377404: --------------- PredBat - update at 2026-08-16 03:25:00+01:00 with clock skew 0 minutes, minutes now 205
2026-08-16 03:25:00.378361: Saved current settings to /config/predbat_config.json
2026-08-16 03:25:00.378498: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 03:25:00.378581: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:25:00.378795: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:25:00.434945: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:25:00.435141: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:25:00.435526: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:25:00.436269: Cars 1 charging from battery False 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-16 03:25:00.436427: Predbat mode is set to Control charge & discharge
2026-08-16 03:25:00.802436: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:25:00.802897: Using load_power data to fill gaps in load_today data
2026-08-16 03:25:02.346669: Processing 721 30-minute periods for power integration
2026-08-16 03:25:02.675079: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:25:02.675273: Car charging hold False, threshold 6.0kWh
2026-08-16 03:25:02.675450: Current data so far today: load 2.4kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:25:02.694666: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:25:02.695256: Standing charge is set to 49.98p
2026-08-16 03:25:02.806442: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:25:02.806559: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:25:02.806766: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 205.0 minutes
2026-08-16 03:25:02.807212: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 204.8 minutes
2026-08-16 03:25:02.810217: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:25:03.034544: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:25:03.205157: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:25:03.205935: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:25:03.265351: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:25:03.274619: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:25:03.276783: High export rate found rates in range 99p to -99p
2026-08-16 03:25:03.531380: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:25:03.531751: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:25:03.560072: Battery level now 9.92kWh, -1hr ago 10.3kWh, at midnight 12.21kWh, battery value change in the last hour -0.38p, change today -2.29p, rate_forward 1.0p
2026-08-16 03:25:03.560769: 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-16 03:25:03.677819: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:25:03.678125: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:25:03.832315: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:25:03.878057: Today's load divergence 96.73%, in-day adjustment 84.95%, damping 0.95x, yesterday 82.97% today 96.89% blend 85.76%
2026-08-16 03:25:03.881773: Today's predicted so far 2.85kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 2.85kWh forecast extra.
2026-08-16 03:25:03.881937: Today's actual load so far 2.35kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:25:03.952069: Inverter 0: Type SK Sunsynk
2026-08-16 03:25:03.952308: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:25:03.952602: Reserve min: 7%, battery_min: 7%
2026-08-16 03:25:03.952769: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:25:03.953207: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 517W, current battery voltage 51.2V, grid power -54W, load power 566W, PV Power 0W
2026-08-16 03:25:03.953480: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:25:03.953670: Inverter 0 scheduled charge enable is False
2026-08-16 03:25:03.953791: Inverter 0 charge windows currently []
2026-08-16 03:25:03.953906: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:25:03.954139: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:25:03.954267: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:25:03.954395: Inverter 0 scheduled discharge enable is False
2026-08-16 03:25:03.954637: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:25:03.954762: Inverter 0 discharge windows currently []
2026-08-16 03:25:03.954868: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:25:03.954974: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:25:03.955084: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:25:04.125424: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:25:04.125704: Plan was last updated on 2026-08-16 03:20:00+01:00 and is now 5.0 minutes old
2026-08-16 03:25:04.126085: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:25:04.126201: Best export window [  ]
2026-08-16 03:25:04.127132: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:25:04.130341: Load divergence over 8.0 hours mean 394.02W, min 273.0W, max 939.0W, std dev 115.37W, divergence 14.64%
2026-08-16 03:25:04.175307: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:25:04.175509: LoadML is_calculating True
2026-08-16 03:25:04.175559: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 03:25:04.222322: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 376.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.27kWh, PV 0.0kWh
2026-08-16 03:25:04.507907: Battery has 16.33 hours left - now at 9.76kWh
2026-08-16 03:25:04.598601: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 403.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.12kWh, PV 0.0kWh
2026-08-16 03:25:04.707679: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 261.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 21.12kWh, PV 0.0kWh
2026-08-16 03:25:04.829052: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 225.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.27kWh, PV 0.0kWh
2026-08-16 03:25:04.829636: Saving plan best values to HA entities
2026-08-16 03:25:05.245932: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:25:05.253908: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:25:05.261133: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.68kWh, house 1.48kWh, export 0.0kWh, metric 225.6p, metric10 261.34p
2026-08-16 03:25:05.403372: Marginal costs baseline metric (no standing charge): 175.6173
2026-08-16 03:25:05.795095: Marginal energy costs matrix computed: min=9.64 max=26.13
2026-08-16 03:25:05.949654: Rate array import [{'start': 205, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 205, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:25:05.950541: - Your estimated bill for today is £1.27 and tomorrow is £7.32
2026-08-16 03:25:05.950688: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:25:05.950800: - The battery is currently at 61% and is in eco mode for the next 7 and a half hours.
2026-08-16 03:25:05.951063: - For the next 48 hours there will be no solar generation.
2026-08-16 03:25:05.951203: - You will run out of battery in 28 hours.
2026-08-16 03:25:05.951310: - Your next charge slot will be in 7 and a half hours where import rates will be free (0.0p).
2026-08-16 03:25:05.951404: 
2026-08-16 03:25:05.995382: Plan calculation took 1.87 seconds
2026-08-16 03:25:05.998513: No high rate period found
2026-08-16 03:25:06.118310: Import threshold used for optimisation was 24.94p
2026-08-16 03:25:06.238053: Low import rate windows [0: 08-16 03:00:00 - 08-16 03:30:00 @ 26.13, 1: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 2: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 3: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 4: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 5: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 6: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 7: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 8: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 9: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 10: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 11: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 12: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 13: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 14: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 15: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 16: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 17: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 18: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 19: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 20: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 21: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 22: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 23: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 24: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 25: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 26: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 27: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 28: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 29: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 30: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 31: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 32: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 33: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 34: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 35: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 36: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 37: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 38: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 39: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 40: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 41: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 42: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 43: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 44: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 45: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 46: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 47: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 48: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 49: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 50: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 51: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 52: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 53: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 54: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 55: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 56: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 57: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 58: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 59: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 60: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 61: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 62: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 63: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 64: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 65: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 66: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 67: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 68: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 69: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 70: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 71: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 72: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 73: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 74: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 75: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 76: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 77: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 78: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 79: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 80: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 81: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 82: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 83: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 84: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 85: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 86: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 87: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 88: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 89: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 90: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 91: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 92: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 93: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 94: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:25:06.251266: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:25:06.251464: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:25:06.251562: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:25:06.251810: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:25:06.251902: No export window planned
2026-08-16 03:25:06.252056: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:25:06.252105: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:25:06.252285: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:25:06.259524: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:25:06.259738: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:25:06.259856: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:25:06.260020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260076: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260460: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.260885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.261042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.261099: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:25:06.261171: Inverter 0 count register writes 0
2026-08-16 03:25:06.303411: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:25:06.328353: Total inverter register writes now 826
2026-08-16 03:25:06.424277: Info: Completed run status Demand
2026-08-16 03:25:06.435491: Info: record_status Demand
2026-08-16 03:25:06.462038: Saved current settings to /config/predbat_config.json
2026-08-16 03:25:06.462345: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:25:17.487782: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0048 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 03:25:41.660269: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:25:41.660917: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:25:41.661190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:25:41.661561: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:25:41.661723: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:25:41.661902: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:25:41.662086: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:25:50.050702: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 03:26:23.157137: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 03:26:23.162877: ML Predictor: Restored best weights from epoch with val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-16 03:26:23.163216: ML Predictor: Training complete, final val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-16 03:26:30.356984: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 03:26:30.362440: ML Predictor: Curriculum training complete, final val_mae=0.0025 kWh
2026-08-16 03:26:30.376839: ML Component: Training successful, val_mae=0.0025 kWh
2026-08-16 03:26:30.520712: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 03:26:30.525670: ML Component: Generating predictions load data age 57.0 days, 16575 data points
2026-08-16 03:26:30.679211: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0546 max_dow {0: 0.10069374996256084, 1: 0.10970312486607581, 2: 0.11695312483347953, 3: 0.11357499942630528, 4: 0.16304062489941715, 5: 0.09685277773762743, 6: 0.10905937461592256}
2026-08-16 03:26:38.095769: ML Component: Generated 576 predictions (total 28.81 kWh over 48h)
2026-08-16 03:26:38.149285: ML Component: Prediction cycle completed
2026-08-16 03:26:38.345916: ML Component: Saved 16575 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 03:27:42.095529: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:27:42.095920: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:27:42.095984: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:27:42.096228: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:27:42.096286: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:27:42.096328: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:27:42.096369: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:29:42.325347: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:29:42.325633: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:29:42.325689: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:29:42.325880: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:29:42.325927: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:29:42.325949: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:29:42.325982: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:30:00.427916: --------------- PredBat - update at 2026-08-16 03:30:00+01:00 with clock skew 0 minutes, minutes now 210
2026-08-16 03:30:00.428729: Saved current settings to /config/predbat_config.json
2026-08-16 03:30:00.428852: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 03:30:00.429046: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:30:00.429142: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:30:00.461149: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:30:00.461280: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:30:00.461445: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:30:00.461954: Cars 1 charging from battery False 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-16 03:30:00.462731: Predbat mode is set to Control charge & discharge
2026-08-16 03:30:00.678371: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:30:00.678529: Using load_power data to fill gaps in load_today data
2026-08-16 03:30:01.501104: Processing 721 30-minute periods for power integration
2026-08-16 03:30:01.705369: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:30:01.705530: Car charging hold False, threshold 6.0kWh
2026-08-16 03:30:01.705581: Current data so far today: load 2.45kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:30:01.723570: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:30:01.723948: Standing charge is set to 49.98p
2026-08-16 03:30:01.754995: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:30:01.755245: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:30:01.755516: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 210.0 minutes
2026-08-16 03:30:01.756212: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 209.8 minutes
2026-08-16 03:30:01.758968: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:30:01.843957: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:30:01.906776: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:30:01.907208: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:30:01.957307: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:30:01.957475: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:30:01.958931: High export rate found rates in range 99p to -99p
2026-08-16 03:30:02.060999: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:30:02.061172: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:30:02.077333: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.45p, rate_forward 1.0p
2026-08-16 03:30:02.077700: 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-16 03:30:02.144830: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:30:02.145021: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:30:02.216671: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:30:02.239688: Today's load divergence 96.41%, in-day adjustment 84.96%, damping 0.95x, yesterday 82.97% today 96.59% blend 85.42%
2026-08-16 03:30:02.239783: Today's predicted so far 3.0kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.0kWh forecast extra.
2026-08-16 03:30:02.239809: Today's actual load so far 2.45kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:30:02.285544: Inverter 0: Type SK Sunsynk
2026-08-16 03:30:02.285665: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:30:02.285921: Reserve min: 7%, battery_min: 7%
2026-08-16 03:30:02.286053: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:30:02.286427: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 480W, current battery voltage 51.2V, grid power -55W, load power 529W, PV Power 0W
2026-08-16 03:30:02.286650: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:30:02.286782: Inverter 0 scheduled charge enable is False
2026-08-16 03:30:02.286829: Inverter 0 charge windows currently []
2026-08-16 03:30:02.286884: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:30:02.287052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:30:02.287099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:30:02.287169: Inverter 0 scheduled discharge enable is False
2026-08-16 03:30:02.287348: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:30:02.287393: Inverter 0 discharge windows currently []
2026-08-16 03:30:02.287420: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:30:02.287439: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:30:02.287457: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:30:02.354269: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:30:02.354380: Plan was last updated on 2026-08-16 03:20:00+01:00 and is now 10.0 minutes old
2026-08-16 03:30:02.354646: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:30:02.354689: Best export window [  ]
2026-08-16 03:30:02.355543: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:30:02.358760: Load divergence over 8.0 hours mean 389.3W, min 223.8W, max 1097.4W, std dev 115.96W, divergence 14.89%
2026-08-16 03:30:02.377285: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:30:02.377420: LoadML is_calculating False
2026-08-16 03:30:02.377563: Creating pool of 12 processes to match your CPU count
2026-08-16 03:30:02.505790: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 376.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:30:02.623558: Battery has 16.33 hours left - now at 9.76kWh
2026-08-16 03:30:02.668437: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 403.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.19kWh, PV 0.0kWh
2026-08-16 03:30:02.747460: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 269.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.19kWh, PV 0.0kWh
2026-08-16 03:30:02.838373: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 236.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.34kWh, PV 0.0kWh
2026-08-16 03:30:02.838481: Saving plan best values to HA entities
2026-08-16 03:30:03.026842: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:30:03.032547: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:30:03.038548: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.09kWh, house 1.5kWh, export 0.0kWh, metric 236.13p, metric10 269.99p
2026-08-16 03:30:03.109516: Marginal costs baseline metric (no standing charge): 186.1515
2026-08-16 03:30:03.428793: Marginal energy costs matrix computed: min=11.54 max=26.79
2026-08-16 03:30:03.525985: Rate array import [{'start': 210, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 210, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:30:03.526866: - Your estimated bill for today is £1.26 and tomorrow is £7.30
2026-08-16 03:30:03.526926: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:30:03.526950: - The battery is currently at 61% and is in eco mode for the next 7 and a half hours.
2026-08-16 03:30:03.527006: - For the next 48 hours there will be no solar generation.
2026-08-16 03:30:03.527068: - You will run out of battery in 28 hours.
2026-08-16 03:30:03.527106: - Your next charge slot will be in 7 and a half hours where import rates will be free (0.0p).
2026-08-16 03:30:03.527144: 
2026-08-16 03:30:03.587090: Plan calculation took 1.23 seconds
2026-08-16 03:30:03.590339: No high rate period found
2026-08-16 03:30:03.645350: Import threshold used for optimisation was 24.94p
2026-08-16 03:30:03.704275: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13]
2026-08-16 03:30:03.711858: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:30:03.711982: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:30:03.712101: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:30:03.712319: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:30:03.712400: No export window planned
2026-08-16 03:30:03.712495: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:30:03.712524: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:30:03.712633: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:30:03.712813: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:30:03.712868: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:30:03.712917: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:30:03.713029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713106: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:03.713443: Inverter 0 count register writes 0
2026-08-16 03:30:03.729344: 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-16 03:30:03.729531: Recompute is saving previous plan...
2026-08-16 03:30:03.732609: Best charge window [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0% ]
2026-08-16 03:30:03.732686: Best export window [  ]
2026-08-16 03:30:03.733587: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:30:03.736845: Load divergence over 8.0 hours mean 389.3W, min 223.8W, max 1097.4W, std dev 115.96W, divergence 14.89%
2026-08-16 03:30:03.755075: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:30:03.755212: LoadML is_calculating False
2026-08-16 03:30:03.755284: Creating pool of 12 processes to match your CPU count
2026-08-16 03:30:03.850177: 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(0.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-16 03:30:03.851951: Optimise levels pass started at 2026-08-16 03:30:03
2026-08-16 03:30:03.852003: Optimise all windows, total charge 94 export 1
2026-08-16 03:30:04.918207: >> Region optimisation pass width 960 gives best_metric 455.23p, best_cost 467.35p, best_cycle 39.7kWh, best_import 24.12kWh
2026-08-16 03:30:05.574198: >> Region optimisation pass width 480 gives best_metric 455.23p, best_cost 467.35p, best_cycle 39.7kWh, best_import 24.12kWh
2026-08-16 03:30:06.154703: >> Region optimisation pass width 240 gives best_metric 455.23p, best_cost 467.35p, best_cycle 39.7kWh, best_import 24.12kWh
2026-08-16 03:30:07.431220: >> Region optimisation pass width 120 gives best_metric 455.23p, best_cost 467.35p, best_cycle 39.7kWh, best_import 24.12kWh
2026-08-16 03:30:07.431520: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 62
2026-08-16 03:30:07.431595: Optimise levels pass ended at 2026-08-16 03:30:07, duration 3.6 seconds tried 332 combinations
2026-08-16 03:30:07.431657: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 455.23p, best_keep 0kWh, best_cycle 39.7kWh, best_carbon 0kg, best_import 24.12kWh
2026-08-16 03:30:07.451797: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:30:12.286468: Tweak plan optimisation started metric 147.46p, cost 162.46p
2026-08-16 03:30:12.573683: Tweak optimisation finished metric 147.46p, cost 162.46p, metric_keep 0kWh, cycle 21.07kWh, carbon 0kg, import 10.61kWh, changed 8 window(s)
2026-08-16 03:30:12.593906: Swap charge optimisation started metric 147.46p, cost 162.46p, min_improvement_swap 0.1p
2026-08-16 03:30:18.841888: Swap charge optimisation finished metric 147.46p, cost 162.46p
2026-08-16 03:30:18.995679: Pruned 3 dead plan slot(s) in 11 trial(s), nominal metric 141.86p -> 141.86p, plan now metric 147.61p, cost 162.46p, cycle 21.07kWh, import 10.61kWh
2026-08-16 03:30:19.009425: Raw charge windows [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 03:30:19.010074: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:30:19.010365: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:30:19.010592: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 03:30:00 @ 26.12p 100% ] reserve 1.12
2026-08-16 03:30:19.058170: Previous plan best metric is 147.64 (cost 162.68) and new plan best metric is 147.46 (cost 162.46)
2026-08-16 03:30:19.058534: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:30:19.058782: Plan valid is now true after recompute was False
2026-08-16 03:30:19.094305: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 373.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.2kWh, PV 0.0kWh
2026-08-16 03:30:19.238409: Battery has 16.33 hours left - now at 9.76kWh
2026-08-16 03:30:19.299941: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 399.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.05kWh, PV 0.0kWh
2026-08-16 03:30:19.387366: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 249.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.05kWh, PV 0.0kWh
2026-08-16 03:30:19.473140: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 212.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.2kWh, PV 0.0kWh
2026-08-16 03:30:19.473244: Saving plan best values to HA entities
2026-08-16 03:30:19.707311: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:30:19.713907: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:30:19.721726: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.12kWh, house 1.5kWh, export 0.0kWh, metric 212.66p, metric10 249.73p
2026-08-16 03:30:19.808237: Marginal costs baseline metric (no standing charge): 162.6791
2026-08-16 03:30:20.111227: Marginal energy costs matrix computed: min=11.54 max=26.79
2026-08-16 03:30:20.203102: Rate array import [{'start': 210, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 210, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:30:20.203992: - Your estimated bill for today is £1.26 and tomorrow is £7.30
2026-08-16 03:30:20.204078: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:30:20.204141: - The battery is currently at 61% and is in eco mode for the next 7 and a half hours.
2026-08-16 03:30:20.204187: - For the next 48 hours there will be no solar generation.
2026-08-16 03:30:20.204219: - You will run out of battery in 28 hours.
2026-08-16 03:30:20.204258: - Your next charge slot will be in 7 and a half hours where import rates will be free (0.0p).
2026-08-16 03:30:20.204292: 
2026-08-16 03:30:20.268030: Plan calculation took 16.54 seconds
2026-08-16 03:30:20.268522: Inverter 0: Type SK Sunsynk
2026-08-16 03:30:20.268587: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:30:20.268890: Reserve min: 7%, battery_min: 7%
2026-08-16 03:30:20.269027: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:30:20.269445: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 480W, current battery voltage 51.2V, grid power -55W, load power 529W, PV Power 0W
2026-08-16 03:30:20.269690: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:30:20.269799: Inverter 0 scheduled charge enable is False
2026-08-16 03:30:20.269837: Inverter 0 charge windows currently []
2026-08-16 03:30:20.269867: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:30:20.270030: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:30:20.270091: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:30:20.270139: Inverter 0 scheduled discharge enable is False
2026-08-16 03:30:20.270332: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:30:20.270377: Inverter 0 discharge windows currently []
2026-08-16 03:30:20.270411: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:30:20.270451: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:30:20.270481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:30:20.334938: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:30:20.335125: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:30:20.335203: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:30:20.335385: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:30:20.335468: No export window planned
2026-08-16 03:30:20.335577: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:30:20.335613: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:30:20.335748: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:30:20.335916: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:30:20.335970: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:30:20.336022: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:30:20.336139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336181: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336238: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336345: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:30:20.336598: Inverter 0 count register writes 0
2026-08-16 03:30:20.362089: Total inverter register writes now 826
2026-08-16 03:30:20.402523: Info: Completed run status Demand
2026-08-16 03:30:20.409236: Info: record_status Demand
2026-08-16 03:30:20.416585: Saved current settings to /config/predbat_config.json
2026-08-16 03:30:20.416920: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:30:56.539158: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:30:56.539410: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:30:56.539460: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:30:56.539722: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:30:56.539773: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:30:56.539810: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:30:56.539834: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:32:56.760814: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:32:56.761142: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:32:56.761192: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:32:56.761347: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:32:56.761410: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:32:56.761431: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:32:56.761449: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:34:56.976249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:34:56.976567: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:34:56.976609: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:34:56.976801: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:34:56.976840: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:34:56.976886: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:34:56.976905: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:35:00.061173: --------------- PredBat - update at 2026-08-16 03:35:00+01:00 with clock skew 0 minutes, minutes now 215
2026-08-16 03:35:00.062293: Saved current settings to /config/predbat_config.json
2026-08-16 03:35:00.062547: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 03:35:00.062675: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:35:00.062812: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:35:00.093878: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:35:00.094009: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:35:00.094193: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:35:00.094711: Cars 1 charging from battery False 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-16 03:35:00.094834: Predbat mode is set to Control charge & discharge
2026-08-16 03:35:00.312121: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:35:00.312282: Using load_power data to fill gaps in load_today data
2026-08-16 03:35:01.038172: Processing 721 30-minute periods for power integration
2026-08-16 03:35:01.187315: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:35:01.187444: Car charging hold False, threshold 6.0kWh
2026-08-16 03:35:01.187484: Current data so far today: load 2.5kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:35:01.199519: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:35:01.199861: Standing charge is set to 49.98p
2026-08-16 03:35:01.229039: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:35:01.229194: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:35:01.229475: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 214.9 minutes
2026-08-16 03:35:01.230085: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 214.8 minutes
2026-08-16 03:35:01.234149: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:35:01.326341: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:35:01.383039: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:35:01.383571: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:35:01.419314: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:35:01.419435: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:35:01.420623: High export rate found rates in range 99p to -99p
2026-08-16 03:35:01.486169: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:35:01.486298: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:35:01.497216: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.45p, rate_forward 1.0p
2026-08-16 03:35:01.497507: 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-16 03:35:01.541851: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 52.71p, import 2.72p, export 0.0p, carbon 0.0kg
2026-08-16 03:35:01.542004: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:35:01.616841: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:35:01.639638: Today's load divergence 96.53%, in-day adjustment 85.02%, damping 0.95x, yesterday 82.97% today 96.7% blend 85.07%
2026-08-16 03:35:01.639738: Today's predicted so far 3.09kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.09kWh forecast extra.
2026-08-16 03:35:01.639763: Today's actual load so far 2.56kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:35:01.681397: Inverter 0: Type SK Sunsynk
2026-08-16 03:35:01.681489: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:35:01.681669: Reserve min: 7%, battery_min: 7%
2026-08-16 03:35:01.681739: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:35:01.681997: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 526W, current battery voltage 51.2V, grid power -55W, load power 573W, PV Power 0W
2026-08-16 03:35:01.682178: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:35:01.682269: Inverter 0 scheduled charge enable is False
2026-08-16 03:35:01.682302: Inverter 0 charge windows currently []
2026-08-16 03:35:01.682328: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:35:01.682440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:35:01.682474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:35:01.682510: Inverter 0 scheduled discharge enable is False
2026-08-16 03:35:01.682629: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:35:01.682665: Inverter 0 discharge windows currently []
2026-08-16 03:35:01.682688: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:35:01.682711: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:35:01.682728: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:35:01.736752: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:35:01.736863: Plan was last updated on 2026-08-16 03:30:00+01:00 and is now 5.0 minutes old
2026-08-16 03:35:01.737207: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:35:01.737259: Best export window [  ]
2026-08-16 03:35:01.738194: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:35:01.741503: Load divergence over 8.0 hours mean 386.91W, min 213.6W, max 1026.0W, std dev 112.46W, divergence 14.53%
2026-08-16 03:35:01.760905: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:35:01.761089: LoadML is_calculating False
2026-08-16 03:35:01.761159: Creating pool of 12 processes to match your CPU count
2026-08-16 03:35:01.867469: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 374.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.31kWh, PV 0.0kWh
2026-08-16 03:35:01.994669: Battery has 16.33 hours left - now at 9.76kWh
2026-08-16 03:35:02.048474: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 400.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.16kWh, PV 0.0kWh
2026-08-16 03:35:02.144913: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 259.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.16kWh, PV 0.0kWh
2026-08-16 03:35:02.228185: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 223.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.31kWh, PV 0.0kWh
2026-08-16 03:35:02.228282: Saving plan best values to HA entities
2026-08-16 03:35:02.419546: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:35:02.427026: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 03:35:02.434540: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.58kWh, house 1.51kWh, export 0.0kWh, metric 223.96p, metric10 259.35p
2026-08-16 03:35:02.517002: Marginal costs baseline metric (no standing charge): 173.9796
2026-08-16 03:35:02.752580: Marginal energy costs matrix computed: min=13.4 max=27.48
2026-08-16 03:35:02.819544: Rate array import [{'start': 215, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 215, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:35:02.820108: - Your estimated bill for today is £1.25 and tomorrow is £7.29
2026-08-16 03:35:02.820151: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:35:02.820191: - The battery is currently at 61% and is in eco mode for the next 7 and a half hours.
2026-08-16 03:35:02.820206: - For the next 48 hours there will be no solar generation.
2026-08-16 03:35:02.820220: - You will run out of battery in 28 hours.
2026-08-16 03:35:02.820234: - Your next charge slot will be in 7 and a half hours where import rates will be free (0.0p).
2026-08-16 03:35:02.820248: 
2026-08-16 03:35:02.873346: Plan calculation took 1.14 seconds
2026-08-16 03:35:02.876822: No high rate period found
2026-08-16 03:35:02.927607: Import threshold used for optimisation was 24.94p
2026-08-16 03:35:02.980643: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 94: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 03:35:02.988630: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:35:02.988814: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:35:02.989029: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:35:02.989409: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:35:02.989568: No export window planned
2026-08-16 03:35:02.989775: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:35:02.989830: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:35:02.990039: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:35:02.990353: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:35:02.990445: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:35:02.990555: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:35:02.990722: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.990939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991213: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:35:02.991778: Inverter 0 count register writes 0
2026-08-16 03:35:03.006762: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:35:03.011331: Total inverter register writes now 826
2026-08-16 03:35:03.041870: Info: Completed run status Demand
2026-08-16 03:35:03.048034: Info: record_status Demand
2026-08-16 03:35:03.054437: Saved current settings to /config/predbat_config.json
2026-08-16 03:35:03.054873: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:35:42.170041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:35:42.170504: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:35:42.170617: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:35:42.170889: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:35:42.170987: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:35:42.171014: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:35:42.171047: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:37:42.400780: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:37:42.401059: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:37:42.401121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:37:42.401262: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:37:42.401357: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:37:42.401399: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:37:42.401435: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:39:56.646875: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:39:56.647161: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:39:56.647206: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:39:56.647376: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:39:56.647415: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:39:56.647436: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:39:56.647454: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:40:00.722360: --------------- PredBat - update at 2026-08-16 03:40:00+01:00 with clock skew 0 minutes, minutes now 220
2026-08-16 03:40:00.723063: Saved current settings to /config/predbat_config.json
2026-08-16 03:40:00.723216: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 03:40:00.723324: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:40:00.723452: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:40:00.745180: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:40:00.745314: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:40:00.745478: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:40:00.745974: Cars 1 charging from battery False 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-16 03:40:00.746191: Predbat mode is set to Control charge & discharge
2026-08-16 03:40:00.925567: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:40:00.925727: Using load_power data to fill gaps in load_today data
2026-08-16 03:40:01.667925: Processing 721 30-minute periods for power integration
2026-08-16 03:40:01.862225: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:40:01.862365: Car charging hold False, threshold 6.0kWh
2026-08-16 03:40:01.862413: Current data so far today: load 2.55kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:40:01.877767: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:40:01.878184: Standing charge is set to 49.98p
2026-08-16 03:40:01.908340: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:40:01.908482: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:40:01.908774: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 220.0 minutes
2026-08-16 03:40:01.909589: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 219.8 minutes
2026-08-16 03:40:01.913464: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:40:02.001675: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:40:02.066274: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:40:02.066686: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:40:02.109379: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:40:02.109964: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:40:02.111200: High export rate found rates in range 99p to -99p
2026-08-16 03:40:02.192022: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:40:02.192186: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:40:02.205900: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.45p, rate_forward 1.0p
2026-08-16 03:40:02.206459: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.3p, import 1.3p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:40:02.264233: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 03:40:02.264359: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:40:02.335750: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:40:02.355611: Today's load divergence 96.53%, in-day adjustment 85.07%, damping 0.95x, yesterday 82.97% today 96.71% blend 84.72%
2026-08-16 03:40:02.355696: Today's predicted so far 3.1kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.1kWh forecast extra.
2026-08-16 03:40:02.355722: Today's actual load so far 2.57kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:40:02.395485: Inverter 0: Type SK Sunsynk
2026-08-16 03:40:02.395585: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:40:02.395872: Reserve min: 7%, battery_min: 7%
2026-08-16 03:40:02.395980: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:40:02.396348: Inverter 0 SoC: 9.73kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 480W, current battery voltage 51.2V, grid power -55W, load power 528W, PV Power 0W
2026-08-16 03:40:02.396523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:40:02.396634: Inverter 0 scheduled charge enable is False
2026-08-16 03:40:02.396681: Inverter 0 charge windows currently []
2026-08-16 03:40:02.396724: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:40:02.396876: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:40:02.396973: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:40:02.397042: Inverter 0 scheduled discharge enable is False
2026-08-16 03:40:02.397240: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:40:02.397290: Inverter 0 discharge windows currently []
2026-08-16 03:40:02.397324: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:40:02.397356: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:40:02.397374: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:40:02.462409: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:40:02.462510: Plan was last updated on 2026-08-16 03:30:00+01:00 and is now 10.0 minutes old
2026-08-16 03:40:02.462726: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:40:02.462764: Best export window [  ]
2026-08-16 03:40:02.463407: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:40:02.465991: Load divergence over 8.0 hours mean 382.89W, min 222.6W, max 708.0W, std dev 83.05W, divergence 10.85%
2026-08-16 03:40:02.481668: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:40:02.481784: LoadML is_calculating False
2026-08-16 03:40:02.481843: Creating pool of 12 processes to match your CPU count
2026-08-16 03:40:02.600708: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 377.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.36kWh, PV 0.0kWh
2026-08-16 03:40:02.718189: Battery has 16.25 hours left - now at 9.73kWh
2026-08-16 03:40:02.754898: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 403.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.21kWh, PV 0.0kWh
2026-08-16 03:40:02.831058: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 271.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.21kWh, PV 0.0kWh
2026-08-16 03:40:02.905025: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 237.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.36kWh, PV 0.0kWh
2026-08-16 03:40:02.905176: Saving plan best values to HA entities
2026-08-16 03:40:03.056504: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:40:03.062142: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:40:03.067532: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.04kWh, house 1.51kWh, export 0.0kWh, metric 237.73p, metric10 271.33p
2026-08-16 03:40:03.143191: Marginal costs baseline metric (no standing charge): 187.7444
2026-08-16 03:40:03.398987: Marginal energy costs matrix computed: min=15.17 max=28.17
2026-08-16 03:40:03.468649: Rate array import [{'start': 220, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 220, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:40:03.469380: - Your estimated bill for today is £1.27 and tomorrow is £7.30
2026-08-16 03:40:03.469436: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:40:03.469478: - The battery is currently at 61% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 03:40:03.469498: - For the next 48 hours there will be no solar generation.
2026-08-16 03:40:03.469515: - You will run out of battery in 28 hours.
2026-08-16 03:40:03.469538: - Your next charge slot will be in 7 and a quarter hours where import rates will be free (0.0p).
2026-08-16 03:40:03.469564: 
2026-08-16 03:40:03.531945: Plan calculation took 1.07 seconds
2026-08-16 03:40:03.535275: No high rate period found
2026-08-16 03:40:03.594484: Import threshold used for optimisation was 24.94p
2026-08-16 03:40:03.665764: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 94: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 03:40:03.674207: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 61%, target 100%
2026-08-16 03:40:03.674392: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:40:03.674567: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:40:03.674904: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:40:03.675028: No export window planned
2026-08-16 03:40:03.675225: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:40:03.675281: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:40:03.675497: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:40:03.675753: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:40:03.675839: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:40:03.675936: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:40:03.676110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676367: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:03.676877: Inverter 0 count register writes 0
2026-08-16 03:40:03.694520: 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-16 03:40:03.694708: Recompute is saving previous plan...
2026-08-16 03:40:03.697940: Best charge window [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0% ]
2026-08-16 03:40:03.698027: Best export window [  ]
2026-08-16 03:40:03.698844: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:40:03.701738: Load divergence over 8.0 hours mean 382.89W, min 222.6W, max 708.0W, std dev 83.05W, divergence 10.85%
2026-08-16 03:40:03.715898: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:40:03.715994: LoadML is_calculating False
2026-08-16 03:40:03.716053: Creating pool of 12 processes to match your CPU count
2026-08-16 03:40:03.798879: 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(0.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-16 03:40:03.800329: Optimise levels pass started at 2026-08-16 03:40:03
2026-08-16 03:40:03.800411: Optimise all windows, total charge 94 export 1
2026-08-16 03:40:04.907637: >> Region optimisation pass width 960 gives best_metric 458.83p, best_cost 471.04p, best_cycle 40.83kWh, best_import 24.25kWh
2026-08-16 03:40:05.575204: >> Region optimisation pass width 480 gives best_metric 458.83p, best_cost 471.04p, best_cycle 40.83kWh, best_import 24.25kWh
2026-08-16 03:40:06.167159: >> Region optimisation pass width 240 gives best_metric 458.83p, best_cost 471.04p, best_cycle 40.83kWh, best_import 24.25kWh
2026-08-16 03:40:07.335273: >> Region optimisation pass width 120 gives best_metric 458.83p, best_cost 471.04p, best_cycle 40.83kWh, best_import 24.25kWh
2026-08-16 03:40:07.335665: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 62
2026-08-16 03:40:07.335742: Optimise levels pass ended at 2026-08-16 03:40:07, duration 3.5 seconds tried 360 combinations
2026-08-16 03:40:07.335808: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 458.83p, best_keep 0kWh, best_cycle 40.83kWh, best_carbon 0kg, best_import 24.25kWh
2026-08-16 03:40:07.361856: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:40:12.463414: Tweak plan optimisation started metric 148.41p, cost 163.44p
2026-08-16 03:40:12.828683: Tweak optimisation finished metric 148.41p, cost 163.44p, metric_keep 0kWh, cycle 20.11kWh, carbon 0kg, import 10.51kWh, changed 8 window(s)
2026-08-16 03:40:12.863358: Swap charge optimisation started metric 148.41p, cost 163.44p, min_improvement_swap 0.1p
2026-08-16 03:40:19.507259: Swap charge optimisation finished metric 148.41p, cost 163.44p
2026-08-16 03:40:19.639164: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 142.84p -> 142.84p, plan now metric 148.53p, cost 163.44p, cycle 20.11kWh, import 10.51kWh
2026-08-16 03:40:19.651453: Raw charge windows [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 03:40:19.652071: Unclipped charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:40:19.652376: Unfiltered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:40:19.652676: Filtered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:40:19.699296: Previous plan best metric is 149.31 (cost 164.39) and new plan best metric is 148.41 (cost 163.44)
2026-08-16 03:40:19.699663: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:40:19.699938: Plan valid is now true after recompute was False
2026-08-16 03:40:19.739691: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 374.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.24kWh, PV 0.0kWh
2026-08-16 03:40:19.872389: Battery has 16.25 hours left - now at 9.73kWh
2026-08-16 03:40:19.917702: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 400.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.08kWh, PV 0.0kWh
2026-08-16 03:40:19.998176: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 251.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.08kWh, PV 0.0kWh
2026-08-16 03:40:20.087256: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 214.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.24kWh, PV 0.0kWh
2026-08-16 03:40:20.087843: Saving plan best values to HA entities
2026-08-16 03:40:20.282551: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:40:20.288329: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:40:20.293982: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.07kWh, house 1.51kWh, export 0.0kWh, metric 214.37p, metric10 251.19p
2026-08-16 03:40:20.373715: Marginal costs baseline metric (no standing charge): 164.3884
2026-08-16 03:40:20.659653: Marginal energy costs matrix computed: min=15.17 max=28.17
2026-08-16 03:40:20.725992: Rate array import [{'start': 220, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 220, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:40:20.726591: - Your estimated bill for today is £1.27 and tomorrow is £7.30
2026-08-16 03:40:20.726647: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:40:20.726667: - The battery is currently at 61% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 03:40:20.726682: - For the next 48 hours there will be no solar generation.
2026-08-16 03:40:20.726697: - You will run out of battery in 28 hours.
2026-08-16 03:40:20.726710: - Your next charge slot will be in 7 and a quarter hours where import rates will be free (0.0p).
2026-08-16 03:40:20.726726: 
2026-08-16 03:40:20.783484: Plan calculation took 17.09 seconds
2026-08-16 03:40:20.783835: Inverter 0: Type SK Sunsynk
2026-08-16 03:40:20.783884: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:40:20.784135: Reserve min: 7%, battery_min: 7%
2026-08-16 03:40:20.784222: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:40:20.784575: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 481W, current battery voltage 51.2V, grid power -55W, load power 530W, PV Power 0W
2026-08-16 03:40:20.784816: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:40:20.784927: Inverter 0 scheduled charge enable is False
2026-08-16 03:40:20.785021: Inverter 0 charge windows currently []
2026-08-16 03:40:20.785064: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:40:20.785219: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:40:20.785260: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:40:20.785299: Inverter 0 scheduled discharge enable is False
2026-08-16 03:40:20.785433: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:40:20.785471: Inverter 0 discharge windows currently []
2026-08-16 03:40:20.785494: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:40:20.785513: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:40:20.785532: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:40:20.851932: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 03:40:20.852187: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:40:20.852316: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:40:20.852563: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:40:20.852655: No export window planned
2026-08-16 03:40:20.852774: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:40:20.852812: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:40:20.853007: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:40:20.853214: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:40:20.853273: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:40:20.853325: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:40:20.853420: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853574: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853628: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:40:20.853875: Inverter 0 count register writes 0
2026-08-16 03:40:20.880156: Total inverter register writes now 826
2026-08-16 03:40:20.923168: Info: Completed run status Demand
2026-08-16 03:40:20.931796: Info: record_status Demand
2026-08-16 03:40:20.940872: Saved current settings to /config/predbat_config.json
2026-08-16 03:40:20.941370: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:40:57.048585: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:40:57.048828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:40:57.048870: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:40:57.049096: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:40:57.049158: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:40:57.049184: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:40:57.049203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:42:57.303686: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:42:57.303937: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:42:57.303973: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:42:57.304125: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:42:57.304167: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:42:57.304189: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:42:57.304207: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:45:00.541183: --------------- PredBat - update at 2026-08-16 03:45:00+01:00 with clock skew 0 minutes, minutes now 225
2026-08-16 03:45:00.541941: Saved current settings to /config/predbat_config.json
2026-08-16 03:45:00.542072: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 03:45:00.542161: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:45:00.542292: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:45:00.561914: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:45:00.562048: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:45:00.562310: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:45:00.562896: Cars 1 charging from battery False 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-16 03:45:00.563060: Predbat mode is set to Control charge & discharge
2026-08-16 03:45:00.790163: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:45:00.790395: Using load_power data to fill gaps in load_today data
2026-08-16 03:45:01.666929: Processing 721 30-minute periods for power integration
2026-08-16 03:45:01.873068: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:45:01.873252: Car charging hold False, threshold 6.0kWh
2026-08-16 03:45:01.873314: Current data so far today: load 2.6kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:45:01.888858: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:45:01.889378: Standing charge is set to 49.98p
2026-08-16 03:45:01.917282: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:45:01.917380: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:45:01.917556: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 225.0 minutes
2026-08-16 03:45:01.917864: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 224.8 minutes
2026-08-16 03:45:01.920406: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:45:01.994404: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:45:02.043252: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:45:02.043548: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:45:02.077796: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:45:02.078309: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:45:02.079330: High export rate found rates in range 99p to -99p
2026-08-16 03:45:02.143137: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:45:02.143291: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:45:02.155977: Battery level now 9.73kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -0.35p, change today -2.48p, rate_forward 1.0p
2026-08-16 03:45:02.156311: Last hour: net energy 0.05kWh, import 0.05kWh, 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-16 03:45:02.209013: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 03:45:02.209160: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:45:02.272257: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:45:02.292914: Today's load divergence 96.23%, in-day adjustment 85.07%, damping 0.95x, yesterday 82.97% today 96.42% blend 84.38%
2026-08-16 03:45:02.293034: Today's predicted so far 3.11kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.11kWh forecast extra.
2026-08-16 03:45:02.293064: Today's actual load so far 2.54kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:45:02.348304: Inverter 0: Type SK Sunsynk
2026-08-16 03:45:02.348386: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:45:02.348545: Reserve min: 7%, battery_min: 7%
2026-08-16 03:45:02.348603: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:45:02.348826: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 536W, current battery voltage 51.2V, grid power -54W, load power 586W, PV Power 0W
2026-08-16 03:45:02.349000: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:45:02.349087: Inverter 0 scheduled charge enable is False
2026-08-16 03:45:02.349126: Inverter 0 charge windows currently []
2026-08-16 03:45:02.349149: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:45:02.349243: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:45:02.349272: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:45:02.349303: Inverter 0 scheduled discharge enable is False
2026-08-16 03:45:02.349408: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:45:02.349438: Inverter 0 discharge windows currently []
2026-08-16 03:45:02.349457: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:45:02.349472: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:45:02.349486: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:45:02.403441: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:45:02.403542: Plan was last updated on 2026-08-16 03:40:00+01:00 and is now 5.0 minutes old
2026-08-16 03:45:02.403740: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:45:02.403774: Best export window [  ]
2026-08-16 03:45:02.404465: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:45:02.407137: Load divergence over 8.0 hours mean 381.36W, min 244.8W, max 864.0W, std dev 92.84W, divergence 12.17%
2026-08-16 03:45:02.422790: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:45:02.422903: LoadML is_calculating False
2026-08-16 03:45:02.422960: Creating pool of 12 processes to match your CPU count
2026-08-16 03:45:02.529491: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 378.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.3kWh, PV 0.0kWh
2026-08-16 03:45:02.674749: Battery has 16.08 hours left - now at 9.6kWh
2026-08-16 03:45:02.725015: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 404.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.14kWh, PV 0.0kWh
2026-08-16 03:45:02.809000: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 262.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.14kWh, PV 0.0kWh
2026-08-16 03:45:02.906584: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 227.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.3kWh, PV 0.0kWh
2026-08-16 03:45:02.906724: Saving plan best values to HA entities
2026-08-16 03:45:03.136668: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 03:45:03.145064: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:45:03.152729: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.63kWh, house 1.5kWh, export 0.0kWh, metric 227.48p, metric10 262.79p
2026-08-16 03:45:03.236291: Marginal costs baseline metric (no standing charge): 177.5002
2026-08-16 03:45:03.532968: Marginal energy costs matrix computed: min=17.13 max=28.86
2026-08-16 03:45:03.621610: Rate array import [{'start': 225, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 225, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:45:03.622340: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 03:45:03.622388: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:45:03.622411: - The battery is currently at 60% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 03:45:03.622429: - For the next 48 hours there will be no solar generation.
2026-08-16 03:45:03.622446: - You will run out of battery in 28 hours.
2026-08-16 03:45:03.622463: - Your next charge slot will be in 7 and a quarter hours where import rates will be free (0.0p).
2026-08-16 03:45:03.622480: 
2026-08-16 03:45:03.683378: Plan calculation took 1.28 seconds
2026-08-16 03:45:03.685975: No high rate period found
2026-08-16 03:45:03.734689: Import threshold used for optimisation was 24.06p
2026-08-16 03:45:03.784261: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 94: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 03:45:03.792730: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 03:45:03.792892: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:45:03.793055: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:45:03.793325: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:45:03.793409: No export window planned
2026-08-16 03:45:03.793542: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:45:03.793596: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:45:03.793769: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:45:03.793951: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:45:03.794043: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:45:03.794138: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:45:03.794247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794282: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794306: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794372: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794392: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:45:03.794687: Inverter 0 count register writes 0
2026-08-16 03:45:03.814968: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:45:03.820547: Total inverter register writes now 826
2026-08-16 03:45:03.855180: Info: Completed run status Demand
2026-08-16 03:45:03.862614: Info: record_status Demand
2026-08-16 03:45:03.870142: Saved current settings to /config/predbat_config.json
2026-08-16 03:45:03.870485: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:45:41.985766: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:45:41.986027: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:45:41.986121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:45:41.986322: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:45:41.986392: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:45:41.986446: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:45:41.986481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:46:39.601218: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 03:46:40.688476: Processing 1345 30-minute periods for power integration
2026-08-16 03:46:40.793365: ML Component: Car charging hold False, car energy reported load False
2026-08-16 03:46:40.892929: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:46:40.992162: ML Temperature data points: 50176
2026-08-16 03:46:41.270845: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 03:46:41.314133: ML Component: Data fetch completed, load data age 57.0 days, 16597 data points
2026-08-16 03:46:41.314265: ML Component: No training needed, model age is 0.31 hours
2026-08-16 03:46:41.314329: ML Component: Generating predictions load data age 57.0 days, 16597 data points
2026-08-16 03:46:41.475954: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0515 max_dow {0: 0.10210624996256083, 1: 0.10689687554407865, 2: 0.11675312483031303, 3: 0.12371874963529408, 4: 0.16831249989941716, 5: 0.09602222218207186, 6: 0.10714375132601708}
2026-08-16 03:46:49.921720: ML Component: Generated 576 predictions (total 29.08 kWh over 48h)
2026-08-16 03:46:49.978176: ML Component: Prediction cycle completed
2026-08-16 03:46:50.124441: ML Component: Saved 16597 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 03:47:42.261012: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:47:42.261375: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:47:42.261440: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:47:42.261613: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:47:42.261655: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:47:42.261677: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:47:42.261695: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:49:56.544608: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:49:56.544846: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:49:56.544881: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:49:56.545059: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:49:56.545138: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:49:56.545190: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:49:56.545211: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:50:00.642010: --------------- PredBat - update at 2026-08-16 03:50:00+01:00 with clock skew 0 minutes, minutes now 230
2026-08-16 03:50:00.643800: Saved current settings to /config/predbat_config.json
2026-08-16 03:50:00.643968: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 03:50:00.644087: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:50:00.644213: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:50:00.669292: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:50:00.669443: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:50:00.669616: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:50:00.670170: Cars 1 charging from battery False 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-16 03:50:00.670296: Predbat mode is set to Control charge & discharge
2026-08-16 03:50:00.844181: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:50:00.844374: Using load_power data to fill gaps in load_today data
2026-08-16 03:50:01.590106: Processing 721 30-minute periods for power integration
2026-08-16 03:50:01.783706: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:50:01.783863: Car charging hold False, threshold 6.0kWh
2026-08-16 03:50:01.783911: Current data so far today: load 2.5kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:50:01.798393: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:50:01.798781: Standing charge is set to 49.98p
2026-08-16 03:50:01.825808: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:50:01.825914: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:50:01.826143: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 230.0 minutes
2026-08-16 03:50:01.826562: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 229.8 minutes
2026-08-16 03:50:01.829517: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:50:01.900021: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:50:01.950462: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:50:01.951217: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:50:01.986126: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:50:01.986256: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:50:01.987267: High export rate found rates in range 99p to -99p
2026-08-16 03:50:02.054196: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:50:02.054356: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:50:02.066874: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.61p, rate_forward 1.0p
2026-08-16 03:50:02.067368: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:50:02.125334: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 03:50:02.125485: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:50:02.192925: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:50:02.211289: Today's load divergence 95.59%, in-day adjustment 85.02%, damping 0.95x, yesterday 82.97% today 95.81% blend 84.03%
2026-08-16 03:50:02.211364: Today's predicted so far 3.13kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.13kWh forecast extra.
2026-08-16 03:50:02.211390: Today's actual load so far 2.46kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:50:02.243857: Inverter 0: Type SK Sunsynk
2026-08-16 03:50:02.243942: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:50:02.244163: Reserve min: 7%, battery_min: 7%
2026-08-16 03:50:02.244240: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:50:02.244476: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 488W, current battery voltage 51.2V, grid power -54W, load power 536W, PV Power 0W
2026-08-16 03:50:02.244660: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:50:02.244791: Inverter 0 scheduled charge enable is False
2026-08-16 03:50:02.244829: Inverter 0 charge windows currently []
2026-08-16 03:50:02.244854: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:50:02.245001: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:50:02.245042: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:50:02.245075: Inverter 0 scheduled discharge enable is False
2026-08-16 03:50:02.245207: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:50:02.245242: Inverter 0 discharge windows currently []
2026-08-16 03:50:02.245262: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:50:02.245278: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:50:02.245297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:50:02.309316: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:50:02.309481: Plan was last updated on 2026-08-16 03:40:00+01:00 and is now 10.0 minutes old
2026-08-16 03:50:02.309767: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:50:02.309818: Best export window [  ]
2026-08-16 03:50:02.310497: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:50:02.313409: Load divergence over 8.0 hours mean 381.42W, min 252.0W, max 891.6W, std dev 91.63W, divergence 12.01%
2026-08-16 03:50:02.330523: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:50:02.330656: LoadML is_calculating False
2026-08-16 03:50:02.330736: Creating pool of 12 processes to match your CPU count
2026-08-16 03:50:02.446332: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 378.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.22kWh, PV 0.0kWh
2026-08-16 03:50:02.573604: Battery has 16.08 hours left - now at 9.6kWh
2026-08-16 03:50:02.613576: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 404.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.06kWh, PV 0.0kWh
2026-08-16 03:50:02.696817: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 271.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.06kWh, PV 0.0kWh
2026-08-16 03:50:02.795953: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 238.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.22kWh, PV 0.0kWh
2026-08-16 03:50:02.796080: Saving plan best values to HA entities
2026-08-16 03:50:02.964764: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:50:02.970492: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:50:02.976323: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.07kWh, house 1.49kWh, export 0.0kWh, metric 238.05p, metric10 271.67p
2026-08-16 03:50:03.047765: Marginal costs baseline metric (no standing charge): 188.0636
2026-08-16 03:50:03.282874: Marginal energy costs matrix computed: min=19.0 max=29.56
2026-08-16 03:50:03.352594: Rate array import [{'start': 230, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 230, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:50:03.353284: - Your estimated bill for today is £1.28 and tomorrow is £7.32
2026-08-16 03:50:03.353353: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:50:03.353513: - The battery is currently at 60% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 03:50:03.353842: - For the next 48 hours there will be no solar generation.
2026-08-16 03:50:03.353884: - You will run out of battery in 28 hours.
2026-08-16 03:50:03.353902: - Your next charge slot will be in 7 and a quarter hours where import rates will be free (0.0p).
2026-08-16 03:50:03.353916: 
2026-08-16 03:50:03.412225: Plan calculation took 1.10 seconds
2026-08-16 03:50:03.414914: No high rate period found
2026-08-16 03:50:03.481397: Import threshold used for optimisation was 24.06p
2026-08-16 03:50:03.557646: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 94: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 03:50:03.566388: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 03:50:03.566588: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:50:03.566751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:50:03.567093: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:50:03.567241: No export window planned
2026-08-16 03:50:03.567443: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:50:03.567491: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:50:03.567704: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:50:03.567961: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:50:03.568072: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:50:03.568213: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:50:03.568350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568446: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568497: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568559: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.568938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.569068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.569123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.569190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:03.569238: Inverter 0 count register writes 0
2026-08-16 03:50:03.590485: 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-16 03:50:03.590751: Recompute is saving previous plan...
2026-08-16 03:50:03.594098: Best charge window [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0% ]
2026-08-16 03:50:03.594199: Best export window [  ]
2026-08-16 03:50:03.595059: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:50:03.598225: Load divergence over 8.0 hours mean 381.42W, min 252.0W, max 891.6W, std dev 91.63W, divergence 12.01%
2026-08-16 03:50:03.616044: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:50:03.616190: LoadML is_calculating False
2026-08-16 03:50:03.616268: Creating pool of 12 processes to match your CPU count
2026-08-16 03:50:03.713899: 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(0.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-16 03:50:03.716018: Optimise levels pass started at 2026-08-16 03:50:03
2026-08-16 03:50:03.716091: Optimise all windows, total charge 94 export 1
2026-08-16 03:50:04.471430: >> Region optimisation pass width 960 gives best_metric 461.88p, best_cost 474.02p, best_cycle 39.51kWh, best_import 24.28kWh
2026-08-16 03:50:04.904978: >> Region optimisation pass width 480 gives best_metric 461.88p, best_cost 474.02p, best_cycle 39.51kWh, best_import 24.28kWh
2026-08-16 03:50:05.438425: >> Region optimisation pass width 240 gives best_metric 461.88p, best_cost 474.02p, best_cycle 39.51kWh, best_import 24.28kWh
2026-08-16 03:50:06.967767: >> Region optimisation pass width 120 gives best_metric 461.56p, best_cost 473.78p, best_cycle 40.79kWh, best_import 24.37kWh
2026-08-16 03:50:06.968219: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 62
2026-08-16 03:50:06.968319: Optimise levels pass ended at 2026-08-16 03:50:06, duration 3.3 seconds tried 334 combinations
2026-08-16 03:50:06.968396: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 461.56p, best_keep 0kWh, best_cycle 40.79kWh, best_carbon 0kg, best_import 24.37kWh
2026-08-16 03:50:06.987177: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 03:50:12.575031: Tweak plan optimisation started metric 148.77p, cost 163.71p
2026-08-16 03:50:12.890199: Tweak optimisation finished metric 148.77p, cost 163.71p, metric_keep 0kWh, cycle 19.99kWh, carbon 0kg, import 10.53kWh, changed 8 window(s)
2026-08-16 03:50:12.910693: Swap charge optimisation started metric 148.77p, cost 163.71p, min_improvement_swap 0.1p
2026-08-16 03:50:18.546288: Swap charge optimisation finished metric 148.77p, cost 163.71p
2026-08-16 03:50:18.651298: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 143.11p -> 143.11p, plan now metric 148.8p, cost 163.71p, cycle 19.99kWh, import 10.53kWh
2026-08-16 03:50:18.664655: Raw charge windows [ 16-08 03:30:00 - 16-08 04:00:00 @ 25.86p 0%, 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 03:50:18.665191: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:50:18.665428: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:50:18.665607: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 03:50:18.696618: Previous plan best metric is 149.57 (cost 164.64) and new plan best metric is 148.77 (cost 163.71)
2026-08-16 03:50:18.696871: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 03:50:18.697063: Plan valid is now true after recompute was False
2026-08-16 03:50:18.720873: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 375.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.08kWh, PV 0.0kWh
2026-08-16 03:50:18.821396: Battery has 16.08 hours left - now at 9.6kWh
2026-08-16 03:50:18.859299: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 401.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.92kWh, PV 0.0kWh
2026-08-16 03:50:18.929781: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 251.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 20.92kWh, PV 0.0kWh
2026-08-16 03:50:19.003813: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 214.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.08kWh, PV 0.0kWh
2026-08-16 03:50:19.003917: Saving plan best values to HA entities
2026-08-16 03:50:19.178743: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:50:19.183510: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:50:19.188439: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.1kWh, house 1.49kWh, export 0.0kWh, metric 214.63p, metric10 251.46p
2026-08-16 03:50:19.256271: Marginal costs baseline metric (no standing charge): 164.6422
2026-08-16 03:50:19.475808: Marginal energy costs matrix computed: min=19.0 max=29.56
2026-08-16 03:50:19.536982: Rate array import [{'start': 230, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 230, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:50:19.537555: - Your estimated bill for today is £1.28 and tomorrow is £7.32
2026-08-16 03:50:19.537594: - Import rates are expensive (24.1p - 27.0p) for the next 7 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:50:19.537612: - The battery is currently at 60% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 03:50:19.537626: - For the next 48 hours there will be no solar generation.
2026-08-16 03:50:19.537640: - You will run out of battery in 28 hours.
2026-08-16 03:50:19.537654: - Your next charge slot will be in 7 and a quarter hours where import rates will be free (0.0p).
2026-08-16 03:50:19.537669: 
2026-08-16 03:50:19.595109: Plan calculation took 16.00 seconds
2026-08-16 03:50:19.595577: Inverter 0: Type SK Sunsynk
2026-08-16 03:50:19.595661: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:50:19.595963: Reserve min: 7%, battery_min: 7%
2026-08-16 03:50:19.596083: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:50:19.596532: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 488W, current battery voltage 51.2V, grid power -54W, load power 536W, PV Power 0W
2026-08-16 03:50:19.596829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:50:19.597017: Inverter 0 scheduled charge enable is False
2026-08-16 03:50:19.597083: Inverter 0 charge windows currently []
2026-08-16 03:50:19.597127: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:50:19.597312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:50:19.597360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:50:19.597416: Inverter 0 scheduled discharge enable is False
2026-08-16 03:50:19.597621: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:50:19.597670: Inverter 0 discharge windows currently []
2026-08-16 03:50:19.597695: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:50:19.597721: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:50:19.597740: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:50:19.671758: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 03:50:19.671965: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:50:19.672092: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:50:19.672464: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:50:19.672595: No export window planned
2026-08-16 03:50:19.672762: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:50:19.672848: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:50:19.673144: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:50:19.673434: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:50:19.673501: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:50:19.673582: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:50:19.673698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.673749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.673809: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.673878: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.673936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.673992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674034: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:50:19.674440: Inverter 0 count register writes 0
2026-08-16 03:50:19.703895: Total inverter register writes now 826
2026-08-16 03:50:19.741642: Info: Completed run status Demand
2026-08-16 03:50:19.756284: Info: record_status Demand
2026-08-16 03:50:19.766465: Saved current settings to /config/predbat_config.json
2026-08-16 03:50:19.766864: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:50:56.881806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:50:56.882216: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:50:56.882284: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:50:56.882489: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:50:56.882541: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:50:56.882570: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:50:56.882595: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:52:57.113713: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:52:57.114053: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:52:57.114160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:52:57.114399: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:52:57.114447: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:52:57.114478: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:52:57.114522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:54:57.338417: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:54:57.338670: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:54:57.338708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:54:57.338842: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:54:57.338882: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:54:57.338904: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:54:57.338922: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:55:00.436506: --------------- PredBat - update at 2026-08-16 03:55:00+01:00 with clock skew 0 minutes, minutes now 235
2026-08-16 03:55:00.437335: Saved current settings to /config/predbat_config.json
2026-08-16 03:55:00.437485: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 03:55:00.437564: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 03:55:00.437691: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 03:55:00.463179: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 03:55:00.463366: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 03:55:00.463613: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 03:55:00.464359: Cars 1 charging from battery False 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-16 03:55:00.464533: Predbat mode is set to Control charge & discharge
2026-08-16 03:55:00.666232: Found 21602 load_today datapoints going back 28 days
2026-08-16 03:55:00.666388: Using load_power data to fill gaps in load_today data
2026-08-16 03:55:01.653236: Processing 721 30-minute periods for power integration
2026-08-16 03:55:01.855162: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 03:55:01.855326: Car charging hold False, threshold 6.0kWh
2026-08-16 03:55:01.855375: Current data so far today: load 2.5kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 03:55:01.870355: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 03:55:01.870844: Standing charge is set to 49.98p
2026-08-16 03:55:01.899845: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 03:55:01.899961: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 03:55:01.900177: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 235.0 minutes
2026-08-16 03:55:01.900615: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 234.8 minutes
2026-08-16 03:55:01.903815: Loaded 47 datapoints of futurerate analysis
2026-08-16 03:55:01.989714: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 03:55:02.071846: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 03:55:02.072453: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 03:55:02.127184: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 03:55:02.127373: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 03:55:02.128776: High export rate found rates in range 99p to -99p
2026-08-16 03:55:02.221853: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 03:55:02.222012: Car 0 charging is not planned as it is not plugged in
2026-08-16 03:55:02.236664: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.61p, rate_forward 1.0p
2026-08-16 03:55:02.237059: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.95p, import 0.95p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 03:55:02.292420: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 03:55:02.292552: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 03:55:02.374417: Using weighted-bucket historical load forecast over 14 days
2026-08-16 03:55:02.398953: Today's load divergence 95.55%, in-day adjustment 85.06%, damping 0.95x, yesterday 82.97% today 95.78% blend 83.68%
2026-08-16 03:55:02.399070: Today's predicted so far 3.14kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.14kWh forecast extra.
2026-08-16 03:55:02.399125: Today's actual load so far 2.47kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 03:55:02.438307: Inverter 0: Type SK Sunsynk
2026-08-16 03:55:02.438402: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 03:55:02.438631: Reserve min: 7%, battery_min: 7%
2026-08-16 03:55:02.438725: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 03:55:02.438999: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 537W, current battery voltage 51.2V, grid power -53W, load power 583W, PV Power 0W
2026-08-16 03:55:02.439160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:55:02.439268: Inverter 0 scheduled charge enable is False
2026-08-16 03:55:02.439299: Inverter 0 charge windows currently []
2026-08-16 03:55:02.439325: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 03:55:02.439440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:55:02.439475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:55:02.439510: Inverter 0 scheduled discharge enable is False
2026-08-16 03:55:02.439638: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:55:02.439697: Inverter 0 discharge windows currently []
2026-08-16 03:55:02.439720: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:55:02.439744: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:55:02.439762: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:55:02.499349: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 03:55:02.499458: Plan was last updated on 2026-08-16 03:50:00+01:00 and is now 5.0 minutes old
2026-08-16 03:55:02.499675: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 03:55:02.499711: Best export window [  ]
2026-08-16 03:55:02.500323: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 03:55:02.502806: Load divergence over 8.0 hours mean 381.24W, min 273.0W, max 912.0W, std dev 92.43W, divergence 12.12%
2026-08-16 03:55:02.518099: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 03:55:02.518202: LoadML is_calculating False
2026-08-16 03:55:02.518262: Creating pool of 12 processes to match your CPU count
2026-08-16 03:55:02.640704: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 375.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.12kWh, PV 0.0kWh
2026-08-16 03:55:02.768675: Battery has 16.0 hours left - now at 9.6kWh
2026-08-16 03:55:02.806776: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 401.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.96kWh, PV 0.0kWh
2026-08-16 03:55:02.888009: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 260.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 20.96kWh, PV 0.0kWh
2026-08-16 03:55:02.986304: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 225.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.12kWh, PV 0.0kWh
2026-08-16 03:55:02.986405: Saving plan best values to HA entities
2026-08-16 03:55:03.179517: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 03:55:03.186496: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 03:55:03.193144: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.57kWh, house 1.49kWh, export 0.0kWh, metric 225.88p, metric10 260.93p
2026-08-16 03:55:03.288600: Marginal costs baseline metric (no standing charge): 175.8994
2026-08-16 03:55:03.582817: Marginal energy costs matrix computed: min=20.75 max=30.29
2026-08-16 03:55:03.670948: Rate array import [{'start': 235, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 235, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 03:55:03.671673: - Your estimated bill for today is £1.27 and tomorrow is £7.32
2026-08-16 03:55:03.671723: - Import rates are expensive (24.1p - 27.0p) for the next 7 hours and then free (0.0p) for the next 1 hour.
2026-08-16 03:55:03.671747: - The battery is currently at 60% and is in eco mode for the next 7 hours.
2026-08-16 03:55:03.671766: - For the next 48 hours there will be no solar generation.
2026-08-16 03:55:03.671783: - You will run out of battery in 28 hours.
2026-08-16 03:55:03.671826: - Your next charge slot will be in 7 hours where import rates will be free (0.0p).
2026-08-16 03:55:03.671846: 
2026-08-16 03:55:03.736178: Plan calculation took 1.24 seconds
2026-08-16 03:55:03.739714: No high rate period found
2026-08-16 03:55:03.800902: Import threshold used for optimisation was 24.94p
2026-08-16 03:55:03.864274: Low import rate windows [0: 08-16 03:30:00 - 08-16 04:00:00 @ 25.86, 1: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 2: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 3: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 4: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 5: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 6: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 7: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 8: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 9: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 10: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 11: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 12: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 13: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 14: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 15: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 16: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 17: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 18: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 19: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 20: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 21: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 22: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 23: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 24: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 25: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 26: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 27: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 28: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 29: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 30: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 31: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 32: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 33: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 34: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 35: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 36: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 37: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 38: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 39: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 40: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 41: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 42: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 43: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 44: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 45: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 46: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 47: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 48: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 49: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 50: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 51: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 52: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 53: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 54: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 55: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 56: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 57: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 58: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 59: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 60: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 61: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 62: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 63: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 64: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 65: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 66: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 67: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 68: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 69: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 70: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 71: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 72: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 73: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 74: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 75: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 76: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 77: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 78: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 79: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 80: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 81: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 82: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 83: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 84: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 85: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 86: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 87: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 88: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 89: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 90: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 91: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 92: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 93: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 94: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 03:55:03.872512: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 03:55:03.872665: Inverter 0 disabled charge window while waiting for schedule (now 08-16 03:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 03:55:03.872795: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:55:03.873125: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:55:03.873246: No export window planned
2026-08-16 03:55:03.873380: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 03:55:03.873417: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 03:55:03.873559: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 03:55:03.873748: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 03:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 03:55:03.873811: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 03:55:03.873877: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 03:55:03.873970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874014: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874124: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874292: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 03:55:03.874417: Inverter 0 count register writes 0
2026-08-16 03:55:03.893113: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 03:55:03.900300: Total inverter register writes now 826
2026-08-16 03:55:03.938025: Info: Completed run status Demand
2026-08-16 03:55:03.945754: Info: record_status Demand
2026-08-16 03:55:03.953863: Saved current settings to /config/predbat_config.json
2026-08-16 03:55:03.954271: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 03:55:42.066656: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:55:42.066983: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:55:42.067037: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:55:42.067262: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:55:42.067329: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:55:42.067362: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:55:42.067388: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:57:42.303899: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:57:42.304146: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:57:42.304182: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:57:42.304349: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:57:42.304391: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:57:42.304412: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:57:42.304430: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 03:59:32.445502: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 03:59:32.604586: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 03:59:56.553990: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 03:59:56.554246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 03:59:56.554290: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 03:59:56.554425: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 03:59:56.554464: Note: Inverter does not support discharge freeze - disabled
2026-08-16 03:59:56.554484: Note: Inverter does not support charge freeze - disabled
2026-08-16 03:59:56.554502: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:00:00.640325: --------------- PredBat - update at 2026-08-16 04:00:00+01:00 with clock skew 0 minutes, minutes now 240
2026-08-16 04:00:00.641384: Saved current settings to /config/predbat_config.json
2026-08-16 04:00:00.641567: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 04:00:00.641675: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:00:00.641788: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:00:00.672369: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:00:00.672567: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:00:00.672885: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:00:00.673867: Cars 1 charging from battery False 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-16 04:00:00.674115: Predbat mode is set to Control charge & discharge
2026-08-16 04:00:00.972753: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:00:00.972915: Using load_power data to fill gaps in load_today data
2026-08-16 04:00:01.899179: Processing 721 30-minute periods for power integration
2026-08-16 04:00:02.199318: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:00:02.199535: Car charging hold False, threshold 6.0kWh
2026-08-16 04:00:02.199628: Current data so far today: load 2.62kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:00:02.227317: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:00:02.227935: Standing charge is set to 49.98p
2026-08-16 04:00:02.263716: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:00:02.263865: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:00:02.264191: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 240.0 minutes
2026-08-16 04:00:02.265022: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 239.8 minutes
2026-08-16 04:00:02.271031: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:00:02.364705: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:00:02.445756: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:00:02.446308: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:00:02.511627: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:00:02.511819: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:00:02.513355: High export rate found rates in range 99p to -99p
2026-08-16 04:00:02.623610: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:00:02.624025: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:00:02.644392: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.61p, rate_forward 1.0p
2026-08-16 04:00:02.644882: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.83p, import 0.83p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:00:02.716825: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:00:02.716996: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:00:02.796245: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:00:02.821202: Today's load divergence 95.92%, in-day adjustment 85.16%, damping 0.95x, yesterday 82.97% today 96.12% blend 83.33%
2026-08-16 04:00:02.821324: Today's predicted so far 3.26kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.26kWh forecast extra.
2026-08-16 04:00:02.821359: Today's actual load so far 2.64kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:00:02.867370: Inverter 0: Type SK Sunsynk
2026-08-16 04:00:02.867465: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:00:02.867672: Reserve min: 7%, battery_min: 7%
2026-08-16 04:00:02.867754: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:00:02.868031: Inverter 0 SoC: 9.52kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 466W, current battery voltage 51.2V, grid power -55W, load power 514W, PV Power 0W
2026-08-16 04:00:02.868197: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:00:02.868306: Inverter 0 scheduled charge enable is False
2026-08-16 04:00:02.868338: Inverter 0 charge windows currently []
2026-08-16 04:00:02.868364: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:00:02.868485: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:00:02.868521: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:00:02.868558: Inverter 0 scheduled discharge enable is False
2026-08-16 04:00:02.868687: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:00:02.868724: Inverter 0 discharge windows currently []
2026-08-16 04:00:02.868747: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:00:02.868773: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:00:02.868791: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:00:02.954149: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:00:02.954337: Plan was last updated on 2026-08-16 03:50:00+01:00 and is now 10.0 minutes old
2026-08-16 04:00:02.954830: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:00:02.954909: Best export window [  ]
2026-08-16 04:00:02.956420: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:00:02.962798: Load divergence over 8.0 hours mean 381.04W, min 223.8W, max 1097.4W, std dev 100.89W, divergence 13.24%
2026-08-16 04:00:02.981318: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:00:02.981446: LoadML is_calculating False
2026-08-16 04:00:02.981524: Creating pool of 12 processes to match your CPU count
2026-08-16 04:00:03.131856: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 379.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.3kWh, PV 0.0kWh
2026-08-16 04:00:03.294783: Battery has 15.83 hours left - now at 9.52kWh
2026-08-16 04:00:03.360079: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 405.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:00:03.446786: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 272.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:00:03.537644: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 239.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.3kWh, PV 0.0kWh
2026-08-16 04:00:03.537743: Saving plan best values to HA entities
2026-08-16 04:00:03.750664: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 04:00:03.756662: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:00:03.762586: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.09kWh, house 1.51kWh, export 0.0kWh, metric 239.0p, metric10 272.62p
2026-08-16 04:00:03.848628: Marginal costs baseline metric (no standing charge): 189.0196
2026-08-16 04:00:04.107279: Marginal energy costs matrix computed: min=21.53 max=31.05
2026-08-16 04:00:04.465709: Rate array import [{'start': 240, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 240, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:00:04.466444: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 04:00:04.466502: - Import rates are expensive (24.1p - 27.0p) for the next 7 hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:00:04.466525: - The battery is currently at 60% and is in eco mode for the next 7 hours.
2026-08-16 04:00:04.466545: - For the next 48 hours there will be no solar generation.
2026-08-16 04:00:04.466567: - You will run out of battery in 28 hours.
2026-08-16 04:00:04.466585: - Your next charge slot will be in 7 hours where import rates will be free (0.0p).
2026-08-16 04:00:04.466603: 
2026-08-16 04:00:04.530470: Plan calculation took 1.58 seconds
2026-08-16 04:00:04.534163: No high rate period found
2026-08-16 04:00:04.589877: Import threshold used for optimisation was 24.94p
2026-08-16 04:00:04.654841: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86]
2026-08-16 04:00:04.664647: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 04:00:04.664808: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:00:04.664936: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:00:04.665319: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:00:04.665424: No export window planned
2026-08-16 04:00:04.665542: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:00:04.665581: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:00:04.665721: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:00:04.665918: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:00:04.666036: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:00:04.666134: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:00:04.666325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666406: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.666995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.667053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.667100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.667154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:04.667199: Inverter 0 count register writes 0
2026-08-16 04:00:04.687520: 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-16 04:00:04.687709: Recompute is saving previous plan...
2026-08-16 04:00:04.690807: Best charge window [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0% ]
2026-08-16 04:00:04.691054: Best export window [  ]
2026-08-16 04:00:04.691883: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:00:04.695028: Load divergence over 8.0 hours mean 381.04W, min 223.8W, max 1097.4W, std dev 100.89W, divergence 13.24%
2026-08-16 04:00:04.715966: Calculating data from yesterday for savings calculation
2026-08-16 04:00:04.728858: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 04:00:04.781988: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 04:00:04.795694: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 04:00:04.815281: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 04:00:04.850870: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 04:00:04.935703: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 04:00:04.935872: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 04:00:04.949602: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:00:04.949785: LoadML is_calculating False
2026-08-16 04:00:04.949901: Creating pool of 12 processes to match your CPU count
2026-08-16 04:00:05.045286: 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(0.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-16 04:00:05.047320: Optimise levels pass started at 2026-08-16 04:00:05
2026-08-16 04:00:05.047723: Optimise all windows, total charge 94 export 1
2026-08-16 04:00:06.220052: >> Region optimisation pass width 960 gives best_metric 465.29p, best_cost 477.39p, best_cycle 39.46kWh, best_import 24.41kWh
2026-08-16 04:00:07.093006: >> Region optimisation pass width 480 gives best_metric 465.29p, best_cost 477.39p, best_cycle 39.46kWh, best_import 24.41kWh
2026-08-16 04:00:07.800707: >> Region optimisation pass width 240 gives best_metric 465.29p, best_cost 477.39p, best_cycle 39.46kWh, best_import 24.41kWh
2026-08-16 04:00:09.441789: >> Region optimisation pass width 120 gives best_metric 464.98p, best_cost 477.16p, best_cycle 40.75kWh, best_import 24.5kWh
2026-08-16 04:00:09.442200: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 61
2026-08-16 04:00:09.442318: Optimise levels pass ended at 2026-08-16 04:00:09, duration 4.4 seconds tried 354 combinations
2026-08-16 04:00:09.442388: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 464.98p, best_keep 0kWh, best_cycle 40.75kWh, best_carbon 0kg, best_import 24.5kWh
2026-08-16 04:00:09.463911: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:00:14.417424: Tweak plan optimisation started metric 150.29p, cost 165.32p
2026-08-16 04:00:14.777792: Tweak optimisation finished metric 150.29p, cost 165.32p, metric_keep 0kWh, cycle 20.83kWh, carbon 0kg, import 10.63kWh, changed 8 window(s)
2026-08-16 04:00:14.798262: Swap charge optimisation started metric 150.29p, cost 165.32p, min_improvement_swap 0.1p
2026-08-16 04:00:21.501472: Swap charge optimisation finished metric 150.29p, cost 165.32p
2026-08-16 04:00:21.636738: Pruned 3 dead plan slot(s) in 11 trial(s), nominal metric 144.72p -> 144.72p, plan now metric 150.45p, cost 165.32p, cycle 20.83kWh, import 10.63kWh
2026-08-16 04:00:21.650543: Raw charge windows [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100% ] reserve 1.12
2026-08-16 04:00:21.651178: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 04:00:21.651480: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 04:00:21.651727: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:00:00 @ 25.99p 100% ] reserve 1.12
2026-08-16 04:00:21.694974: Previous plan best metric is 150.47 (cost 165.55) and new plan best metric is 150.29 (cost 165.32)
2026-08-16 04:00:21.695345: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:00:21.695537: Plan valid is now true after recompute was False
2026-08-16 04:00:21.731957: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 376.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.17kWh, PV 0.0kWh
2026-08-16 04:00:21.863757: Battery has 15.83 hours left - now at 9.52kWh
2026-08-16 04:00:21.905758: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 402.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.01kWh, PV 0.0kWh
2026-08-16 04:00:21.982888: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 252.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.01kWh, PV 0.0kWh
2026-08-16 04:00:22.052207: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 215.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.17kWh, PV 0.0kWh
2026-08-16 04:00:22.052303: Saving plan best values to HA entities
2026-08-16 04:00:22.206813: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 04:00:22.212899: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:00:22.219370: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.12kWh, house 1.51kWh, export 0.0kWh, metric 215.53p, metric10 252.36p
2026-08-16 04:00:22.291795: Marginal costs baseline metric (no standing charge): 165.5472
2026-08-16 04:00:22.541529: Marginal energy costs matrix computed: min=21.53 max=31.05
2026-08-16 04:00:22.611791: Rate array import [{'start': 240, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 240, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:00:22.612611: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 04:00:22.612668: - Import rates are expensive (24.1p - 27.0p) for the next 7 hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:00:22.612728: - The battery is currently at 60% and is in eco mode for the next 7 hours.
2026-08-16 04:00:22.612753: - For the next 48 hours there will be no solar generation.
2026-08-16 04:00:22.612779: - You will run out of battery in 28 hours.
2026-08-16 04:00:22.612802: - Your next charge slot will be in 7 hours where import rates will be free (0.0p).
2026-08-16 04:00:22.612820: 
2026-08-16 04:00:22.674826: Plan calculation took 17.99 seconds
2026-08-16 04:00:22.675181: Inverter 0: Type SK Sunsynk
2026-08-16 04:00:22.675248: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:00:22.675513: Reserve min: 7%, battery_min: 7%
2026-08-16 04:00:22.675606: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:00:22.675953: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 455W, current battery voltage 51.2V, grid power -55W, load power 503W, PV Power 0W
2026-08-16 04:00:22.676191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:00:22.676345: Inverter 0 scheduled charge enable is False
2026-08-16 04:00:22.676388: Inverter 0 charge windows currently []
2026-08-16 04:00:22.676420: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:00:22.676566: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:00:22.676611: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:00:22.676650: Inverter 0 scheduled discharge enable is False
2026-08-16 04:00:22.676786: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:00:22.676824: Inverter 0 discharge windows currently []
2026-08-16 04:00:22.676847: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:00:22.676870: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:00:22.676888: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:00:22.733816: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 59%, target 100%
2026-08-16 04:00:22.733969: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:00:22.734041: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:00:22.734221: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:00:22.734329: No export window planned
2026-08-16 04:00:22.734444: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:00:22.734480: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:00:22.734616: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:00:22.734781: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:00:22.734834: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:00:22.734893: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:00:22.734976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735050: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735075: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:00:22.735424: Inverter 0 count register writes 0
2026-08-16 04:00:22.758919: Total inverter register writes now 826
2026-08-16 04:00:22.794498: Info: Completed run status Demand
2026-08-16 04:00:22.802134: Info: record_status Demand
2026-08-16 04:00:22.811136: Saved current settings to /config/predbat_config.json
2026-08-16 04:00:22.811587: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:00:56.929907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:00:56.930152: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:00:56.930192: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:00:56.930365: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:00:56.930406: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:00:56.930428: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:00:56.930447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:02:57.158311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:02:57.158631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:02:57.158692: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:02:57.158888: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:02:57.158936: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:02:57.158958: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:02:57.158982: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:04:57.387037: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:04:57.387763: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:04:57.387837: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:04:57.388109: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:04:57.388162: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:04:57.388185: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:04:57.388205: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:05:00.479051: --------------- PredBat - update at 2026-08-16 04:05:00+01:00 with clock skew 0 minutes, minutes now 245
2026-08-16 04:05:00.479829: Saved current settings to /config/predbat_config.json
2026-08-16 04:05:00.479954: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 04:05:00.480023: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:05:00.480129: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:05:00.500300: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:05:00.500434: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:05:00.500675: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:05:00.501412: Cars 1 charging from battery False 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-16 04:05:00.501570: Predbat mode is set to Control charge & discharge
2026-08-16 04:05:00.775184: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:05:00.775388: Using load_power data to fill gaps in load_today data
2026-08-16 04:05:01.729605: Processing 721 30-minute periods for power integration
2026-08-16 04:05:01.984549: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:05:01.984723: Car charging hold False, threshold 6.0kWh
2026-08-16 04:05:01.984784: Current data so far today: load 2.65kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:05:02.007835: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:05:02.008402: Standing charge is set to 49.98p
2026-08-16 04:05:02.041143: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:05:02.041279: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:05:02.041498: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 245.0 minutes
2026-08-16 04:05:02.041892: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 244.8 minutes
2026-08-16 04:05:02.045063: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:05:02.134754: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:05:02.200384: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:05:02.200748: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:05:02.246306: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:05:02.246854: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:05:02.248369: High export rate found rates in range 99p to -99p
2026-08-16 04:05:02.335396: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:05:02.335526: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:05:02.348792: Battery level now 9.52kWh, -1hr ago 9.98kWh, at midnight 12.21kWh, battery value change in the last hour -0.46p, change today -2.69p, rate_forward 1.0p
2026-08-16 04:05:02.349288: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.71p, import 0.71p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:05:02.403219: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:05:02.403370: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:05:02.478795: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:05:02.502703: Today's load divergence 95.94%, in-day adjustment 85.21%, damping 0.95x, yesterday 82.97% today 96.15% blend 82.99%
2026-08-16 04:05:02.503144: Today's predicted so far 3.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.35kWh forecast extra.
2026-08-16 04:05:02.503221: Today's actual load so far 2.73kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:05:02.542766: Inverter 0: Type SK Sunsynk
2026-08-16 04:05:02.542865: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:05:02.543056: Reserve min: 7%, battery_min: 7%
2026-08-16 04:05:02.543128: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:05:02.543407: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 514W, current battery voltage 51.2V, grid power -54W, load power 560W, PV Power 0W
2026-08-16 04:05:02.543618: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:05:02.543726: Inverter 0 scheduled charge enable is False
2026-08-16 04:05:02.543762: Inverter 0 charge windows currently []
2026-08-16 04:05:02.543791: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:05:02.543903: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:05:02.543938: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:05:02.543975: Inverter 0 scheduled discharge enable is False
2026-08-16 04:05:02.544099: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:05:02.544136: Inverter 0 discharge windows currently []
2026-08-16 04:05:02.544159: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:05:02.544177: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:05:02.544199: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:05:02.607514: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:05:02.607627: Plan was last updated on 2026-08-16 04:00:00+01:00 and is now 5.0 minutes old
2026-08-16 04:05:02.607867: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:05:02.607909: Best export window [  ]
2026-08-16 04:05:02.608752: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:05:02.611981: Load divergence over 8.0 hours mean 380.66W, min 213.6W, max 1026.0W, std dev 98.39W, divergence 12.92%
2026-08-16 04:05:02.631285: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:05:02.631419: LoadML is_calculating False
2026-08-16 04:05:02.631491: Creating pool of 12 processes to match your CPU count
2026-08-16 04:05:02.753009: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 380.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.25kWh, PV 0.0kWh
2026-08-16 04:05:02.905325: Battery has 15.67 hours left - now at 9.44kWh
2026-08-16 04:05:02.960150: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 406.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.09kWh, PV 0.0kWh
2026-08-16 04:05:03.058535: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 264.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.09kWh, PV 0.0kWh
2026-08-16 04:05:03.144366: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 228.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.25kWh, PV 0.0kWh
2026-08-16 04:05:03.144480: Saving plan best values to HA entities
2026-08-16 04:05:03.327276: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:05:03.332372: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:05:03.338420: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.66kWh, house 1.52kWh, export 0.0kWh, metric 228.66p, metric10 264.02p
2026-08-16 04:05:03.427190: Marginal costs baseline metric (no standing charge): 178.6778
2026-08-16 04:05:03.699238: Marginal energy costs matrix computed: min=21.66 max=31.23
2026-08-16 04:05:03.777016: Rate array import [{'start': 245, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 245, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:05:03.778032: - Your estimated bill for today is £1.29 and tomorrow is £7.29
2026-08-16 04:05:03.778099: - Import rates are expensive (24.1p - 27.0p) for the next 6  hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:05:03.778142: - The battery is currently at 59% and is in eco mode for the next 6  hours.
2026-08-16 04:05:03.778194: - For the next 48 hours there will be no solar generation.
2026-08-16 04:05:03.778236: - You will run out of battery in 28 hours.
2026-08-16 04:05:03.778284: - Your next charge slot will be in 6  hours where import rates will be free (0.0p).
2026-08-16 04:05:03.778323: 
2026-08-16 04:05:03.836119: Plan calculation took 1.23 seconds
2026-08-16 04:05:03.838984: No high rate period found
2026-08-16 04:05:03.883985: Import threshold used for optimisation was 24.94p
2026-08-16 04:05:03.938950: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 94: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:05:03.946928: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 59%, target 100%
2026-08-16 04:05:03.947075: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:05:03.947196: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:05:03.947479: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:05:03.947574: No export window planned
2026-08-16 04:05:03.947690: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:05:03.947724: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:05:03.947868: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:05:03.948057: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:05:03.948121: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:05:03.948186: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:05:03.948303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948483: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:05:03.948765: Inverter 0 count register writes 0
2026-08-16 04:05:03.970028: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:05:03.976139: Total inverter register writes now 826
2026-08-16 04:05:04.009467: Info: Completed run status Demand
2026-08-16 04:05:04.016514: Info: record_status Demand
2026-08-16 04:05:04.022941: Saved current settings to /config/predbat_config.json
2026-08-16 04:05:04.023287: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:05:17.361157: Info: HAHistory: Pruning history data started.
2026-08-16 04:05:17.364868: Info: HAHistory: Pruning history data completed.
2026-08-16 04:05:42.147082: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:05:42.147347: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:05:42.147389: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:05:42.147525: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:05:42.147568: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:05:42.147591: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:05:42.147609: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:07:42.373924: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:07:42.374258: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:07:42.374364: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:07:42.374660: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:07:42.374723: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:07:42.374766: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:07:42.374801: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:09:56.632323: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:09:56.632665: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:09:56.632721: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:09:56.632909: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:09:56.632989: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:09:56.633057: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:09:56.633105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:10:00.716570: --------------- PredBat - update at 2026-08-16 04:10:00+01:00 with clock skew 0 minutes, minutes now 250
2026-08-16 04:10:00.717517: Saved current settings to /config/predbat_config.json
2026-08-16 04:10:00.717701: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 04:10:00.717838: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:10:00.717968: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:10:00.740861: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:10:00.741090: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:10:00.741305: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:10:00.741915: Cars 1 charging from battery False 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-16 04:10:00.742045: Predbat mode is set to Control charge & discharge
2026-08-16 04:10:00.950680: Found 21602 load_today datapoints going back 27 days
2026-08-16 04:10:00.950828: Using load_power data to fill gaps in load_today data
2026-08-16 04:10:01.783554: Processing 721 30-minute periods for power integration
2026-08-16 04:10:02.000087: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:10:02.000259: Car charging hold False, threshold 6.0kWh
2026-08-16 04:10:02.000324: Current data so far today: load 2.75kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:10:02.015070: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:10:02.015471: Standing charge is set to 49.98p
2026-08-16 04:10:02.043117: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:10:02.043267: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:10:02.043594: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 250.0 minutes
2026-08-16 04:10:02.044016: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 249.8 minutes
2026-08-16 04:10:02.047545: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:10:02.136709: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:10:02.199401: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:10:02.199821: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:10:02.243269: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:10:02.243431: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:10:02.244683: High export rate found rates in range 99p to -99p
2026-08-16 04:10:02.329450: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:10:02.329590: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:10:02.342923: Battery level now 9.44kWh, -1hr ago 9.92kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.77p, rate_forward 1.0p
2026-08-16 04:10:02.343308: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.59p, import 0.59p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:10:02.393502: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:10:02.393632: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:10:02.468439: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:10:02.491833: Today's load divergence 96.31%, in-day adjustment 85.32%, damping 0.95x, yesterday 82.97% today 96.49% blend 82.64%
2026-08-16 04:10:02.492179: Today's predicted so far 3.34kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.34kWh forecast extra.
2026-08-16 04:10:02.492229: Today's actual load so far 2.78kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:10:02.535369: Inverter 0: Type SK Sunsynk
2026-08-16 04:10:02.535474: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:10:02.535673: Reserve min: 7%, battery_min: 7%
2026-08-16 04:10:02.535762: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:10:02.536050: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 456W, current battery voltage 51.2V, grid power -55W, load power 504W, PV Power 0W
2026-08-16 04:10:02.536216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:10:02.536323: Inverter 0 scheduled charge enable is False
2026-08-16 04:10:02.536355: Inverter 0 charge windows currently []
2026-08-16 04:10:02.536380: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:10:02.536493: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:10:02.536529: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:10:02.536564: Inverter 0 scheduled discharge enable is False
2026-08-16 04:10:02.536735: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:10:02.536805: Inverter 0 discharge windows currently []
2026-08-16 04:10:02.536850: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:10:02.536887: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:10:02.536931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:10:02.602626: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:10:02.602732: Plan was last updated on 2026-08-16 04:00:00+01:00 and is now 10.0 minutes old
2026-08-16 04:10:02.603001: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:10:02.603049: Best export window [  ]
2026-08-16 04:10:02.603929: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:10:02.607031: Load divergence over 8.0 hours mean 379.86W, min 222.6W, max 708.0W, std dev 83.71W, divergence 11.02%
2026-08-16 04:10:02.626080: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:10:02.626214: LoadML is_calculating False
2026-08-16 04:10:02.626298: Creating pool of 12 processes to match your CPU count
2026-08-16 04:10:02.749893: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 380.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.38kWh, PV 0.0kWh
2026-08-16 04:10:02.886544: Battery has 15.67 hours left - now at 9.44kWh
2026-08-16 04:10:02.935881: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 406.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.22kWh, PV 0.0kWh
2026-08-16 04:10:03.038323: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 273.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.22kWh, PV 0.0kWh
2026-08-16 04:10:03.135794: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 239.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.38kWh, PV 0.0kWh
2026-08-16 04:10:03.135896: Saving plan best values to HA entities
2026-08-16 04:10:03.305251: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:10:03.311014: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:10:03.316987: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.11kWh, house 1.52kWh, export 0.0kWh, metric 239.59p, metric10 273.13p
2026-08-16 04:10:03.398729: Marginal costs baseline metric (no standing charge): 189.6063
2026-08-16 04:10:03.686153: Marginal energy costs matrix computed: min=20.04 max=31.44
2026-08-16 04:10:03.765631: Rate array import [{'start': 250, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 250, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:10:03.766363: - Your estimated bill for today is £1.29 and tomorrow is £7.30
2026-08-16 04:10:03.766412: - Import rates are expensive (24.1p - 27.0p) for the next 6 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:10:03.766435: - The battery is currently at 59% and is in eco mode for the next 6 and three quarters hours.
2026-08-16 04:10:03.766453: - For the next 48 hours there will be no solar generation.
2026-08-16 04:10:03.766471: - You will run out of battery in 27 hours.
2026-08-16 04:10:03.766488: - Your next charge slot will be in 6 and three quarters hours where import rates will be free (0.0p).
2026-08-16 04:10:03.766505: 
2026-08-16 04:10:03.827594: Plan calculation took 1.22 seconds
2026-08-16 04:10:03.830852: No high rate period found
2026-08-16 04:10:03.884259: Import threshold used for optimisation was 24.94p
2026-08-16 04:10:03.944427: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 94: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:10:03.952785: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 59%, target 100%
2026-08-16 04:10:03.952938: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:10:03.953130: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:10:03.953440: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:10:03.953543: No export window planned
2026-08-16 04:10:03.953658: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:10:03.953694: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:10:03.953827: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:10:03.954010: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:10:03.954074: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:10:03.954133: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:10:03.954230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954474: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954603: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:03.954728: Inverter 0 count register writes 0
2026-08-16 04:10:03.973006: 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-16 04:10:03.973224: Recompute is saving previous plan...
2026-08-16 04:10:03.976435: Best charge window [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0% ]
2026-08-16 04:10:03.976520: Best export window [  ]
2026-08-16 04:10:03.977421: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:10:03.980564: Load divergence over 8.0 hours mean 379.86W, min 222.6W, max 708.0W, std dev 83.71W, divergence 11.02%
2026-08-16 04:10:03.998252: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:10:03.998431: LoadML is_calculating False
2026-08-16 04:10:03.998503: Creating pool of 12 processes to match your CPU count
2026-08-16 04:10:04.094953: 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(0.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-16 04:10:04.097170: Optimise levels pass started at 2026-08-16 04:10:04
2026-08-16 04:10:04.097973: Optimise all windows, total charge 94 export 1
2026-08-16 04:10:05.311678: >> Region optimisation pass width 960 gives best_metric 467.44p, best_cost 479.64p, best_cycle 40.69kWh, best_import 24.6kWh
2026-08-16 04:10:06.020405: >> Region optimisation pass width 480 gives best_metric 467.44p, best_cost 479.64p, best_cycle 40.69kWh, best_import 24.6kWh
2026-08-16 04:10:06.631264: >> Region optimisation pass width 240 gives best_metric 467.44p, best_cost 479.64p, best_cycle 40.69kWh, best_import 24.6kWh
2026-08-16 04:10:08.117176: >> Region optimisation pass width 120 gives best_metric 467.44p, best_cost 479.64p, best_cycle 40.69kWh, best_import 24.6kWh
2026-08-16 04:10:08.117597: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 61
2026-08-16 04:10:08.117694: Optimise levels pass ended at 2026-08-16 04:10:08, duration 4.0 seconds tried 357 combinations
2026-08-16 04:10:08.117788: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 467.44p, best_keep 0kWh, best_cycle 40.69kWh, best_carbon 0kg, best_import 24.6kWh
2026-08-16 04:10:08.139907: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:10:12.358744: Tweak plan optimisation started metric 151.13p, cost 166.18p
2026-08-16 04:10:12.696232: Tweak optimisation finished metric 151.13p, cost 166.18p, metric_keep 0kWh, cycle 21.78kWh, carbon 0kg, import 10.73kWh, changed 8 window(s)
2026-08-16 04:10:12.716655: Swap charge optimisation started metric 151.13p, cost 166.18p, min_improvement_swap 0.1p
2026-08-16 04:10:18.957610: Swap charge optimisation finished metric 151.13p, cost 166.18p
2026-08-16 04:10:19.068839: Pruned 3 dead plan slot(s) in 11 trial(s), nominal metric 145.58p -> 145.58p, plan now metric 151.29p, cost 166.18p, cycle 21.78kWh, import 10.73kWh
2026-08-16 04:10:19.078879: Raw charge windows [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100% ] reserve 1.12
2026-08-16 04:10:19.079441: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:10:19.079699: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:10:19.079941: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:10:19.114930: Previous plan best metric is 151.16 (cost 166.25) and new plan best metric is 151.13 (cost 166.18)
2026-08-16 04:10:19.115208: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:10:19.115402: Plan valid is now true after recompute was False
2026-08-16 04:10:19.138903: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 377.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.25kWh, PV 0.0kWh
2026-08-16 04:10:19.274523: Battery has 15.67 hours left - now at 9.44kWh
2026-08-16 04:10:19.330011: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 403.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.08kWh, PV 0.0kWh
2026-08-16 04:10:19.420814: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 252.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.08kWh, PV 0.0kWh
2026-08-16 04:10:19.519015: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 216.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.25kWh, PV 0.0kWh
2026-08-16 04:10:19.519137: Saving plan best values to HA entities
2026-08-16 04:10:19.688488: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:10:19.694577: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:10:19.699978: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.14kWh, house 1.52kWh, export 0.0kWh, metric 216.23p, metric10 252.99p
2026-08-16 04:10:19.765009: Marginal costs baseline metric (no standing charge): 166.2503
2026-08-16 04:10:20.002731: Marginal energy costs matrix computed: min=20.04 max=31.44
2026-08-16 04:10:20.067408: Rate array import [{'start': 250, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 250, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:10:20.068174: - Your estimated bill for today is £1.29 and tomorrow is £7.30
2026-08-16 04:10:20.068217: - Import rates are expensive (24.1p - 27.0p) for the next 6 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:10:20.068236: - The battery is currently at 59% and is in eco mode for the next 6 and three quarters hours.
2026-08-16 04:10:20.068251: - For the next 48 hours there will be no solar generation.
2026-08-16 04:10:20.068265: - You will run out of battery in 27 hours.
2026-08-16 04:10:20.068298: - Your next charge slot will be in 6 and three quarters hours where import rates will be free (0.0p).
2026-08-16 04:10:20.068315: 
2026-08-16 04:10:20.122163: Plan calculation took 16.15 seconds
2026-08-16 04:10:20.122648: Inverter 0: Type SK Sunsynk
2026-08-16 04:10:20.122730: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:10:20.123050: Reserve min: 7%, battery_min: 7%
2026-08-16 04:10:20.123164: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:10:20.123738: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 456W, current battery voltage 51.2V, grid power -55W, load power 504W, PV Power 0W
2026-08-16 04:10:20.124100: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:10:20.124265: Inverter 0 scheduled charge enable is False
2026-08-16 04:10:20.124353: Inverter 0 charge windows currently []
2026-08-16 04:10:20.124414: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:10:20.124607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:10:20.124667: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:10:20.124729: Inverter 0 scheduled discharge enable is False
2026-08-16 04:10:20.124940: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:10:20.125029: Inverter 0 discharge windows currently []
2026-08-16 04:10:20.125077: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:10:20.125116: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:10:20.125150: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:10:20.177005: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 59%, target 100%
2026-08-16 04:10:20.177160: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:10:20.177230: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:10:20.177448: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:10:20.177535: No export window planned
2026-08-16 04:10:20.177644: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:10:20.177679: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:10:20.177816: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:10:20.177985: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:10:20.178056: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:10:20.178126: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:10:20.178241: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:10:20.178743: Inverter 0 count register writes 0
2026-08-16 04:10:20.200078: Total inverter register writes now 826
2026-08-16 04:10:20.231452: Info: Completed run status Demand
2026-08-16 04:10:20.238217: Info: record_status Demand
2026-08-16 04:10:20.245010: Saved current settings to /config/predbat_config.json
2026-08-16 04:10:20.245363: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:10:57.356004: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:10:57.356325: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:10:57.356381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:10:57.356567: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:10:57.356617: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:10:57.356648: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:10:57.356682: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:13:11.611876: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:13:11.612175: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:13:11.612232: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:13:11.612428: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:13:11.612482: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:13:11.612511: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:13:11.612535: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:15:00.880245: --------------- PredBat - update at 2026-08-16 04:15:00+01:00 with clock skew 0 minutes, minutes now 255
2026-08-16 04:15:00.881465: Saved current settings to /config/predbat_config.json
2026-08-16 04:15:00.881707: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 04:15:00.881833: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:15:00.881953: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:15:00.907598: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:15:00.907725: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:15:00.907898: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:15:00.908474: Cars 1 charging from battery False 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-16 04:15:00.908600: Predbat mode is set to Control charge & discharge
2026-08-16 04:15:01.123821: Found 21602 load_today datapoints going back 27 days
2026-08-16 04:15:01.123995: Using load_power data to fill gaps in load_today data
2026-08-16 04:15:02.037741: Processing 721 30-minute periods for power integration
2026-08-16 04:15:02.238017: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:15:02.238162: Car charging hold False, threshold 6.0kWh
2026-08-16 04:15:02.238210: Current data so far today: load 2.8kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:15:02.253928: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:15:02.254430: Standing charge is set to 49.98p
2026-08-16 04:15:02.281776: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:15:02.281906: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:15:02.282192: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 255.0 minutes
2026-08-16 04:15:02.282902: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 254.8 minutes
2026-08-16 04:15:02.288902: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:15:02.376811: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:15:02.453142: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:15:02.453732: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:15:02.497996: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:15:02.498142: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:15:02.499447: High export rate found rates in range 99p to -99p
2026-08-16 04:15:02.579701: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:15:02.579851: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:15:02.594021: Battery level now 9.44kWh, -1hr ago 9.92kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.77p, rate_forward 1.0p
2026-08-16 04:15:02.594399: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.47p, import 0.47p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:15:02.659191: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:15:02.659403: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:15:02.739648: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:15:02.772445: Today's load divergence 96.03%, in-day adjustment 85.32%, damping 0.95x, yesterday 82.97% today 96.23% blend 82.29%
2026-08-16 04:15:02.772556: Today's predicted so far 3.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.35kWh forecast extra.
2026-08-16 04:15:02.772589: Today's actual load so far 2.75kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:15:02.826099: Inverter 0: Type SK Sunsynk
2026-08-16 04:15:02.826190: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:15:02.826461: Reserve min: 7%, battery_min: 7%
2026-08-16 04:15:02.826542: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:15:02.826865: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 500W, current battery voltage 51.2V, grid power -54W, load power 548W, PV Power 0W
2026-08-16 04:15:02.827064: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:15:02.827186: Inverter 0 scheduled charge enable is False
2026-08-16 04:15:02.827233: Inverter 0 charge windows currently []
2026-08-16 04:15:02.827273: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:15:02.827452: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:15:02.827497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:15:02.827540: Inverter 0 scheduled discharge enable is False
2026-08-16 04:15:02.827732: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:15:02.827775: Inverter 0 discharge windows currently []
2026-08-16 04:15:02.827799: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:15:02.827824: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:15:02.827859: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:15:02.898969: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:15:02.899113: Plan was last updated on 2026-08-16 04:10:00+01:00 and is now 5.0 minutes old
2026-08-16 04:15:02.899581: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:15:02.899646: Best export window [  ]
2026-08-16 04:15:02.900599: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:15:02.903783: Load divergence over 8.0 hours mean 378.37W, min 244.8W, max 864.0W, std dev 93.7W, divergence 12.38%
2026-08-16 04:15:02.923707: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:15:02.923854: LoadML is_calculating False
2026-08-16 04:15:02.923933: Creating pool of 12 processes to match your CPU count
2026-08-16 04:15:03.059672: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 377.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.32kWh, PV 0.0kWh
2026-08-16 04:15:03.203035: Battery has 15.67 hours left - now at 9.44kWh
2026-08-16 04:15:03.249034: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 403.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:15:03.328181: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 261.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:15:03.411520: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 226.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.32kWh, PV 0.0kWh
2026-08-16 04:15:03.411616: Saving plan best values to HA entities
2026-08-16 04:15:03.589850: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:15:03.597818: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:15:03.604614: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.57kWh, house 1.52kWh, export 0.0kWh, metric 226.64p, metric10 261.63p
2026-08-16 04:15:03.691132: Marginal costs baseline metric (no standing charge): 176.6577
2026-08-16 04:15:04.004290: Marginal energy costs matrix computed: min=17.84 max=31.64
2026-08-16 04:15:04.091933: Rate array import [{'start': 255, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 255, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:15:04.093176: - Your estimated bill for today is £1.27 and tomorrow is £7.32
2026-08-16 04:15:04.093267: - Import rates are expensive (24.1p - 27.0p) for the next 6 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:15:04.093329: - The battery is currently at 59% and is in eco mode for the next 6 and three quarters hours.
2026-08-16 04:15:04.093371: - For the next 48 hours there will be no solar generation.
2026-08-16 04:15:04.093404: - You will run out of battery in 27 hours.
2026-08-16 04:15:04.093432: - Your next charge slot will be in 6 and three quarters hours where import rates will be free (0.0p).
2026-08-16 04:15:04.093466: 
2026-08-16 04:15:04.159384: Plan calculation took 1.26 seconds
2026-08-16 04:15:04.162861: No high rate period found
2026-08-16 04:15:04.219813: Import threshold used for optimisation was 24.94p
2026-08-16 04:15:04.282912: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 94: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:15:04.290567: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 59%, target 100%
2026-08-16 04:15:04.290726: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:15:04.290868: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:15:04.291114: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:15:04.291202: No export window planned
2026-08-16 04:15:04.291301: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:15:04.291345: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:15:04.291463: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:15:04.291623: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:15:04.291678: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:15:04.291738: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:15:04.291819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291878: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291899: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.291983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:15:04.292190: Inverter 0 count register writes 0
2026-08-16 04:15:04.314467: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:15:04.322347: Total inverter register writes now 826
2026-08-16 04:15:04.361145: Info: Completed run status Demand
2026-08-16 04:15:04.367948: Info: record_status Demand
2026-08-16 04:15:04.376077: Saved current settings to /config/predbat_config.json
2026-08-16 04:15:04.376472: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:15:41.503819: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:15:41.504083: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:15:41.504132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:15:41.504272: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:15:41.504333: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:15:41.504358: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:15:41.504376: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:16:51.705113: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 04:16:53.090247: Processing 1297 30-minute periods for power integration
2026-08-16 04:16:53.205513: ML Component: Car charging hold False, car energy reported load False
2026-08-16 04:16:53.317068: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:16:53.431730: ML Temperature data points: 48706
2026-08-16 04:16:53.749404: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 04:16:53.797904: ML Component: Data fetch completed, load data age 57.0 days, 16603 data points
2026-08-16 04:16:53.798032: ML Component: No training needed, model age is 0.81 hours
2026-08-16 04:16:53.798097: ML Component: Generating predictions load data age 57.0 days, 16603 data points
2026-08-16 04:16:53.964562: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0413 max_dow {0: 0.10210624996256083, 1: 0.10689687554407865, 2: 0.11675312483031303, 3: 0.12371874963529408, 4: 0.16831249989941716, 5: 0.09602222218207186, 6: 0.10714375132601708}
2026-08-16 04:16:58.964152: ML Component: Generated 576 predictions (total 29.06 kWh over 48h)
2026-08-16 04:16:59.029446: ML Component: Prediction cycle completed
2026-08-16 04:16:59.157433: ML Component: Saved 16603 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 04:17:41.776254: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:17:41.776620: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:17:41.776709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:17:41.776928: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:17:41.777030: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:17:41.777076: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:17:41.777110: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:19:42.027532: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:19:42.027783: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:19:42.027821: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:19:42.027964: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:19:42.028005: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:19:42.028027: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:19:42.028046: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:20:00.130615: --------------- PredBat - update at 2026-08-16 04:20:00+01:00 with clock skew 0 minutes, minutes now 260
2026-08-16 04:20:00.131396: Saved current settings to /config/predbat_config.json
2026-08-16 04:20:00.131516: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 04:20:00.131620: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:20:00.131700: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:20:00.151298: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:20:00.151441: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:20:00.151605: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:20:00.152092: Cars 1 charging from battery False 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-16 04:20:00.152202: Predbat mode is set to Control charge & discharge
2026-08-16 04:20:00.325867: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:20:00.326012: Using load_power data to fill gaps in load_today data
2026-08-16 04:20:01.049037: Processing 721 30-minute periods for power integration
2026-08-16 04:20:01.204851: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:20:01.205006: Car charging hold False, threshold 6.0kWh
2026-08-16 04:20:01.205053: Current data so far today: load 2.85kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:20:01.217248: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:20:01.217619: Standing charge is set to 49.98p
2026-08-16 04:20:01.244318: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:20:01.244461: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:20:01.244719: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 259.9 minutes
2026-08-16 04:20:01.245328: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 259.8 minutes
2026-08-16 04:20:01.248846: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:20:01.323235: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:20:01.373683: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:20:01.374010: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:20:01.409585: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:20:01.409693: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:20:01.410803: High export rate found rates in range 99p to -99p
2026-08-16 04:20:01.474882: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:20:01.475010: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:20:01.486043: Battery level now 9.44kWh, -1hr ago 9.92kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.77p, rate_forward 1.0p
2026-08-16 04:20:01.486356: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.35p, import 0.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:20:01.539373: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:20:01.539505: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:20:01.603267: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:20:01.621950: Today's load divergence 96.09%, in-day adjustment 85.37%, damping 0.95x, yesterday 82.97% today 96.28% blend 81.94%
2026-08-16 04:20:01.622045: Today's predicted so far 3.39kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.39kWh forecast extra.
2026-08-16 04:20:01.622072: Today's actual load so far 2.8kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:20:01.668721: Inverter 0: Type SK Sunsynk
2026-08-16 04:20:01.668819: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:20:01.669076: Reserve min: 7%, battery_min: 7%
2026-08-16 04:20:01.669196: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:20:01.669577: Inverter 0 SoC: 9.33kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 454W, current battery voltage 51.2V, grid power -56W, load power 503W, PV Power 0W
2026-08-16 04:20:01.669757: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:20:01.669848: Inverter 0 scheduled charge enable is False
2026-08-16 04:20:01.669878: Inverter 0 charge windows currently []
2026-08-16 04:20:01.669907: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:20:01.670013: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:20:01.670051: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:20:01.670109: Inverter 0 scheduled discharge enable is False
2026-08-16 04:20:01.670235: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:20:01.670272: Inverter 0 discharge windows currently []
2026-08-16 04:20:01.670295: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:20:01.670315: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:20:01.670333: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:20:01.735325: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:20:01.735459: Plan was last updated on 2026-08-16 04:10:00+01:00 and is now 10.0 minutes old
2026-08-16 04:20:01.735709: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:20:01.735753: Best export window [  ]
2026-08-16 04:20:01.736585: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:20:01.740031: Load divergence over 8.0 hours mean 376.9W, min 252.0W, max 891.6W, std dev 90.8W, divergence 12.05%
2026-08-16 04:20:01.758593: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:20:01.758712: LoadML is_calculating False
2026-08-16 04:20:01.758775: Creating pool of 12 processes to match your CPU count
2026-08-16 04:20:01.894527: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 380.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.38kWh, PV 0.0kWh
2026-08-16 04:20:02.075460: Battery has 15.5 hours left - now at 9.33kWh
2026-08-16 04:20:02.152132: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 406.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.21kWh, PV 0.0kWh
2026-08-16 04:20:02.252528: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 272.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.21kWh, PV 0.0kWh
2026-08-16 04:20:02.354409: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 239.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.38kWh, PV 0.0kWh
2026-08-16 04:20:02.354513: Saving plan best values to HA entities
2026-08-16 04:20:02.562784: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:20:02.569789: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:20:02.576187: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.12kWh, house 1.51kWh, export 0.0kWh, metric 239.47p, metric10 272.88p
2026-08-16 04:20:02.664733: Marginal costs baseline metric (no standing charge): 189.4847
2026-08-16 04:20:02.939058: Marginal energy costs matrix computed: min=15.76 max=31.84
2026-08-16 04:20:03.026151: Rate array import [{'start': 260, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 260, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:20:03.026900: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 04:20:03.026948: - Import rates are expensive (24.1p - 27.0p) for the next 6 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:20:03.026971: - The battery is currently at 58% and is in eco mode for the next 6 and three quarters hours.
2026-08-16 04:20:03.026989: - For the next 48 hours there will be no solar generation.
2026-08-16 04:20:03.027030: - You will run out of battery in 27 hours.
2026-08-16 04:20:03.027049: - Your next charge slot will be in 6 and three quarters hours where import rates will be free (0.0p).
2026-08-16 04:20:03.027066: 
2026-08-16 04:20:03.085239: Plan calculation took 1.35 seconds
2026-08-16 04:20:03.088634: No high rate period found
2026-08-16 04:20:03.145790: Import threshold used for optimisation was 24.94p
2026-08-16 04:20:03.214067: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 94: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:20:03.224313: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:20:03.224519: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:20:03.224647: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:20:03.225037: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:20:03.225181: No export window planned
2026-08-16 04:20:03.225323: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:20:03.225379: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:20:03.225536: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:20:03.225766: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:20:03.225837: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:20:03.225907: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:20:03.226011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226147: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:03.226498: Inverter 0 count register writes 0
2026-08-16 04:20:03.254644: 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-16 04:20:03.254943: Recompute is saving previous plan...
2026-08-16 04:20:03.259594: Best charge window [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0% ]
2026-08-16 04:20:03.259723: Best export window [  ]
2026-08-16 04:20:03.260588: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:20:03.265152: Load divergence over 8.0 hours mean 376.9W, min 252.0W, max 891.6W, std dev 90.8W, divergence 12.05%
2026-08-16 04:20:03.287025: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:20:03.287167: LoadML is_calculating False
2026-08-16 04:20:03.287238: Creating pool of 12 processes to match your CPU count
2026-08-16 04:20:03.391823: 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(0.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-16 04:20:03.393952: Optimise levels pass started at 2026-08-16 04:20:03
2026-08-16 04:20:03.394023: Optimise all windows, total charge 94 export 1
2026-08-16 04:20:04.105565: >> Region optimisation pass width 960 gives best_metric 470.56p, best_cost 482.68p, best_cycle 39.32kWh, best_import 24.62kWh
2026-08-16 04:20:04.524409: >> Region optimisation pass width 480 gives best_metric 470.56p, best_cost 482.68p, best_cycle 39.32kWh, best_import 24.62kWh
2026-08-16 04:20:05.008613: >> Region optimisation pass width 240 gives best_metric 470.56p, best_cost 482.68p, best_cycle 39.32kWh, best_import 24.62kWh
2026-08-16 04:20:06.717324: >> Region optimisation pass width 120 gives best_metric 469.31p, best_cost 481.61p, best_cycle 40.6kWh, best_import 24.71kWh
2026-08-16 04:20:06.717873: Calculated end_record as 08-17 11:00:00 based on best_price 22.95p, next_charge_start 08-16 11:00:00, max_windows 61
2026-08-16 04:20:06.718090: Optimise levels pass ended at 2026-08-16 04:20:06, duration 3.3 seconds tried 329 combinations
2026-08-16 04:20:06.718202: Set best_price_charge_level 24.6p, best_price_export_level 0p, best_price_charge 22.95p, best_cost_export 0p, best_metric 469.31p, best_keep 0kWh, best_cycle 40.6kWh, best_carbon 0kg, best_import 24.71kWh
2026-08-16 04:20:06.742190: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.95p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 16.0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:20:12.883713: Tweak plan optimisation started metric 150.92p, cost 165.99p
2026-08-16 04:20:13.266080: Tweak optimisation finished metric 150.92p, cost 165.99p, metric_keep 0kWh, cycle 21.69kWh, carbon 0kg, import 10.73kWh, changed 8 window(s)
2026-08-16 04:20:13.294558: Swap charge optimisation started metric 150.92p, cost 165.99p, min_improvement_swap 0.1p
2026-08-16 04:20:20.192501: Swap charge optimisation finished metric 150.92p, cost 165.99p
2026-08-16 04:20:20.329728: Pruned 3 dead plan slot(s) in 11 trial(s), nominal metric 145.39p -> 145.39p, plan now metric 151.08p, cost 165.99p, cycle 21.69kWh, import 10.73kWh
2026-08-16 04:20:20.342136: Raw charge windows [ 16-08 04:00:00 - 16-08 04:30:00 @ 26.27p 0%, 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100% ] reserve 1.12
2026-08-16 04:20:20.342845: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:20:20.343152: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:20:20.343414: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:20:20.384149: Previous plan best metric is 150.96 (cost 166.06) and new plan best metric is 150.92 (cost 165.99)
2026-08-16 04:20:20.384507: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:20:20.384737: Plan valid is now true after recompute was False
2026-08-16 04:20:20.413416: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 377.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.24kWh, PV 0.0kWh
2026-08-16 04:20:20.544847: Battery has 15.5 hours left - now at 9.33kWh
2026-08-16 04:20:20.605299: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 403.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.07kWh, PV 0.0kWh
2026-08-16 04:20:20.696829: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 252.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.07kWh, PV 0.0kWh
2026-08-16 04:20:20.770851: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 216.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.24kWh, PV 0.0kWh
2026-08-16 04:20:20.770933: Saving plan best values to HA entities
2026-08-16 04:20:20.941729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:20:20.948282: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:20:20.954764: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.15kWh, house 1.51kWh, export 0.0kWh, metric 216.05p, metric10 252.67p
2026-08-16 04:20:21.032582: Marginal costs baseline metric (no standing charge): 166.0633
2026-08-16 04:20:21.272929: Marginal energy costs matrix computed: min=15.76 max=31.84
2026-08-16 04:20:21.342976: Rate array import [{'start': 260, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 260, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:20:21.344171: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 04:20:21.344228: - Import rates are expensive (24.1p - 27.0p) for the next 6 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:20:21.344265: - The battery is currently at 58% and is in eco mode for the next 6 and three quarters hours.
2026-08-16 04:20:21.344281: - For the next 48 hours there will be no solar generation.
2026-08-16 04:20:21.344296: - You will run out of battery in 27 hours.
2026-08-16 04:20:21.344314: - Your next charge slot will be in 6 and three quarters hours where import rates will be free (0.0p).
2026-08-16 04:20:21.344328: 
2026-08-16 04:20:21.394864: Plan calculation took 18.14 seconds
2026-08-16 04:20:21.395370: Inverter 0: Type SK Sunsynk
2026-08-16 04:20:21.395461: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:20:21.395721: Reserve min: 7%, battery_min: 7%
2026-08-16 04:20:21.395802: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:20:21.396147: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 447W, current battery voltage 51.2V, grid power -54W, load power 494W, PV Power 0W
2026-08-16 04:20:21.396478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:20:21.396622: Inverter 0 scheduled charge enable is False
2026-08-16 04:20:21.396686: Inverter 0 charge windows currently []
2026-08-16 04:20:21.396747: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:20:21.396916: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:20:21.397130: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:20:21.397229: Inverter 0 scheduled discharge enable is False
2026-08-16 04:20:21.397476: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:20:21.397524: Inverter 0 discharge windows currently []
2026-08-16 04:20:21.397552: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:20:21.397595: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:20:21.397633: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:20:21.459674: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:20:21.459862: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:20:21.459962: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:20:21.460248: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:20:21.460375: No export window planned
2026-08-16 04:20:21.460554: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:20:21.460600: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:20:21.460827: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:20:21.461094: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:20:21.461167: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:20:21.461259: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:20:21.461421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461744: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.461993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.462029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.462088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.462137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.462177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:20:21.462205: Inverter 0 count register writes 0
2026-08-16 04:20:21.489662: Total inverter register writes now 826
2026-08-16 04:20:21.522689: Info: Completed run status Demand
2026-08-16 04:20:21.528855: Info: record_status Demand
2026-08-16 04:20:21.536572: Saved current settings to /config/predbat_config.json
2026-08-16 04:20:21.536934: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:20:56.651333: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:20:56.651625: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:20:56.651675: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:20:56.651837: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:20:56.651881: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:20:56.651914: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:20:56.651947: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:22:56.884472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:22:56.884802: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:22:56.884863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:22:56.885123: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:22:56.885177: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:22:56.885217: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:22:56.885256: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:24:57.127326: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:24:57.127648: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:24:57.127702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:24:57.127911: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:24:57.127984: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:24:57.128056: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:24:57.128101: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:25:00.228547: --------------- PredBat - update at 2026-08-16 04:25:00+01:00 with clock skew 0 minutes, minutes now 265
2026-08-16 04:25:00.229423: Saved current settings to /config/predbat_config.json
2026-08-16 04:25:00.229570: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 04:25:00.229651: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:25:00.229764: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:25:00.248686: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:25:00.248829: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:25:00.249061: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:25:00.249674: Cars 1 charging from battery False 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-16 04:25:00.249800: Predbat mode is set to Control charge & discharge
2026-08-16 04:25:00.422877: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:25:00.423025: Using load_power data to fill gaps in load_today data
2026-08-16 04:25:01.284196: Processing 721 30-minute periods for power integration
2026-08-16 04:25:01.483099: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:25:01.483267: Car charging hold False, threshold 6.0kWh
2026-08-16 04:25:01.483315: Current data so far today: load 2.9kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:25:01.497960: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:25:01.498572: Standing charge is set to 49.98p
2026-08-16 04:25:01.524085: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:25:01.524193: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:25:01.524422: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 264.9 minutes
2026-08-16 04:25:01.524848: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 264.8 minutes
2026-08-16 04:25:01.527772: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:25:01.611645: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:25:01.662559: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:25:01.663050: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:25:01.697759: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:25:01.697867: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:25:01.698891: High export rate found rates in range 99p to -99p
2026-08-16 04:25:01.763433: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:25:01.763532: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:25:01.776092: Battery level now 9.33kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -0.43p, change today -2.88p, rate_forward 1.0p
2026-08-16 04:25:01.776446: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.24p, import 0.24p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:25:01.818721: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:25:01.818830: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:25:01.882491: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:25:01.905869: Today's load divergence 96.35%, in-day adjustment 85.47%, damping 0.95x, yesterday 82.97% today 96.53% blend 81.6%
2026-08-16 04:25:01.905960: Today's predicted so far 3.4kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.4kWh forecast extra.
2026-08-16 04:25:01.905992: Today's actual load so far 2.85kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:25:01.938248: Inverter 0: Type SK Sunsynk
2026-08-16 04:25:01.938329: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:25:01.938500: Reserve min: 7%, battery_min: 7%
2026-08-16 04:25:01.938563: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:25:01.938791: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 498W, current battery voltage 51.2V, grid power -55W, load power 546W, PV Power 0W
2026-08-16 04:25:01.938924: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:25:01.938994: Inverter 0 scheduled charge enable is False
2026-08-16 04:25:01.939019: Inverter 0 charge windows currently []
2026-08-16 04:25:01.939040: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:25:01.939122: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:25:01.939152: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:25:01.939181: Inverter 0 scheduled discharge enable is False
2026-08-16 04:25:01.939282: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:25:01.939312: Inverter 0 discharge windows currently []
2026-08-16 04:25:01.939330: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:25:01.939345: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:25:01.939359: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:25:01.990950: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:25:01.991047: Plan was last updated on 2026-08-16 04:20:00+01:00 and is now 5.0 minutes old
2026-08-16 04:25:01.991359: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:25:01.991417: Best export window [  ]
2026-08-16 04:25:01.992114: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:25:01.994686: Load divergence over 8.0 hours mean 375.32W, min 273.0W, max 912.0W, std dev 90.39W, divergence 12.04%
2026-08-16 04:25:02.009948: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:25:02.010064: LoadML is_calculating False
2026-08-16 04:25:02.010565: Creating pool of 12 processes to match your CPU count
2026-08-16 04:25:02.116483: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 379.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.34kWh, PV 0.0kWh
2026-08-16 04:25:02.243519: Battery has 15.33 hours left - now at 9.28kWh
2026-08-16 04:25:02.281431: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 405.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.17kWh, PV 0.0kWh
2026-08-16 04:25:02.375026: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 263.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 21.17kWh, PV 0.0kWh
2026-08-16 04:25:02.454132: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 228.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 20.34kWh, PV 0.0kWh
2026-08-16 04:25:02.454231: Saving plan best values to HA entities
2026-08-16 04:25:02.614650: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:25:02.619548: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:25:02.624602: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.66kWh, house 1.51kWh, export 0.0kWh, metric 228.39p, metric10 263.54p
2026-08-16 04:25:02.695782: Marginal costs baseline metric (no standing charge): 178.4088
2026-08-16 04:25:02.966735: Marginal energy costs matrix computed: min=13.78 max=32.03
2026-08-16 04:25:03.044540: Rate array import [{'start': 265, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 265, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:25:03.045163: - Your estimated bill for today is £1.29 and tomorrow is £7.33
2026-08-16 04:25:03.045205: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:25:03.045224: - The battery is currently at 58% and is in eco mode for the next 6 and a half hours.
2026-08-16 04:25:03.045239: - For the next 48 hours there will be no solar generation.
2026-08-16 04:25:03.045253: - You will run out of battery in 27 hours.
2026-08-16 04:25:03.045267: - Your next charge slot will be in 6 and a half hours where import rates will be free (0.0p).
2026-08-16 04:25:03.045282: 
2026-08-16 04:25:03.100729: Plan calculation took 1.11 seconds
2026-08-16 04:25:03.103448: No high rate period found
2026-08-16 04:25:03.161105: Import threshold used for optimisation was 24.94p
2026-08-16 04:25:03.219532: Low import rate windows [0: 08-16 04:00:00 - 08-16 04:30:00 @ 26.27, 1: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 2: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 3: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 4: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 5: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 6: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 7: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 8: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 9: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 10: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 11: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 12: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 13: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 14: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 15: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 16: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 17: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 18: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 19: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 20: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 21: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 22: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 23: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 24: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 25: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 26: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 27: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 28: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 29: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 30: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 31: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 32: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 33: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 34: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 35: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 36: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 37: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 38: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 39: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 40: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 41: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 42: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 43: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 44: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 45: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 46: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 47: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 48: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 49: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 50: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 51: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 52: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 53: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 54: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 55: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 56: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 57: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 58: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 59: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 60: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 61: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 62: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 63: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 64: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 65: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 66: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 67: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 68: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 69: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 70: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 71: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 72: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 73: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 74: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 75: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 76: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 77: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 78: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 79: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 80: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 81: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 82: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 83: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 84: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 85: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 86: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 87: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 88: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 89: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 90: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 91: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 92: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 93: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 94: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:25:03.226391: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:25:03.226532: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:25:03.226665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:25:03.227152: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:25:03.227256: No export window planned
2026-08-16 04:25:03.227394: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:25:03.227433: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:25:03.227573: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:25:03.227764: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:25:03.227828: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:25:03.227903: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:25:03.228004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228049: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228109: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228135: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228189: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228253: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:25:03.228466: Inverter 0 count register writes 0
2026-08-16 04:25:03.246602: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:25:03.252689: Total inverter register writes now 826
2026-08-16 04:25:03.285520: Info: Completed run status Demand
2026-08-16 04:25:03.291225: Info: record_status Demand
2026-08-16 04:25:03.297924: Saved current settings to /config/predbat_config.json
2026-08-16 04:25:03.298317: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:25:42.419777: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:25:42.420039: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:25:42.420084: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:25:42.420226: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:25:42.420271: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:25:42.420309: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:25:42.420381: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:27:56.678930: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:27:56.679294: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:27:56.679369: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:27:56.679606: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:27:56.679660: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:27:56.679701: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:27:56.679737: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:29:56.911999: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:29:56.912357: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:29:56.912438: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:29:56.912670: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:29:56.912727: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:29:56.912768: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:29:56.912803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:30:00.989836: --------------- PredBat - update at 2026-08-16 04:30:00+01:00 with clock skew 0 minutes, minutes now 270
2026-08-16 04:30:00.990663: Saved current settings to /config/predbat_config.json
2026-08-16 04:30:00.990873: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 04:30:00.991044: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:30:00.991132: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:30:01.015317: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:30:01.015483: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:30:01.015735: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:30:01.016337: Cars 1 charging from battery False 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-16 04:30:01.016480: Predbat mode is set to Control charge & discharge
2026-08-16 04:30:01.309415: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:30:01.309579: Using load_power data to fill gaps in load_today data
2026-08-16 04:30:02.205315: Processing 721 30-minute periods for power integration
2026-08-16 04:30:02.373207: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:30:02.373345: Car charging hold False, threshold 6.0kWh
2026-08-16 04:30:02.373411: Current data so far today: load 2.95kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:30:02.391969: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:30:02.392497: Standing charge is set to 49.98p
2026-08-16 04:30:02.423338: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:30:02.423512: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:30:02.423888: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 270.0 minutes
2026-08-16 04:30:02.424681: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 269.8 minutes
2026-08-16 04:30:02.428116: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:30:02.500039: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:30:02.551444: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:30:02.551880: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:30:02.586646: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:30:02.586769: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:30:02.587778: High export rate found rates in range 99p to -99p
2026-08-16 04:30:02.657704: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:30:02.657857: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:30:02.672490: Battery level now 9.28kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.93p, rate_forward 1.0p
2026-08-16 04:30:02.672893: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.12p, import 0.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:30:02.739291: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:30:02.739495: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:30:02.829551: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:30:02.856073: Today's load divergence 96.1%, in-day adjustment 85.47%, damping 0.95x, yesterday 82.97% today 96.3% blend 81.25%
2026-08-16 04:30:02.856179: Today's predicted so far 3.54kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.54kWh forecast extra.
2026-08-16 04:30:02.856212: Today's actual load so far 2.95kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:30:02.894709: Inverter 0: Type SK Sunsynk
2026-08-16 04:30:02.894796: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:30:02.894972: Reserve min: 7%, battery_min: 7%
2026-08-16 04:30:02.895039: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:30:02.895291: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 469W, current battery voltage 51.2V, grid power -55W, load power 516W, PV Power 0W
2026-08-16 04:30:02.895453: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:30:02.895532: Inverter 0 scheduled charge enable is False
2026-08-16 04:30:02.895556: Inverter 0 charge windows currently []
2026-08-16 04:30:02.895577: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:30:02.895699: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:30:02.895731: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:30:02.895761: Inverter 0 scheduled discharge enable is False
2026-08-16 04:30:02.895864: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:30:02.895895: Inverter 0 discharge windows currently []
2026-08-16 04:30:02.895914: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:30:02.895930: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:30:02.895948: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:30:02.959712: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:30:02.959828: Plan was last updated on 2026-08-16 04:20:00+01:00 and is now 10.0 minutes old
2026-08-16 04:30:02.960082: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:30:02.960128: Best export window [  ]
2026-08-16 04:30:02.960927: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:30:02.964200: Load divergence over 8.0 hours mean 375.42W, min 223.8W, max 1097.4W, std dev 100.29W, divergence 13.36%
2026-08-16 04:30:02.982717: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:30:02.982836: LoadML is_calculating False
2026-08-16 04:30:02.982906: Creating pool of 12 processes to match your CPU count
2026-08-16 04:30:03.113761: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 380.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.42kWh, PV 0.0kWh
2026-08-16 04:30:03.266991: Battery has 15.33 hours left - now at 9.28kWh
2026-08-16 04:30:03.314980: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 405.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.25kWh, PV 0.0kWh
2026-08-16 04:30:03.405947: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 272.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.25kWh, PV 0.0kWh
2026-08-16 04:30:03.506115: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 239.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.42kWh, PV 0.0kWh
2026-08-16 04:30:03.506296: Saving plan best values to HA entities
2026-08-16 04:30:03.724623: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:30:03.732016: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:30:03.739213: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.08kWh, house 1.53kWh, export 0.0kWh, metric 239.22p, metric10 272.51p
2026-08-16 04:30:03.824085: Marginal costs baseline metric (no standing charge): 189.2324
2026-08-16 04:30:04.113341: Marginal energy costs matrix computed: min=11.54 max=32.23
2026-08-16 04:30:04.202223: Rate array import [{'start': 270, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 270, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:30:04.203047: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 04:30:04.203115: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:30:04.203160: - The battery is currently at 58% and is in eco mode for the next 6 and a half hours.
2026-08-16 04:30:04.203182: - For the next 48 hours there will be no solar generation.
2026-08-16 04:30:04.203199: - You will run out of battery in 27 hours.
2026-08-16 04:30:04.203218: - Your next charge slot will be in 6 and a half hours where import rates will be free (0.0p).
2026-08-16 04:30:04.203244: 
2026-08-16 04:30:04.273782: Plan calculation took 1.31 seconds
2026-08-16 04:30:04.278926: No high rate period found
2026-08-16 04:30:04.348597: Import threshold used for optimisation was 24.94p
2026-08-16 04:30:04.425372: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27]
2026-08-16 04:30:04.434522: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:30:04.434722: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:30:04.434895: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:30:04.435240: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:30:04.435398: No export window planned
2026-08-16 04:30:04.435635: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:30:04.435693: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:30:04.435941: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:30:04.436215: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:30:04.436314: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:30:04.436457: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:30:04.436615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.436690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.436751: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.436807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.436863: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.436925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:04.437542: Inverter 0 count register writes 0
2026-08-16 04:30:04.464758: 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-16 04:30:04.465149: Recompute is saving previous plan...
2026-08-16 04:30:04.471746: Best charge window [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0% ]
2026-08-16 04:30:04.471910: Best export window [  ]
2026-08-16 04:30:04.473114: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:30:04.479268: Load divergence over 8.0 hours mean 375.42W, min 223.8W, max 1097.4W, std dev 100.29W, divergence 13.36%
2026-08-16 04:30:04.505476: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:30:04.505629: LoadML is_calculating False
2026-08-16 04:30:04.505711: Creating pool of 12 processes to match your CPU count
2026-08-16 04:30:04.617255: 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(0.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-16 04:30:04.619751: Optimise levels pass started at 2026-08-16 04:30:04
2026-08-16 04:30:04.619837: Optimise all windows, total charge 94 export 1
2026-08-16 04:30:06.016161: >> Region optimisation pass width 960 gives best_metric 473.22p, best_cost 485.31p, best_cycle 39.2kWh, best_import 24.71kWh
2026-08-16 04:30:06.939124: >> Region optimisation pass width 480 gives best_metric 473.22p, best_cost 485.31p, best_cycle 39.2kWh, best_import 24.71kWh
2026-08-16 04:30:07.733772: >> Region optimisation pass width 240 gives best_metric 473.22p, best_cost 485.31p, best_cycle 39.2kWh, best_import 24.71kWh
2026-08-16 04:30:10.011789: >> Region optimisation pass width 120 gives best_metric 471.94p, best_cost 484.22p, best_cycle 40.49kWh, best_import 24.8kWh
2026-08-16 04:30:10.012772: Calculated end_record as 08-17 11:00:00 based on best_price 22.95p, next_charge_start 08-16 11:00:00, max_windows 60
2026-08-16 04:30:10.013064: Optimise levels pass ended at 2026-08-16 04:30:10, duration 5.4 seconds tried 349 combinations
2026-08-16 04:30:10.013197: Set best_price_charge_level 24.6p, best_price_export_level 0p, best_price_charge 22.95p, best_cost_export 0p, best_metric 471.94p, best_keep 0kWh, best_cycle 40.49kWh, best_carbon 0kg, best_import 24.8kWh
2026-08-16 04:30:10.040018: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.95p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:30:15.834903: Tweak plan optimisation started metric 150.53p, cost 165.76p
2026-08-16 04:30:16.152853: Tweak optimisation finished metric 150.53p, cost 165.76p, metric_keep 0kWh, cycle 20.65kWh, carbon 0kg, import 10.64kWh, changed 8 window(s)
2026-08-16 04:30:16.173245: Swap charge optimisation started metric 150.53p, cost 165.76p, min_improvement_swap 0.1p
2026-08-16 04:30:22.064541: Swap charge optimisation finished metric 150.53p, cost 165.76p
2026-08-16 04:30:22.163096: Pruned 2 dead plan slot(s) in 10 trial(s), nominal metric 145.16p -> 145.16p, plan now metric 150.87p, cost 165.76p, cycle 20.65kWh, import 10.64kWh
2026-08-16 04:30:22.172884: Raw charge windows [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100% ] reserve 1.12
2026-08-16 04:30:22.173464: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:30:22.173715: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:30:22.173908: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 04:30:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:30:22.204602: Previous plan best metric is 150.64 (cost 165.76) and new plan best metric is 150.53 (cost 165.76)
2026-08-16 04:30:22.204843: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:30:22.205017: Plan valid is now true after recompute was False
2026-08-16 04:30:22.227844: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 376.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.28kWh, PV 0.0kWh
2026-08-16 04:30:22.337942: Battery has 15.33 hours left - now at 9.28kWh
2026-08-16 04:30:22.377032: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 402.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.11kWh, PV 0.0kWh
2026-08-16 04:30:22.461707: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 252.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.11kWh, PV 0.0kWh
2026-08-16 04:30:22.559069: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 215.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.28kWh, PV 0.0kWh
2026-08-16 04:30:22.559171: Saving plan best values to HA entities
2026-08-16 04:30:22.720896: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:30:22.726554: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:30:22.732681: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.12kWh, house 1.53kWh, export 0.0kWh, metric 215.74p, metric10 252.26p
2026-08-16 04:30:22.819504: Marginal costs baseline metric (no standing charge): 165.76
2026-08-16 04:30:23.112809: Marginal energy costs matrix computed: min=11.54 max=32.23
2026-08-16 04:30:23.193675: Rate array import [{'start': 270, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 270, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:30:23.194395: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 04:30:23.194450: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:30:23.194493: - The battery is currently at 58% and is in eco mode for the next 6 and a half hours.
2026-08-16 04:30:23.194512: - For the next 48 hours there will be no solar generation.
2026-08-16 04:30:23.194530: - You will run out of battery in 27 hours.
2026-08-16 04:30:23.194547: - Your next charge slot will be in 6 and a half hours where import rates will be free (0.0p).
2026-08-16 04:30:23.194564: 
2026-08-16 04:30:23.259285: Plan calculation took 18.79 seconds
2026-08-16 04:30:23.259683: Inverter 0: Type SK Sunsynk
2026-08-16 04:30:23.259740: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:30:23.259976: Reserve min: 7%, battery_min: 7%
2026-08-16 04:30:23.260061: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:30:23.260430: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 496W, current battery voltage 51.2V, grid power -54W, load power 542W, PV Power 0W
2026-08-16 04:30:23.260681: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:30:23.260794: Inverter 0 scheduled charge enable is False
2026-08-16 04:30:23.260836: Inverter 0 charge windows currently []
2026-08-16 04:30:23.260867: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:30:23.261022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:30:23.261065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:30:23.261104: Inverter 0 scheduled discharge enable is False
2026-08-16 04:30:23.261241: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:30:23.261279: Inverter 0 discharge windows currently []
2026-08-16 04:30:23.261303: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:30:23.261325: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:30:23.261343: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:30:23.328637: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:30:23.328801: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:30:23.328878: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:30:23.329098: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:30:23.329191: No export window planned
2026-08-16 04:30:23.329306: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:30:23.329336: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:30:23.329488: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:30:23.329656: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:30:23.329712: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:30:23.329779: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:30:23.329881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.329926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.329954: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:30:23.330340: Inverter 0 count register writes 0
2026-08-16 04:30:23.354673: Total inverter register writes now 826
2026-08-16 04:30:23.389874: Info: Completed run status Demand
2026-08-16 04:30:23.397903: Info: record_status Demand
2026-08-16 04:30:23.407571: Saved current settings to /config/predbat_config.json
2026-08-16 04:30:23.407990: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:30:56.531152: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:30:56.531435: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:30:56.531491: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:30:56.531721: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:30:56.531781: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:30:56.531804: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:30:56.531821: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:32:56.750523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:32:56.750766: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:32:56.750809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:32:56.750981: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:32:56.751026: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:32:56.751047: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:32:56.751064: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:34:56.981677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:34:56.981980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:34:56.982053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:34:56.982261: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:34:56.982303: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:34:56.982324: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:34:56.982368: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:35:00.069033: --------------- PredBat - update at 2026-08-16 04:35:00+01:00 with clock skew 0 minutes, minutes now 275
2026-08-16 04:35:00.069782: Saved current settings to /config/predbat_config.json
2026-08-16 04:35:00.069933: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-16 04:35:00.070060: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:35:00.070145: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:35:00.091361: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:35:00.091518: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:35:00.091719: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:35:00.092321: Cars 1 charging from battery False 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-16 04:35:00.092460: Predbat mode is set to Control charge & discharge
2026-08-16 04:35:00.292539: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:35:00.292723: Using load_power data to fill gaps in load_today data
2026-08-16 04:35:01.144131: Processing 721 30-minute periods for power integration
2026-08-16 04:35:01.315362: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:35:01.315556: Car charging hold False, threshold 6.0kWh
2026-08-16 04:35:01.315637: Current data so far today: load 3.0kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:35:01.333016: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:35:01.333583: Standing charge is set to 49.98p
2026-08-16 04:35:01.368794: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:35:01.368889: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:35:01.369117: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 274.9 minutes
2026-08-16 04:35:01.369486: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 274.8 minutes
2026-08-16 04:35:01.372154: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:35:01.443131: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:35:01.496471: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:35:01.496884: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:35:01.535901: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:35:01.536053: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:35:01.537134: High export rate found rates in range 99p to -99p
2026-08-16 04:35:01.604666: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:35:01.604772: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:35:01.616465: Battery level now 9.28kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -2.93p, rate_forward 1.0p
2026-08-16 04:35:01.616841: 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-16 04:35:01.661304: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:35:01.661434: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:35:01.722415: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:35:01.742818: Today's load divergence 96.21%, in-day adjustment 85.54%, damping 0.95x, yesterday 82.97% today 96.4% blend 80.9%
2026-08-16 04:35:01.742899: Today's predicted so far 3.64kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.64kWh forecast extra.
2026-08-16 04:35:01.742925: Today's actual load so far 3.06kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:35:01.778683: Inverter 0: Type SK Sunsynk
2026-08-16 04:35:01.778800: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:35:01.779108: Reserve min: 7%, battery_min: 7%
2026-08-16 04:35:01.779220: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:35:01.779569: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 489W, current battery voltage 51.2V, grid power -55W, load power 536W, PV Power 0W
2026-08-16 04:35:01.779740: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:35:01.779847: Inverter 0 scheduled charge enable is False
2026-08-16 04:35:01.779875: Inverter 0 charge windows currently []
2026-08-16 04:35:01.779901: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:35:01.780015: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:35:01.780054: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:35:01.780089: Inverter 0 scheduled discharge enable is False
2026-08-16 04:35:01.780212: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:35:01.780248: Inverter 0 discharge windows currently []
2026-08-16 04:35:01.780270: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:35:01.780288: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:35:01.780313: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:35:01.835303: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:35:01.835427: Plan was last updated on 2026-08-16 04:30:00+01:00 and is now 5.0 minutes old
2026-08-16 04:35:01.835641: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:35:01.835678: Best export window [  ]
2026-08-16 04:35:01.836425: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:35:01.839064: Load divergence over 8.0 hours mean 375.34W, min 213.6W, max 1026.0W, std dev 100.03W, divergence 13.33%
2026-08-16 04:35:01.855007: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:35:01.855138: LoadML is_calculating False
2026-08-16 04:35:01.855210: Creating pool of 12 processes to match your CPU count
2026-08-16 04:35:01.968964: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 377.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:55:00, load 20.39kWh, PV 0.0kWh
2026-08-16 04:35:02.105706: Battery has 15.33 hours left - now at 9.28kWh
2026-08-16 04:35:02.151637: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 403.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.21kWh, PV 0.0kWh
2026-08-16 04:35:02.247604: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 261.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.21kWh, PV 0.0kWh
2026-08-16 04:35:02.329355: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 227.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.39kWh, PV 0.0kWh
2026-08-16 04:35:02.329477: Saving plan best values to HA entities
2026-08-16 04:35:02.529254: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 04:35:02.540257: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:35:02.546241: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.58kWh, house 1.54kWh, export 0.0kWh, metric 227.1p, metric10 261.8p
2026-08-16 04:35:02.621702: Marginal costs baseline metric (no standing charge): 177.1142
2026-08-16 04:35:02.842002: Marginal energy costs matrix computed: min=9.37 max=32.49
2026-08-16 04:35:02.909951: Rate array import [{'start': 275, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 275, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:35:02.910595: - Your estimated bill for today is £1.27 and tomorrow is £7.30
2026-08-16 04:35:02.910640: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:35:02.910660: - The battery is currently at 58% and is in eco mode for the next 6 and a half hours.
2026-08-16 04:35:02.910675: - For the next 48 hours there will be no solar generation.
2026-08-16 04:35:02.910689: - You will run out of battery in 27 hours.
2026-08-16 04:35:02.910703: - Your next charge slot will be in 6 and a half hours where import rates will be free (0.0p).
2026-08-16 04:35:02.910728: 
2026-08-16 04:35:02.968273: Plan calculation took 1.13 seconds
2026-08-16 04:35:02.971717: No high rate period found
2026-08-16 04:35:03.022444: Import threshold used for optimisation was 23.43p
2026-08-16 04:35:03.077125: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 94: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 04:35:03.085871: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 58%, target 100%
2026-08-16 04:35:03.086026: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:35:03.086167: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:35:03.086450: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:35:03.086565: No export window planned
2026-08-16 04:35:03.086685: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:35:03.086722: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:35:03.086875: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:35:03.087070: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:35:03.087134: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:35:03.087199: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:35:03.087295: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087494: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:35:03.087736: Inverter 0 count register writes 0
2026-08-16 04:35:03.103061: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:35:03.107801: Total inverter register writes now 826
2026-08-16 04:35:03.141589: Info: Completed run status Demand
2026-08-16 04:35:03.147763: Info: record_status Demand
2026-08-16 04:35:03.154016: Saved current settings to /config/predbat_config.json
2026-08-16 04:35:03.154338: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:35:42.262134: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:35:42.262475: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:35:42.262553: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:35:42.262762: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:35:42.262819: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:35:42.262859: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:35:42.262896: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:37:56.499876: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:37:56.500146: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:37:56.500201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:37:56.500351: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:37:56.500445: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:37:56.500472: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:37:56.500490: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:39:56.757407: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:39:56.757669: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:39:56.757718: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:39:56.757882: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:39:56.757922: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:39:56.757941: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:39:56.757973: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:40:00.833373: --------------- PredBat - update at 2026-08-16 04:40:00+01:00 with clock skew 0 minutes, minutes now 280
2026-08-16 04:40:00.834146: Saved current settings to /config/predbat_config.json
2026-08-16 04:40:01.092150: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:40:01.092278: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:40:01.111077: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:40:01.111189: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:40:01.111359: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:40:01.111842: Cars 1 charging from battery False 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-16 04:40:01.111946: Predbat mode is set to Control charge & discharge
2026-08-16 04:40:01.298367: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:40:01.298541: Using load_power data to fill gaps in load_today data
2026-08-16 04:40:02.240319: Processing 721 30-minute periods for power integration
2026-08-16 04:40:02.434421: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:40:02.434586: Car charging hold False, threshold 6.0kWh
2026-08-16 04:40:02.434637: Current data so far today: load 3.05kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:40:02.450069: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:40:02.450605: Standing charge is set to 49.98p
2026-08-16 04:40:02.478303: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:40:02.478418: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:40:02.478655: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 280.0 minutes
2026-08-16 04:40:02.479091: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 279.8 minutes
2026-08-16 04:40:02.482111: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:40:02.577932: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:40:02.648866: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:40:02.649461: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:40:02.702489: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:40:02.702621: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:40:02.703828: High export rate found rates in range 99p to -99p
2026-08-16 04:40:02.788267: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:40:02.788406: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:40:02.801922: Battery level now 9.28kWh, -1hr ago 9.73kWh, at midnight 12.21kWh, battery value change in the last hour -0.45p, change today -2.93p, rate_forward 1.0p
2026-08-16 04:40:02.802539: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:40:02.856001: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:40:02.856156: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:40:02.935171: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:40:02.962417: Today's load divergence 96.29%, in-day adjustment 85.6%, damping 0.95x, yesterday 82.97% today 96.48% blend 80.56%
2026-08-16 04:40:02.962547: Today's predicted so far 3.63kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.63kWh forecast extra.
2026-08-16 04:40:02.962579: Today's actual load so far 3.07kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:40:03.009252: Inverter 0: Type SK Sunsynk
2026-08-16 04:40:03.009352: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:40:03.009596: Reserve min: 7%, battery_min: 7%
2026-08-16 04:40:03.009685: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:40:03.009968: Inverter 0 SoC: 9.14kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 503W, current battery voltage 51.2V, grid power -54W, load power 548W, PV Power 0W
2026-08-16 04:40:03.010136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:40:03.010229: Inverter 0 scheduled charge enable is False
2026-08-16 04:40:03.010259: Inverter 0 charge windows currently []
2026-08-16 04:40:03.010289: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:40:03.010399: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:40:03.010450: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:40:03.010511: Inverter 0 scheduled discharge enable is False
2026-08-16 04:40:03.010712: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:40:03.010770: Inverter 0 discharge windows currently []
2026-08-16 04:40:03.010799: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:40:03.010844: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:40:03.010888: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:40:03.088153: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:40:03.088323: Plan was last updated on 2026-08-16 04:30:00+01:00 and is now 10.0 minutes old
2026-08-16 04:40:03.088607: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:40:03.088654: Best export window [  ]
2026-08-16 04:40:03.089504: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:40:03.092619: Load divergence over 8.0 hours mean 373.78W, min 222.6W, max 708.0W, std dev 83.93W, divergence 11.23%
2026-08-16 04:40:03.111474: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:40:03.111605: LoadML is_calculating False
2026-08-16 04:40:03.111672: Creating pool of 12 processes to match your CPU count
2026-08-16 04:40:03.244444: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 382.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.46kWh, PV 0.0kWh
2026-08-16 04:40:03.379606: Battery has 15.08 hours left - now at 9.14kWh
2026-08-16 04:40:03.422481: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 407.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.28kWh, PV 0.0kWh
2026-08-16 04:40:03.494676: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 274.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.28kWh, PV 0.0kWh
2026-08-16 04:40:03.574235: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 240.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.46kWh, PV 0.0kWh
2026-08-16 04:40:03.574323: Saving plan best values to HA entities
2026-08-16 04:40:03.736408: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:40:03.741515: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:40:03.746313: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.14kWh, house 1.54kWh, export 0.0kWh, metric 240.61p, metric10 274.09p
2026-08-16 04:40:03.815925: Marginal costs baseline metric (no standing charge): 190.6297
2026-08-16 04:40:04.050770: Marginal energy costs matrix computed: min=7.58 max=32.74
2026-08-16 04:40:04.132849: Rate array import [{'start': 280, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 280, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:40:04.133624: - Your estimated bill for today is £1.29 and tomorrow is £7.31
2026-08-16 04:40:04.133678: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:40:04.133702: - The battery is currently at 57% and is in eco mode for the next 6 and a quarter hours.
2026-08-16 04:40:04.133741: - For the next 48 hours there will be no solar generation.
2026-08-16 04:40:04.133761: - You will run out of battery in 27 hours.
2026-08-16 04:40:04.133778: - Your next charge slot will be in 6 and a quarter hours where import rates will be free (0.0p).
2026-08-16 04:40:04.133795: 
2026-08-16 04:40:04.196224: Plan calculation took 1.11 seconds
2026-08-16 04:40:04.200066: No high rate period found
2026-08-16 04:40:04.252156: Import threshold used for optimisation was 23.43p
2026-08-16 04:40:04.305879: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 94: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 04:40:04.312355: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:40:04.312485: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:40:04.312595: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:40:04.312843: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:40:04.312922: No export window planned
2026-08-16 04:40:04.313111: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:40:04.313151: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:40:04.313274: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:40:04.313455: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:40:04.313514: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:40:04.313573: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:40:04.313656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313745: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313949: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.313973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.314022: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.314076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.314123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.314169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:04.314228: Inverter 0 count register writes 0
2026-08-16 04:40:04.328760: 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-16 04:40:04.328938: Recompute is saving previous plan...
2026-08-16 04:40:04.331936: Best charge window [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0% ]
2026-08-16 04:40:04.332015: Best export window [  ]
2026-08-16 04:40:04.332765: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:40:04.335379: Load divergence over 8.0 hours mean 373.78W, min 222.6W, max 708.0W, std dev 83.93W, divergence 11.23%
2026-08-16 04:40:04.350364: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:40:04.350495: LoadML is_calculating False
2026-08-16 04:40:04.350560: Creating pool of 12 processes to match your CPU count
2026-08-16 04:40:04.433721: 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(0.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-16 04:40:04.435340: Optimise levels pass started at 2026-08-16 04:40:04
2026-08-16 04:40:04.435400: Optimise all windows, total charge 94 export 1
2026-08-16 04:40:05.562819: >> Region optimisation pass width 960 gives best_metric 476.65p, best_cost 488.83p, best_cycle 40.47kWh, best_import 24.96kWh
2026-08-16 04:40:06.221828: >> Region optimisation pass width 480 gives best_metric 476.65p, best_cost 488.83p, best_cycle 40.47kWh, best_import 24.96kWh
2026-08-16 04:40:06.824707: >> Region optimisation pass width 240 gives best_metric 476.65p, best_cost 488.83p, best_cycle 40.47kWh, best_import 24.96kWh
2026-08-16 04:40:07.930598: >> Region optimisation pass width 120 gives best_metric 476.65p, best_cost 488.83p, best_cycle 40.47kWh, best_import 24.96kWh
2026-08-16 04:40:07.930941: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 60
2026-08-16 04:40:07.931009: Optimise levels pass ended at 2026-08-16 04:40:07, duration 3.5 seconds tried 352 combinations
2026-08-16 04:40:07.931062: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 476.65p, best_keep 0kWh, best_cycle 40.47kWh, best_carbon 0kg, best_import 24.96kWh
2026-08-16 04:40:07.948463: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:40:11.841444: Tweak plan optimisation started metric 152.04p, cost 167.12p
2026-08-16 04:40:12.160828: Tweak optimisation finished metric 152.04p, cost 167.12p, metric_keep 0kWh, cycle 20.46kWh, carbon 0kg, import 10.71kWh, changed 8 window(s)
2026-08-16 04:40:12.185555: Swap charge optimisation started metric 152.04p, cost 167.12p, min_improvement_swap 0.1p
2026-08-16 04:40:18.660384: Swap charge optimisation finished metric 152.04p, cost 167.12p
2026-08-16 04:40:18.800192: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 146.52p -> 146.52p, plan now metric 152.17p, cost 167.12p, cycle 20.46kWh, import 10.71kWh
2026-08-16 04:40:18.813004: Raw charge windows [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100% ] reserve 1.12
2026-08-16 04:40:18.813785: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:40:18.814128: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:40:18.814414: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:40:18.856497: Previous plan best metric is 152.18 (cost 167.27) and new plan best metric is 152.04 (cost 167.12)
2026-08-16 04:40:18.856829: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:40:18.857100: Plan valid is now true after recompute was False
2026-08-16 04:40:18.886811: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 379.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.33kWh, PV 0.0kWh
2026-08-16 04:40:19.027482: Battery has 15.08 hours left - now at 9.14kWh
2026-08-16 04:40:19.080468: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 404.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:40:19.161305: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 253.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.15kWh, PV 0.0kWh
2026-08-16 04:40:19.245376: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 217.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.33kWh, PV 0.0kWh
2026-08-16 04:40:19.245495: Saving plan best values to HA entities
2026-08-16 04:40:19.415381: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:40:19.422928: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:40:19.430018: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.17kWh, house 1.54kWh, export 0.0kWh, metric 217.26p, metric10 253.95p
2026-08-16 04:40:19.508888: Marginal costs baseline metric (no standing charge): 167.2738
2026-08-16 04:40:19.806605: Marginal energy costs matrix computed: min=7.58 max=32.74
2026-08-16 04:40:19.878332: Rate array import [{'start': 280, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 280, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:40:19.878995: - Your estimated bill for today is £1.29 and tomorrow is £7.31
2026-08-16 04:40:19.879059: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:40:19.879083: - The battery is currently at 57% and is in eco mode for the next 6 and a quarter hours.
2026-08-16 04:40:19.879101: - For the next 48 hours there will be no solar generation.
2026-08-16 04:40:19.879118: - You will run out of battery in 27 hours.
2026-08-16 04:40:19.879135: - Your next charge slot will be in 6 and a quarter hours where import rates will be free (0.0p).
2026-08-16 04:40:19.879152: 
2026-08-16 04:40:19.931539: Plan calculation took 15.60 seconds
2026-08-16 04:40:19.931904: Inverter 0: Type SK Sunsynk
2026-08-16 04:40:19.931952: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:40:19.932175: Reserve min: 7%, battery_min: 7%
2026-08-16 04:40:19.932255: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:40:19.932623: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 481W, current battery voltage 51.2V, grid power -55W, load power 526W, PV Power 0W
2026-08-16 04:40:19.932867: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:40:19.933009: Inverter 0 scheduled charge enable is False
2026-08-16 04:40:19.933057: Inverter 0 charge windows currently []
2026-08-16 04:40:19.933089: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:40:19.933212: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:40:19.933249: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:40:19.933285: Inverter 0 scheduled discharge enable is False
2026-08-16 04:40:19.933417: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:40:19.933479: Inverter 0 discharge windows currently []
2026-08-16 04:40:19.933503: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:40:19.933525: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:40:19.933543: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:40:19.986034: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:40:19.986211: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:40:19.986288: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:40:19.986500: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:40:19.986586: No export window planned
2026-08-16 04:40:19.986700: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:40:19.986737: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:40:19.986878: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:40:19.987050: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:40:19.987105: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:40:19.987166: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:40:19.987263: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:40:19.987736: Inverter 0 count register writes 0
2026-08-16 04:40:20.008726: Total inverter register writes now 826
2026-08-16 04:40:20.051616: Info: Completed run status Demand
2026-08-16 04:40:20.059743: Info: record_status Demand
2026-08-16 04:40:20.067583: Saved current settings to /config/predbat_config.json
2026-08-16 04:40:20.068002: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:40:57.187983: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:40:57.188189: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:40:57.188218: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:40:57.188332: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:40:57.188366: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:40:57.188385: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:40:57.188399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:42:57.438136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:42:57.438421: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:42:57.438509: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:42:57.438689: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:42:57.438742: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:42:57.438763: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:42:57.438786: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:45:00.664762: --------------- PredBat - update at 2026-08-16 04:45:00+01:00 with clock skew 0 minutes, minutes now 285
2026-08-16 04:45:00.665756: Saved current settings to /config/predbat_config.json
2026-08-16 04:45:00.665929: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 04:45:00.666056: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:45:00.666181: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:45:00.687673: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:45:00.687796: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:45:00.687997: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:45:00.688503: Cars 1 charging from battery False 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-16 04:45:00.688634: Predbat mode is set to Control charge & discharge
2026-08-16 04:45:00.883227: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:45:00.883500: Using load_power data to fill gaps in load_today data
2026-08-16 04:45:01.616307: Processing 721 30-minute periods for power integration
2026-08-16 04:45:01.766014: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:45:01.766149: Car charging hold False, threshold 6.0kWh
2026-08-16 04:45:01.766189: Current data so far today: load 3.1kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:45:01.777969: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:45:01.778372: Standing charge is set to 49.98p
2026-08-16 04:45:01.805632: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:45:01.805724: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:45:01.805893: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 285.0 minutes
2026-08-16 04:45:01.806201: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 284.8 minutes
2026-08-16 04:45:01.808586: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:45:01.878471: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:45:01.928209: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:45:01.928633: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:45:01.967183: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:45:01.967357: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:45:01.969131: High export rate found rates in range 99p to -99p
2026-08-16 04:45:02.041135: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:45:02.041270: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:45:02.057020: Battery level now 9.14kWh, -1hr ago 9.6kWh, at midnight 12.21kWh, battery value change in the last hour -0.46p, change today -3.06p, rate_forward 1.0p
2026-08-16 04:45:02.057594: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:45:02.110954: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:45:02.111096: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:45:02.173765: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:45:02.194383: Today's load divergence 96.15%, in-day adjustment 85.62%, damping 0.95x, yesterday 82.97% today 96.35% blend 80.21%
2026-08-16 04:45:02.194491: Today's predicted so far 3.63kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.63kWh forecast extra.
2026-08-16 04:45:02.194520: Today's actual load so far 3.04kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:45:02.231916: Inverter 0: Type SK Sunsynk
2026-08-16 04:45:02.232010: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:45:02.232202: Reserve min: 7%, battery_min: 7%
2026-08-16 04:45:02.232273: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:45:02.232578: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 527W, current battery voltage 51.2V, grid power -55W, load power 572W, PV Power 0W
2026-08-16 04:45:02.232752: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:45:02.232852: Inverter 0 scheduled charge enable is False
2026-08-16 04:45:02.232883: Inverter 0 charge windows currently []
2026-08-16 04:45:02.232909: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:45:02.233048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:45:02.233082: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:45:02.233126: Inverter 0 scheduled discharge enable is False
2026-08-16 04:45:02.233249: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:45:02.233285: Inverter 0 discharge windows currently []
2026-08-16 04:45:02.233307: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:45:02.233329: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:45:02.233347: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:45:02.306612: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:45:02.306725: Plan was last updated on 2026-08-16 04:40:00+01:00 and is now 5.0 minutes old
2026-08-16 04:45:02.306976: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:45:02.307020: Best export window [  ]
2026-08-16 04:45:02.307944: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:45:02.311032: Load divergence over 8.0 hours mean 372.06W, min 244.8W, max 864.0W, std dev 95.49W, divergence 12.83%
2026-08-16 04:45:02.329630: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:45:02.329780: LoadML is_calculating False
2026-08-16 04:45:02.329887: Creating pool of 12 processes to match your CPU count
2026-08-16 04:45:02.454054: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 380.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.41kWh, PV 0.0kWh
2026-08-16 04:45:02.596542: Battery has 15.0 hours left - now at 9.12kWh
2026-08-16 04:45:02.645222: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 405.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.23kWh, PV 0.0kWh
2026-08-16 04:45:02.725795: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 263.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.23kWh, PV 0.0kWh
2026-08-16 04:45:02.800894: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 228.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.41kWh, PV 0.0kWh
2026-08-16 04:45:02.801040: Saving plan best values to HA entities
2026-08-16 04:45:02.962182: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:45:02.968781: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:45:02.974196: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.65kWh, house 1.54kWh, export 0.0kWh, metric 228.61p, metric10 263.58p
2026-08-16 04:45:03.051387: Marginal costs baseline metric (no standing charge): 178.6234
2026-08-16 04:45:03.321807: Marginal energy costs matrix computed: min=5.64 max=33.0
2026-08-16 04:45:03.406991: Rate array import [{'start': 285, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 285, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:45:03.407840: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 04:45:03.407906: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:45:03.407949: - The battery is currently at 57% and is in eco mode for the next 6 and a quarter hours.
2026-08-16 04:45:03.407985: - For the next 48 hours there will be no solar generation.
2026-08-16 04:45:03.408031: - You will run out of battery in 27 hours.
2026-08-16 04:45:03.408063: - Your next charge slot will be in 6 and a quarter hours where import rates will be free (0.0p).
2026-08-16 04:45:03.408095: 
2026-08-16 04:45:03.466473: Plan calculation took 1.16 seconds
2026-08-16 04:45:03.469837: No high rate period found
2026-08-16 04:45:03.517796: Import threshold used for optimisation was 24.94p
2026-08-16 04:45:03.569413: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 94: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 04:45:03.577108: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:45:03.577272: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:45:03.577469: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:45:03.577797: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:45:03.577919: No export window planned
2026-08-16 04:45:03.578109: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:45:03.578155: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:45:03.578354: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:45:03.578627: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:45:03.578733: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:45:03.578853: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:45:03.579013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579069: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579189: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:45:03.579854: Inverter 0 count register writes 0
2026-08-16 04:45:03.596204: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:45:03.601452: Total inverter register writes now 826
2026-08-16 04:45:03.635113: Info: Completed run status Demand
2026-08-16 04:45:03.641603: Info: record_status Demand
2026-08-16 04:45:03.648474: Saved current settings to /config/predbat_config.json
2026-08-16 04:45:03.648882: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:45:41.761577: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:45:41.761834: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:45:41.761889: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:45:41.762080: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:45:41.762127: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:45:41.762147: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:45:41.762168: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:47:00.774611: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 04:47:01.850601: Processing 1345 30-minute periods for power integration
2026-08-16 04:47:01.954264: ML Component: Car charging hold False, car energy reported load False
2026-08-16 04:47:02.059259: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:47:02.160005: ML Temperature data points: 50116
2026-08-16 04:47:02.444830: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 04:47:02.490479: ML Component: Data fetch completed, load data age 57.0 days, 16609 data points
2026-08-16 04:47:02.490698: ML Component: No training needed, model age is 1.31 hours
2026-08-16 04:47:02.490781: ML Component: Generating predictions load data age 57.0 days, 16609 data points
2026-08-16 04:47:02.632919: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0509 max_dow {0: 0.10210624996256083, 1: 0.10689687554407865, 2: 0.11675312483031303, 3: 0.12371874963529408, 4: 0.16831249989941716, 5: 0.09602222218207186, 6: 0.10714375132601708}
2026-08-16 04:47:04.307976: ML Component: Generated 576 predictions (total 29.03 kWh over 48h)
2026-08-16 04:47:04.353893: ML Component: Prediction cycle completed
2026-08-16 04:47:04.473837: ML Component: Saved 16609 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 04:47:56.619865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:47:56.620121: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:47:56.620159: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:47:56.620356: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:47:56.620396: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:47:56.620439: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:47:56.620576: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:49:56.843173: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:49:56.843422: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:49:56.843482: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:49:56.843676: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:49:56.843715: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:49:56.843737: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:49:56.843754: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:50:00.937682: --------------- PredBat - update at 2026-08-16 04:50:00+01:00 with clock skew 0 minutes, minutes now 290
2026-08-16 04:50:00.938620: Saved current settings to /config/predbat_config.json
2026-08-16 04:50:00.938769: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 04:50:00.938892: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:50:00.938998: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:50:00.961301: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:50:00.961438: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:50:00.961639: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:50:00.962177: Cars 1 charging from battery False 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-16 04:50:00.962300: Predbat mode is set to Control charge & discharge
2026-08-16 04:50:01.147701: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:50:01.147859: Using load_power data to fill gaps in load_today data
2026-08-16 04:50:01.882071: Processing 721 30-minute periods for power integration
2026-08-16 04:50:02.078761: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:50:02.078911: Car charging hold False, threshold 6.0kWh
2026-08-16 04:50:02.078960: Current data so far today: load 3.15kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:50:02.093554: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:50:02.093924: Standing charge is set to 49.98p
2026-08-16 04:50:02.121268: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:50:02.121373: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:50:02.121595: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 290.0 minutes
2026-08-16 04:50:02.122215: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 289.8 minutes
2026-08-16 04:50:02.125360: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:50:02.217984: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:50:02.279738: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:50:02.280077: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:50:02.315116: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:50:02.315243: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:50:02.316290: High export rate found rates in range 99p to -99p
2026-08-16 04:50:02.383077: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:50:02.383203: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:50:02.396281: Battery level now 9.12kWh, -1hr ago 9.6kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.09p, rate_forward 1.0p
2026-08-16 04:50:02.396635: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.57kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 04:50:02.441800: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:50:02.441914: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:50:02.506155: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:50:02.528933: Today's load divergence 96.33%, in-day adjustment 85.7%, damping 0.95x, yesterday 82.97% today 96.51% blend 79.86%
2026-08-16 04:50:02.529060: Today's predicted so far 3.65kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.65kWh forecast extra.
2026-08-16 04:50:02.529089: Today's actual load so far 3.09kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:50:02.575500: Inverter 0: Type SK Sunsynk
2026-08-16 04:50:02.575601: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:50:02.575829: Reserve min: 7%, battery_min: 7%
2026-08-16 04:50:02.575952: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:50:02.576286: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 482W, current battery voltage 51.2V, grid power -54W, load power 524W, PV Power 0W
2026-08-16 04:50:02.576522: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:50:02.576651: Inverter 0 scheduled charge enable is False
2026-08-16 04:50:02.576710: Inverter 0 charge windows currently []
2026-08-16 04:50:02.576761: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:50:02.576919: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:50:02.576996: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:50:02.577063: Inverter 0 scheduled discharge enable is False
2026-08-16 04:50:02.577268: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:50:02.577318: Inverter 0 discharge windows currently []
2026-08-16 04:50:02.577354: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:50:02.577389: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:50:02.577412: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:50:02.647685: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:50:02.647808: Plan was last updated on 2026-08-16 04:40:00+01:00 and is now 10.0 minutes old
2026-08-16 04:50:02.648161: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:50:02.648213: Best export window [  ]
2026-08-16 04:50:02.649133: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:50:02.652317: Load divergence over 8.0 hours mean 368.98W, min 252.0W, max 891.6W, std dev 91.79W, divergence 12.44%
2026-08-16 04:50:02.670981: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:50:02.671115: LoadML is_calculating False
2026-08-16 04:50:02.671181: Creating pool of 12 processes to match your CPU count
2026-08-16 04:50:02.779437: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 381.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.48kWh, PV 0.0kWh
2026-08-16 04:50:02.896500: Battery has 14.92 hours left - now at 9.09kWh
2026-08-16 04:50:02.933519: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 407.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.31kWh, PV 0.0kWh
2026-08-16 04:50:03.003706: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 273.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.31kWh, PV 0.0kWh
2026-08-16 04:50:03.074630: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 240.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.48kWh, PV 0.0kWh
2026-08-16 04:50:03.074712: Saving plan best values to HA entities
2026-08-16 04:50:03.221256: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:50:03.226407: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:50:03.231442: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.13kWh, house 1.53kWh, export 0.0kWh, metric 240.09p, metric10 273.32p
2026-08-16 04:50:03.295974: Marginal costs baseline metric (no standing charge): 190.1047
2026-08-16 04:50:03.536767: Marginal energy costs matrix computed: min=3.71 max=33.23
2026-08-16 04:50:03.602470: Rate array import [{'start': 290, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 290, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:50:03.603048: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 04:50:03.603088: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:50:03.603106: - The battery is currently at 57% and is in eco mode for the next 6 and a quarter hours.
2026-08-16 04:50:03.603120: - For the next 48 hours there will be no solar generation.
2026-08-16 04:50:03.603134: - You will run out of battery in 27 hours.
2026-08-16 04:50:03.603147: - Your next charge slot will be in 6 and a quarter hours where import rates will be free (0.0p).
2026-08-16 04:50:03.603165: 
2026-08-16 04:50:03.653919: Plan calculation took 1.01 seconds
2026-08-16 04:50:03.657323: No high rate period found
2026-08-16 04:50:03.711350: Import threshold used for optimisation was 24.94p
2026-08-16 04:50:03.780686: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 94: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 04:50:03.787148: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:50:03.787259: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:50:03.787368: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:50:03.787610: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:50:03.787688: No export window planned
2026-08-16 04:50:03.787804: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:50:03.787854: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:50:03.787967: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:50:03.788180: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:50:03.788237: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:50:03.788302: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:50:03.788383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788480: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:03.788774: Inverter 0 count register writes 0
2026-08-16 04:50:03.802797: 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-16 04:50:03.802947: Recompute is saving previous plan...
2026-08-16 04:50:03.805482: Best charge window [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0% ]
2026-08-16 04:50:03.805548: Best export window [  ]
2026-08-16 04:50:03.806212: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:50:03.808730: Load divergence over 8.0 hours mean 368.98W, min 252.0W, max 891.6W, std dev 91.79W, divergence 12.44%
2026-08-16 04:50:03.823292: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:50:03.823380: LoadML is_calculating False
2026-08-16 04:50:03.823434: Creating pool of 12 processes to match your CPU count
2026-08-16 04:50:03.912106: 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(0.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-16 04:50:03.913602: Optimise levels pass started at 2026-08-16 04:50:03
2026-08-16 04:50:03.913654: Optimise all windows, total charge 94 export 1
2026-08-16 04:50:04.555775: >> Region optimisation pass width 960 gives best_metric 478.34p, best_cost 490.44p, best_cycle 39.09kWh, best_import 24.92kWh
2026-08-16 04:50:04.964866: >> Region optimisation pass width 480 gives best_metric 478.34p, best_cost 490.44p, best_cycle 39.09kWh, best_import 24.92kWh
2026-08-16 04:50:05.426422: >> Region optimisation pass width 240 gives best_metric 478.34p, best_cost 490.44p, best_cycle 39.09kWh, best_import 24.92kWh
2026-08-16 04:50:06.424542: >> Region optimisation pass width 120 gives best_metric 478.34p, best_cost 490.44p, best_cycle 39.09kWh, best_import 24.92kWh
2026-08-16 04:50:06.424792: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 60
2026-08-16 04:50:06.424886: Optimise levels pass ended at 2026-08-16 04:50:06, duration 2.5 seconds tried 321 combinations
2026-08-16 04:50:06.425039: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 478.34p, best_keep 0kWh, best_cycle 39.09kWh, best_carbon 0kg, best_import 24.92kWh
2026-08-16 04:50:06.440691: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 04:50:11.644466: Tweak plan optimisation started metric 151.35p, cost 166.47p
2026-08-16 04:50:11.954423: Tweak optimisation finished metric 151.35p, cost 166.47p, metric_keep 0kWh, cycle 20.46kWh, carbon 0kg, import 10.69kWh, changed 8 window(s)
2026-08-16 04:50:11.973776: Swap charge optimisation started metric 151.35p, cost 166.47p, min_improvement_swap 0.1p
2026-08-16 04:50:18.639930: Swap charge optimisation finished metric 151.35p, cost 166.47p
2026-08-16 04:50:18.755230: Pruned 4 dead plan slot(s) in 12 trial(s), nominal metric 145.87p -> 145.87p, plan now metric 151.53p, cost 166.47p, cycle 20.46kWh, import 10.69kWh
2026-08-16 04:50:18.765137: Raw charge windows [ 16-08 04:30:00 - 16-08 05:00:00 @ 26.14p 0%, 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100% ] reserve 1.12
2026-08-16 04:50:18.765682: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:50:18.765938: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:50:18.766156: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 04:50:18.797039: Previous plan best metric is 151.55 (cost 166.68) and new plan best metric is 151.35 (cost 166.47)
2026-08-16 04:50:18.797344: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 04:50:18.797545: Plan valid is now true after recompute was False
2026-08-16 04:50:18.821335: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 378.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.35kWh, PV 0.0kWh
2026-08-16 04:50:18.931823: Battery has 14.92 hours left - now at 9.09kWh
2026-08-16 04:50:18.972430: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 403.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.17kWh, PV 0.0kWh
2026-08-16 04:50:19.047252: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 253.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.17kWh, PV 0.0kWh
2026-08-16 04:50:19.129884: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 216.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.35kWh, PV 0.0kWh
2026-08-16 04:50:19.129973: Saving plan best values to HA entities
2026-08-16 04:50:19.284019: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:50:19.289639: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 04:50:19.295087: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.16kWh, house 1.53kWh, export 0.0kWh, metric 216.67p, metric10 253.11p
2026-08-16 04:50:19.363765: Marginal costs baseline metric (no standing charge): 166.6832
2026-08-16 04:50:19.599945: Marginal energy costs matrix computed: min=3.71 max=33.23
2026-08-16 04:50:19.688233: Rate array import [{'start': 290, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 290, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:50:19.689033: - Your estimated bill for today is £1.29 and tomorrow is £7.32
2026-08-16 04:50:19.689093: - Import rates are expensive (24.1p - 27.0p) for the next 6 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:50:19.689118: - The battery is currently at 57% and is in eco mode for the next 6 and a quarter hours.
2026-08-16 04:50:19.689136: - For the next 48 hours there will be no solar generation.
2026-08-16 04:50:19.689161: - You will run out of battery in 27 hours.
2026-08-16 04:50:19.689183: - Your next charge slot will be in 6 and a quarter hours where import rates will be free (0.0p).
2026-08-16 04:50:19.689216: 
2026-08-16 04:50:19.749105: Plan calculation took 15.95 seconds
2026-08-16 04:50:19.749501: Inverter 0: Type SK Sunsynk
2026-08-16 04:50:19.749550: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:50:19.749785: Reserve min: 7%, battery_min: 7%
2026-08-16 04:50:19.749869: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:50:19.750229: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 482W, current battery voltage 51.2V, grid power -54W, load power 524W, PV Power 0W
2026-08-16 04:50:19.750531: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:50:19.750695: Inverter 0 scheduled charge enable is False
2026-08-16 04:50:19.750742: Inverter 0 charge windows currently []
2026-08-16 04:50:19.750776: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:50:19.750933: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:50:19.750972: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:50:19.751009: Inverter 0 scheduled discharge enable is False
2026-08-16 04:50:19.751153: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:50:19.751192: Inverter 0 discharge windows currently []
2026-08-16 04:50:19.751215: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:50:19.751233: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:50:19.751250: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:50:19.805969: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:50:19.806121: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:50:19.806192: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:50:19.806469: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:50:19.806571: No export window planned
2026-08-16 04:50:19.806711: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:50:19.806751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:50:19.806917: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:50:19.807086: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:50:19.807138: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:50:19.807198: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:50:19.807298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:50:19.807877: Inverter 0 count register writes 0
2026-08-16 04:50:19.831229: Total inverter register writes now 826
2026-08-16 04:50:19.867609: Info: Completed run status Demand
2026-08-16 04:50:19.879721: Info: record_status Demand
2026-08-16 04:50:19.887732: Saved current settings to /config/predbat_config.json
2026-08-16 04:50:19.888084: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:50:56.998955: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:50:56.999202: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:50:56.999274: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:50:56.999419: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:50:56.999488: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:50:56.999513: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:50:56.999531: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:52:57.218820: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:52:57.219079: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:52:57.219147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:52:57.219288: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:52:57.219328: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:52:57.219351: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:52:57.219369: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:54:57.446286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:54:57.447033: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:54:57.447090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:54:57.447235: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:54:57.447274: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:54:57.447313: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:54:57.447333: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:55:00.561927: --------------- PredBat - update at 2026-08-16 04:55:00+01:00 with clock skew 0 minutes, minutes now 295
2026-08-16 04:55:00.562679: Saved current settings to /config/predbat_config.json
2026-08-16 04:55:00.562810: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 04:55:00.562886: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 04:55:00.562976: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 04:55:00.585993: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 04:55:00.586131: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 04:55:00.586316: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 04:55:00.586846: Cars 1 charging from battery False 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-16 04:55:00.586969: Predbat mode is set to Control charge & discharge
2026-08-16 04:55:00.790707: Found 21602 load_today datapoints going back 28 days
2026-08-16 04:55:00.791118: Using load_power data to fill gaps in load_today data
2026-08-16 04:55:01.539583: Processing 721 30-minute periods for power integration
2026-08-16 04:55:01.706501: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 04:55:01.706631: Car charging hold False, threshold 6.0kWh
2026-08-16 04:55:01.706670: Current data so far today: load 3.2kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 04:55:01.718941: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 04:55:01.719286: Standing charge is set to 49.98p
2026-08-16 04:55:01.747082: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 04:55:01.747184: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 04:55:01.747441: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 295.0 minutes
2026-08-16 04:55:01.747842: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 294.8 minutes
2026-08-16 04:55:01.750937: Loaded 47 datapoints of futurerate analysis
2026-08-16 04:55:01.838266: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 04:55:01.904271: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 04:55:01.904803: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 04:55:01.949780: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 04:55:01.950432: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 04:55:01.951719: High export rate found rates in range 99p to -99p
2026-08-16 04:55:02.041364: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 04:55:02.041513: Car 0 charging is not planned as it is not plugged in
2026-08-16 04:55:02.057219: Battery level now 9.09kWh, -1hr ago 9.6kWh, at midnight 12.21kWh, battery value change in the last hour -0.51p, change today -3.12p, rate_forward 1.0p
2026-08-16 04:55:02.057758: 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-16 04:55:02.117446: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 04:55:02.117583: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 04:55:02.193860: Using weighted-bucket historical load forecast over 14 days
2026-08-16 04:55:02.218865: Today's load divergence 96.53%, in-day adjustment 85.78%, damping 0.95x, yesterday 82.97% today 96.71% blend 79.51%
2026-08-16 04:55:02.218969: Today's predicted so far 3.67kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.67kWh forecast extra.
2026-08-16 04:55:02.219002: Today's actual load so far 3.15kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 04:55:02.261126: Inverter 0: Type SK Sunsynk
2026-08-16 04:55:02.261219: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 04:55:02.261453: Reserve min: 7%, battery_min: 7%
2026-08-16 04:55:02.261537: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 04:55:02.261829: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 497W, current battery voltage 51.2V, grid power -54W, load power 542W, PV Power 0W
2026-08-16 04:55:02.261989: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:55:02.262105: Inverter 0 scheduled charge enable is False
2026-08-16 04:55:02.262135: Inverter 0 charge windows currently []
2026-08-16 04:55:02.262161: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 04:55:02.262270: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:55:02.262324: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:55:02.262414: Inverter 0 scheduled discharge enable is False
2026-08-16 04:55:02.262710: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:55:02.262771: Inverter 0 discharge windows currently []
2026-08-16 04:55:02.262796: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:55:02.262815: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:55:02.262832: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:55:02.327328: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 04:55:02.327450: Plan was last updated on 2026-08-16 04:50:00+01:00 and is now 5.0 minutes old
2026-08-16 04:55:02.327733: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 04:55:02.327776: Best export window [  ]
2026-08-16 04:55:02.328771: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 04:55:02.332562: Load divergence over 8.0 hours mean 365.9W, min 264.6W, max 912.0W, std dev 89.99W, divergence 12.3%
2026-08-16 04:55:02.351872: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 04:55:02.352005: LoadML is_calculating False
2026-08-16 04:55:02.352076: Creating pool of 12 processes to match your CPU count
2026-08-16 04:55:02.483873: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 378.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.43kWh, PV 0.0kWh
2026-08-16 04:55:02.620860: Battery has 14.92 hours left - now at 9.09kWh
2026-08-16 04:55:02.667347: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 404.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.26kWh, PV 0.0kWh
2026-08-16 04:55:02.754696: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 262.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.26kWh, PV 0.0kWh
2026-08-16 04:55:02.837529: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 227.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 20.43kWh, PV 0.0kWh
2026-08-16 04:55:02.837634: Saving plan best values to HA entities
2026-08-16 04:55:03.019263: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 04:55:03.025108: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 04:55:03.030585: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.61kWh, house 1.53kWh, export 0.0kWh, metric 227.76p, metric10 262.53p
2026-08-16 04:55:03.116750: Marginal costs baseline metric (no standing charge): 177.7777
2026-08-16 04:55:03.414736: Marginal energy costs matrix computed: min=1.86 max=33.47
2026-08-16 04:55:03.495699: Rate array import [{'start': 295, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 295, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 04:55:03.496437: - Your estimated bill for today is £1.28 and tomorrow is £7.33
2026-08-16 04:55:03.496490: - Import rates are expensive (24.1p - 27.0p) for the next 6 hours and then free (0.0p) for the next 1 hour.
2026-08-16 04:55:03.496514: - The battery is currently at 57% and is in eco mode for the next 6 hours.
2026-08-16 04:55:03.496532: - For the next 48 hours there will be no solar generation.
2026-08-16 04:55:03.496569: - You will run out of battery in 27 hours.
2026-08-16 04:55:03.496588: - Your next charge slot will be in 6 hours where import rates will be free (0.0p).
2026-08-16 04:55:03.496606: 
2026-08-16 04:55:03.561812: Plan calculation took 1.23 seconds
2026-08-16 04:55:03.565258: No high rate period found
2026-08-16 04:55:03.620455: Import threshold used for optimisation was 24.94p
2026-08-16 04:55:03.673378: Low import rate windows [0: 08-16 04:30:00 - 08-16 05:00:00 @ 26.14, 1: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 2: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 3: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 4: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 5: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 6: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 7: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 8: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 9: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 10: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 11: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 12: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 13: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 14: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 15: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 16: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 17: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 18: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 19: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 20: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 21: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 22: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 23: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 24: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 25: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 26: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 27: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 28: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 29: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 30: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 31: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 32: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 33: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 34: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 35: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 36: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 37: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 38: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 39: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 40: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 41: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 42: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 43: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 44: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 45: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 46: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 47: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 48: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 49: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 50: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 51: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 52: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 53: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 54: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 55: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 56: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 57: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 58: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 59: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 60: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 61: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 62: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 63: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 64: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 65: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 66: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 67: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 68: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 69: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 70: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 71: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 72: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 73: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 74: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 75: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 76: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 77: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 78: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 79: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 80: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 81: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 82: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 83: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 84: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 85: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 86: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 87: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 88: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 89: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 90: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 91: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 92: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 93: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 94: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 04:55:03.680406: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 57%, target 100%
2026-08-16 04:55:03.680554: Inverter 0 disabled charge window while waiting for schedule (now 08-16 04:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 04:55:03.680703: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:55:03.681049: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:55:03.681155: No export window planned
2026-08-16 04:55:03.681331: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 04:55:03.681382: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 04:55:03.681553: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 04:55:03.681843: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 04:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 04:55:03.681912: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 04:55:03.681979: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 04:55:03.682119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682244: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 04:55:03.682601: Inverter 0 count register writes 0
2026-08-16 04:55:03.699037: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 04:55:03.704803: Total inverter register writes now 826
2026-08-16 04:55:03.741493: Info: Completed run status Demand
2026-08-16 04:55:03.748240: Info: record_status Demand
2026-08-16 04:55:03.755946: Saved current settings to /config/predbat_config.json
2026-08-16 04:55:03.756337: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 04:55:41.881541: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:55:41.881817: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:55:41.881878: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:55:41.882159: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:55:41.882211: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:55:41.882235: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:55:41.882269: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:57:42.119109: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:57:42.119368: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:57:42.119405: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:57:42.119533: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:57:42.119588: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:57:42.119605: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:57:42.119620: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 04:59:36.466178: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 04:59:36.732230: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 04:59:42.337138: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 04:59:42.337380: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 04:59:42.337425: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 04:59:42.337562: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 04:59:42.337602: Note: Inverter does not support discharge freeze - disabled
2026-08-16 04:59:42.337624: Note: Inverter does not support charge freeze - disabled
2026-08-16 04:59:42.337645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:00:00.484111: --------------- PredBat - update at 2026-08-16 05:00:00+01:00 with clock skew 0 minutes, minutes now 300
2026-08-16 05:00:00.484977: Saved current settings to /config/predbat_config.json
2026-08-16 05:00:00.485187: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 05:00:00.485340: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:00:00.485480: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:00:00.509704: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:00:00.509860: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:00:00.510112: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:00:00.510804: Cars 1 charging from battery False 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-16 05:00:00.511063: Predbat mode is set to Control charge & discharge
2026-08-16 05:00:00.719231: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:00:00.719390: Using load_power data to fill gaps in load_today data
2026-08-16 05:00:01.682246: Processing 721 30-minute periods for power integration
2026-08-16 05:00:01.926744: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:00:01.926893: Car charging hold False, threshold 6.0kWh
2026-08-16 05:00:01.926961: Current data so far today: load 3.25kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:00:01.942680: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:00:01.943082: Standing charge is set to 49.98p
2026-08-16 05:00:01.972245: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:00:01.972354: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:00:01.972564: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 300.0 minutes
2026-08-16 05:00:01.973020: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 299.8 minutes
2026-08-16 05:00:01.976734: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:00:02.082734: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:00:02.163260: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:00:02.163721: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:00:02.215396: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:00:02.215547: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:00:02.217218: High export rate found rates in range 99p to -99p
2026-08-16 05:00:02.306728: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:00:02.306890: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:00:02.321733: Battery level now 9.09kWh, -1hr ago 9.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.43p, change today -3.12p, rate_forward 1.0p
2026-08-16 05:00:02.322114: 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-16 05:00:02.386892: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:00:02.387123: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:00:02.473746: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:00:02.501828: Today's load divergence 96.36%, in-day adjustment 85.8%, damping 0.95x, yesterday 82.97% today 96.54% blend 79.17%
2026-08-16 05:00:02.501934: Today's predicted so far 3.8kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.8kWh forecast extra.
2026-08-16 05:00:02.502038: Today's actual load so far 3.25kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:00:02.546210: Inverter 0: Type SK Sunsynk
2026-08-16 05:00:02.546343: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:00:02.546693: Reserve min: 7%, battery_min: 7%
2026-08-16 05:00:02.546859: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:00:02.547394: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 492W, current battery voltage 51.2V, grid power -54W, load power 538W, PV Power 0W
2026-08-16 05:00:02.547704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:00:02.547871: Inverter 0 scheduled charge enable is False
2026-08-16 05:00:02.547940: Inverter 0 charge windows currently []
2026-08-16 05:00:02.547996: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:00:02.548287: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:00:02.548364: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:00:02.548439: Inverter 0 scheduled discharge enable is False
2026-08-16 05:00:02.548711: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:00:02.548781: Inverter 0 discharge windows currently []
2026-08-16 05:00:02.548824: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:00:02.548866: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:00:02.548899: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:00:02.638041: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:00:02.638210: Plan was last updated on 2026-08-16 04:50:00+01:00 and is now 10.0 minutes old
2026-08-16 05:00:02.638609: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:00:02.638676: Best export window [  ]
2026-08-16 05:00:02.639784: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:00:02.643374: Load divergence over 8.0 hours mean 364.5W, min 223.8W, max 1097.4W, std dev 98.45W, divergence 13.5%
2026-08-16 05:00:02.665759: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:00:02.665903: LoadML is_calculating False
2026-08-16 05:00:02.665974: Creating pool of 12 processes to match your CPU count
2026-08-16 05:00:02.810145: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 383.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.52kWh, PV 0.0kWh
2026-08-16 05:00:02.980813: Battery has 14.67 hours left - now at 8.96kWh
2026-08-16 05:00:03.034157: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 408.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.35kWh, PV 0.0kWh
2026-08-16 05:00:03.128752: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 274.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.35kWh, PV 0.0kWh
2026-08-16 05:00:03.233003: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 241.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.52kWh, PV 0.0kWh
2026-08-16 05:00:03.233122: Saving plan best values to HA entities
2026-08-16 05:00:03.437525: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:00:03.445686: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 05:00:03.453277: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.17kWh, house 1.54kWh, export 0.0kWh, metric 241.47p, metric10 274.85p
2026-08-16 05:00:03.568813: Marginal costs baseline metric (no standing charge): 191.4866
2026-08-16 05:00:03.893907: Marginal energy costs matrix computed: min=0.0 max=33.72
2026-08-16 05:00:03.995920: Rate array import [{'start': 300, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 300, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:00:03.996665: - Your estimated bill for today is £1.30 and tomorrow is £7.31
2026-08-16 05:00:03.996725: - Import rates are expensive (24.1p - 27.0p) for the next 6 hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:00:03.996749: - The battery is currently at 56% and is in eco mode for the next 6 hours.
2026-08-16 05:00:03.996768: - For the next 48 hours there will be no solar generation.
2026-08-16 05:00:03.996785: - You will run out of battery in 27 hours.
2026-08-16 05:00:03.996804: - Your next charge slot will be in 6 hours where import rates will be free (0.0p).
2026-08-16 05:00:03.996822: 
2026-08-16 05:00:04.066200: Plan calculation took 1.43 seconds
2026-08-16 05:00:04.069566: No high rate period found
2026-08-16 05:00:04.129057: Import threshold used for optimisation was 24.94p
2026-08-16 05:00:04.198066: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14]
2026-08-16 05:00:04.207134: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:00:04.207308: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:00:04.207422: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:00:04.207693: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:00:04.207785: No export window planned
2026-08-16 05:00:04.207905: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:00:04.207941: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:00:04.208161: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:00:04.208365: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:00:04.208430: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:00:04.208502: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:00:04.208601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208776: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.208981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.209071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.209135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.209170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:04.209197: Inverter 0 count register writes 0
2026-08-16 05:00:04.228113: 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-16 05:00:04.228302: Recompute is saving previous plan...
2026-08-16 05:00:04.231380: Best charge window [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0% ]
2026-08-16 05:00:04.231470: Best export window [  ]
2026-08-16 05:00:04.232284: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:00:04.235348: Load divergence over 8.0 hours mean 364.5W, min 223.8W, max 1097.4W, std dev 98.45W, divergence 13.5%
2026-08-16 05:00:04.252285: Calculating data from yesterday for savings calculation
2026-08-16 05:00:04.264047: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 05:00:04.313285: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 05:00:04.329567: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 05:00:04.351320: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 05:00:04.385105: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 05:00:04.463272: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 05:00:04.463497: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 05:00:04.476197: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:00:04.476323: LoadML is_calculating False
2026-08-16 05:00:04.476428: Creating pool of 12 processes to match your CPU count
2026-08-16 05:00:04.580923: 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(0.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-16 05:00:04.583139: Optimise levels pass started at 2026-08-16 05:00:04
2026-08-16 05:00:04.583208: Optimise all windows, total charge 94 export 1
2026-08-16 05:00:05.667451: >> Region optimisation pass width 960 gives best_metric 482.93p, best_cost 495.0p, best_cycle 39.05kWh, best_import 25.1kWh
2026-08-16 05:00:06.226243: >> Region optimisation pass width 480 gives best_metric 482.93p, best_cost 495.0p, best_cycle 39.05kWh, best_import 25.1kWh
2026-08-16 05:00:06.762413: >> Region optimisation pass width 240 gives best_metric 482.93p, best_cost 495.0p, best_cycle 39.05kWh, best_import 25.1kWh
2026-08-16 05:00:08.183456: >> Region optimisation pass width 120 gives best_metric 482.93p, best_cost 495.0p, best_cycle 39.05kWh, best_import 25.1kWh
2026-08-16 05:00:08.183818: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 59
2026-08-16 05:00:08.183932: Optimise levels pass ended at 2026-08-16 05:00:08, duration 3.6 seconds tried 316 combinations
2026-08-16 05:00:08.184031: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 482.93p, best_keep 0kWh, best_cycle 39.05kWh, best_carbon 0kg, best_import 25.1kWh
2026-08-16 05:00:08.205113: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 05:00:14.674795: Tweak plan optimisation started metric 152.91p, cost 168.01p
2026-08-16 05:00:15.061491: Tweak optimisation finished metric 152.91p, cost 168.01p, metric_keep 0kWh, cycle 21.33kWh, carbon 0kg, import 10.81kWh, changed 8 window(s)
2026-08-16 05:00:15.083562: Swap charge optimisation started metric 152.91p, cost 168.01p, min_improvement_swap 0.1p
2026-08-16 05:00:20.938430: Swap charge optimisation finished metric 152.91p, cost 168.01p
2026-08-16 05:00:21.096301: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 147.41p -> 147.41p, plan now metric 153.05p, cost 168.01p, cycle 21.33kWh, import 10.81kWh
2026-08-16 05:00:21.110799: Raw charge windows [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100% ] reserve 1.12
2026-08-16 05:00:21.111645: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 05:00:21.112073: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 05:00:21.112526: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:00:00 @ 26.13p 100% ] reserve 1.12
2026-08-16 05:00:21.154792: Previous plan best metric is 152.9 (cost 168.01) and new plan best metric is 152.91 (cost 168.01)
2026-08-16 05:00:21.155159: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:00:21.155421: Plan valid is now true after recompute was False
2026-08-16 05:00:21.186107: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 380.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.39kWh, PV 0.0kWh
2026-08-16 05:00:21.331413: Battery has 14.67 hours left - now at 8.96kWh
2026-08-16 05:00:21.391613: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 405.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.2kWh, PV 0.0kWh
2026-08-16 05:00:21.492765: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 254.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.2kWh, PV 0.0kWh
2026-08-16 05:00:21.587635: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 218.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.39kWh, PV 0.0kWh
2026-08-16 05:00:21.587736: Saving plan best values to HA entities
2026-08-16 05:00:21.790210: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:00:21.796930: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 05:00:21.803627: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.2kWh, house 1.54kWh, export 0.0kWh, metric 218.0p, metric10 254.59p
2026-08-16 05:00:21.892216: Marginal costs baseline metric (no standing charge): 168.0142
2026-08-16 05:00:22.187249: Marginal energy costs matrix computed: min=0.0 max=33.72
2026-08-16 05:00:22.258317: Rate array import [{'start': 300, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 300, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:00:22.259012: - Your estimated bill for today is £1.30 and tomorrow is £7.31
2026-08-16 05:00:22.259061: - Import rates are expensive (24.1p - 27.0p) for the next 6 hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:00:22.259083: - The battery is currently at 56% and is in eco mode for the next 6 hours.
2026-08-16 05:00:22.259102: - For the next 48 hours there will be no solar generation.
2026-08-16 05:00:22.259124: - You will run out of battery in 27 hours.
2026-08-16 05:00:22.259141: - Your next charge slot will be in 6 hours where import rates will be free (0.0p).
2026-08-16 05:00:22.259161: 
2026-08-16 05:00:22.323303: Plan calculation took 18.10 seconds
2026-08-16 05:00:22.323672: Inverter 0: Type SK Sunsynk
2026-08-16 05:00:22.323725: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:00:22.324017: Reserve min: 7%, battery_min: 7%
2026-08-16 05:00:22.324109: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:00:22.324464: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 492W, current battery voltage 51.2V, grid power -54W, load power 538W, PV Power 0W
2026-08-16 05:00:22.324707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:00:22.324866: Inverter 0 scheduled charge enable is False
2026-08-16 05:00:22.324914: Inverter 0 charge windows currently []
2026-08-16 05:00:22.324975: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:00:22.325121: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:00:22.325159: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:00:22.325196: Inverter 0 scheduled discharge enable is False
2026-08-16 05:00:22.325334: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:00:22.325371: Inverter 0 discharge windows currently []
2026-08-16 05:00:22.325394: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:00:22.325418: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:00:22.325436: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:00:22.386050: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:00:22.386207: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:00:22.386281: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:00:22.386466: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:00:22.386551: No export window planned
2026-08-16 05:00:22.386661: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:00:22.386696: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:00:22.386829: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:00:22.387011: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:00:22.387078: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:00:22.387142: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:00:22.387244: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387384: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387434: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:00:22.387700: Inverter 0 count register writes 0
2026-08-16 05:00:22.412776: Total inverter register writes now 826
2026-08-16 05:00:22.457172: Info: Completed run status Demand
2026-08-16 05:00:22.466080: Info: record_status Demand
2026-08-16 05:00:22.475596: Saved current settings to /config/predbat_config.json
2026-08-16 05:00:22.476033: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:00:56.609276: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:00:56.609576: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:00:56.609627: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:00:56.609808: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:00:56.609854: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:00:56.609881: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:00:56.609924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:02:56.841684: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:02:56.841966: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:02:56.842013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:02:56.842151: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:02:56.842198: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:02:56.842221: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:02:56.842244: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:04:57.075850: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:04:57.076098: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:04:57.076134: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:04:57.076299: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:04:57.076341: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:04:57.076362: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:04:57.076380: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:05:00.161011: --------------- PredBat - update at 2026-08-16 05:05:00+01:00 with clock skew 0 minutes, minutes now 305
2026-08-16 05:05:00.161848: Saved current settings to /config/predbat_config.json
2026-08-16 05:05:00.162010: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 05:05:00.162130: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:05:00.162237: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:05:00.192221: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:05:00.192359: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:05:00.192527: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:05:00.193157: Cars 1 charging from battery False 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-16 05:05:00.193291: Predbat mode is set to Control charge & discharge
2026-08-16 05:05:00.394857: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:05:00.395027: Using load_power data to fill gaps in load_today data
2026-08-16 05:05:01.289885: Processing 721 30-minute periods for power integration
2026-08-16 05:05:01.486370: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:05:01.486518: Car charging hold False, threshold 6.0kWh
2026-08-16 05:05:01.486566: Current data so far today: load 3.3kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:05:01.501420: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:05:01.501800: Standing charge is set to 49.98p
2026-08-16 05:05:01.546084: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:05:01.546215: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:05:01.546452: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 304.9 minutes
2026-08-16 05:05:01.547009: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 304.8 minutes
2026-08-16 05:05:01.551254: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:05:01.656928: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:05:01.721554: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:05:01.721995: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:05:01.766620: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:05:01.766758: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:05:01.768110: High export rate found rates in range 99p to -99p
2026-08-16 05:05:01.854301: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:05:01.854462: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:05:01.871473: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.25p, rate_forward 1.0p
2026-08-16 05:05:01.871945: 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-16 05:05:01.926601: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:05:01.926789: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:05:01.995707: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:05:02.018706: Today's load divergence 96.49%, in-day adjustment 85.87%, damping 0.95x, yesterday 82.97% today 96.66% blend 78.82%
2026-08-16 05:05:02.018873: Today's predicted so far 3.9kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.9kWh forecast extra.
2026-08-16 05:05:02.018908: Today's actual load so far 3.36kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:05:02.066107: Inverter 0: Type SK Sunsynk
2026-08-16 05:05:02.066208: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:05:02.066448: Reserve min: 7%, battery_min: 7%
2026-08-16 05:05:02.066547: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:05:02.066862: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 487W, current battery voltage 51.2V, grid power -56W, load power 533W, PV Power 0W
2026-08-16 05:05:02.067076: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:05:02.067196: Inverter 0 scheduled charge enable is False
2026-08-16 05:05:02.067244: Inverter 0 charge windows currently []
2026-08-16 05:05:02.067286: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:05:02.067447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:05:02.067484: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:05:02.067523: Inverter 0 scheduled discharge enable is False
2026-08-16 05:05:02.067696: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:05:02.067733: Inverter 0 discharge windows currently []
2026-08-16 05:05:02.067753: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:05:02.067783: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:05:02.067812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:05:02.135530: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:05:02.135684: Plan was last updated on 2026-08-16 05:00:00+01:00 and is now 5.0 minutes old
2026-08-16 05:05:02.135963: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:05:02.136008: Best export window [  ]
2026-08-16 05:05:02.136723: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:05:02.139596: Load divergence over 8.0 hours mean 362.99W, min 213.6W, max 1026.0W, std dev 96.47W, divergence 13.29%
2026-08-16 05:05:02.156004: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:05:02.156146: LoadML is_calculating False
2026-08-16 05:05:02.156232: Creating pool of 12 processes to match your CPU count
2026-08-16 05:05:02.283791: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 381.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.49kWh, PV 0.0kWh
2026-08-16 05:05:02.435659: Battery has 14.67 hours left - now at 8.96kWh
2026-08-16 05:05:02.482231: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 406.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.31kWh, PV 0.0kWh
2026-08-16 05:05:02.584924: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 264.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.31kWh, PV 0.0kWh
2026-08-16 05:05:02.684463: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 229.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.49kWh, PV 0.0kWh
2026-08-16 05:05:02.684578: Saving plan best values to HA entities
2026-08-16 05:05:02.856323: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:05:02.862996: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 05:05:02.868250: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.65kWh, house 1.56kWh, export 0.0kWh, metric 229.28p, metric10 264.17p
2026-08-16 05:05:02.939583: Marginal costs baseline metric (no standing charge): 179.2918
2026-08-16 05:05:03.172166: Marginal energy costs matrix computed: min=1.89 max=33.82
2026-08-16 05:05:03.241053: Rate array import [{'start': 305, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 305, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:05:03.241624: - Your estimated bill for today is £1.29 and tomorrow is £7.30
2026-08-16 05:05:03.241663: - Import rates are expensive (24.1p - 27.0p) for the next 5  hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:05:03.241682: - The battery is currently at 56% and is in eco mode for the next 5  hours.
2026-08-16 05:05:03.241696: - For the next 48 hours there will be no solar generation.
2026-08-16 05:05:03.241710: - You will run out of battery in 26 hours.
2026-08-16 05:05:03.241728: - Your next charge slot will be in 5  hours where import rates will be free (0.0p).
2026-08-16 05:05:03.241742: 
2026-08-16 05:05:03.298335: Plan calculation took 1.16 seconds
2026-08-16 05:05:03.301756: No high rate period found
2026-08-16 05:05:03.351957: Import threshold used for optimisation was 24.94p
2026-08-16 05:05:03.427080: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 94: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:05:03.437004: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:05:03.437208: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:05:03.437353: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:05:03.437748: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:05:03.437897: No export window planned
2026-08-16 05:05:03.438094: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:05:03.438155: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:05:03.438394: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:05:03.438665: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:05:03.438760: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:05:03.438878: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:05:03.439046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439434: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:05:03.439922: Inverter 0 count register writes 0
2026-08-16 05:05:03.460113: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:05:03.467176: Total inverter register writes now 826
2026-08-16 05:05:03.503687: Info: Completed run status Demand
2026-08-16 05:05:03.509934: Info: record_status Demand
2026-08-16 05:05:03.517120: Saved current settings to /config/predbat_config.json
2026-08-16 05:05:03.517481: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:05:32.087602: Info: HAHistory: Pruning history data started.
2026-08-16 05:05:32.092714: Info: HAHistory: Pruning history data completed.
2026-08-16 05:05:41.637061: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:05:41.637330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:05:41.637382: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:05:41.637603: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:05:41.637670: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:05:41.637699: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:05:41.637717: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:07:41.875203: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:07:41.875456: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:07:41.875499: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:07:41.875637: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:07:41.875678: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:07:41.875699: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:07:41.875717: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:09:42.100086: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:09:42.100334: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:09:42.100377: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:09:42.100512: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:09:42.100581: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:09:42.100605: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:09:42.100622: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:10:00.214386: --------------- PredBat - update at 2026-08-16 05:10:00+01:00 with clock skew 0 minutes, minutes now 310
2026-08-16 05:10:00.215170: Saved current settings to /config/predbat_config.json
2026-08-16 05:10:00.215373: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 05:10:00.215521: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:10:00.215655: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:10:00.237204: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:10:00.237346: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:10:00.237549: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:10:00.238250: Cars 1 charging from battery False 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-16 05:10:00.238410: Predbat mode is set to Control charge & discharge
2026-08-16 05:10:00.451962: Found 21602 load_today datapoints going back 27 days
2026-08-16 05:10:00.452131: Using load_power data to fill gaps in load_today data
2026-08-16 05:10:01.231385: Processing 721 30-minute periods for power integration
2026-08-16 05:10:01.400334: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:10:01.400464: Car charging hold False, threshold 6.0kWh
2026-08-16 05:10:01.400506: Current data so far today: load 3.35kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:10:01.414156: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:10:01.414628: Standing charge is set to 49.98p
2026-08-16 05:10:01.439026: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:10:01.439158: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:10:01.439387: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 309.9 minutes
2026-08-16 05:10:01.439808: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 309.8 minutes
2026-08-16 05:10:01.442949: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:10:01.530635: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:10:01.598072: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:10:01.598534: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:10:01.642471: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:10:01.642634: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:10:01.643906: High export rate found rates in range 99p to -99p
2026-08-16 05:10:01.726999: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:10:01.727148: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:10:01.741201: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.25p, rate_forward 1.0p
2026-08-16 05:10:01.741572: 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-16 05:10:01.795876: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:10:01.796012: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:10:01.875346: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:10:01.899900: Today's load divergence 96.59%, in-day adjustment 85.94%, damping 0.95x, yesterday 82.97% today 96.76% blend 78.47%
2026-08-16 05:10:01.900014: Today's predicted so far 3.89kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.89kWh forecast extra.
2026-08-16 05:10:01.900046: Today's actual load so far 3.37kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:10:01.938154: Inverter 0: Type SK Sunsynk
2026-08-16 05:10:01.938249: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:10:01.938442: Reserve min: 7%, battery_min: 7%
2026-08-16 05:10:01.938510: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:10:01.938776: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 530W, current battery voltage 51.2V, grid power -55W, load power 579W, PV Power 0W
2026-08-16 05:10:01.938921: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:10:01.938998: Inverter 0 scheduled charge enable is False
2026-08-16 05:10:01.939023: Inverter 0 charge windows currently []
2026-08-16 05:10:01.939044: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:10:01.939137: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:10:01.939167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:10:01.939197: Inverter 0 scheduled discharge enable is False
2026-08-16 05:10:01.939299: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:10:01.939330: Inverter 0 discharge windows currently []
2026-08-16 05:10:01.939349: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:10:01.939364: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:10:01.939378: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:10:01.998264: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:10:01.998372: Plan was last updated on 2026-08-16 05:00:00+01:00 and is now 10.0 minutes old
2026-08-16 05:10:01.998624: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:10:01.998689: Best export window [  ]
2026-08-16 05:10:01.999579: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:10:02.002868: Load divergence over 8.0 hours mean 364.42W, min 222.6W, max 708.0W, std dev 80.86W, divergence 11.09%
2026-08-16 05:10:02.020839: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:10:02.020925: LoadML is_calculating False
2026-08-16 05:10:02.021026: Creating pool of 12 processes to match your CPU count
2026-08-16 05:10:02.143887: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 381.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.57kWh, PV 0.0kWh
2026-08-16 05:10:02.306974: Battery has 14.58 hours left - now at 8.96kWh
2026-08-16 05:10:02.357341: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 406.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.39kWh, PV 0.0kWh
2026-08-16 05:10:02.441195: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 273.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.39kWh, PV 0.0kWh
2026-08-16 05:10:02.536924: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 240.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.57kWh, PV 0.0kWh
2026-08-16 05:10:02.537049: Saving plan best values to HA entities
2026-08-16 05:10:02.765393: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 05:10:02.772781: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:10:02.779201: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.1kWh, house 1.56kWh, export 0.0kWh, metric 240.26p, metric10 273.32p
2026-08-16 05:10:02.855267: Marginal costs baseline metric (no standing charge): 190.272
2026-08-16 05:10:03.084116: Marginal energy costs matrix computed: min=3.7 max=33.93
2026-08-16 05:10:03.161844: Rate array import [{'start': 310, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 310, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:10:03.162888: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 05:10:03.162958: - Import rates are expensive (24.1p - 27.0p) for the next 5 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:10:03.162991: - The battery is currently at 56% and is in eco mode for the next 5 and three quarters hours.
2026-08-16 05:10:03.163017: - For the next 48 hours there will be no solar generation.
2026-08-16 05:10:03.163043: - You will run out of battery in 26 hours.
2026-08-16 05:10:03.163070: - Your next charge slot will be in 5 and three quarters hours where import rates will be free (0.0p).
2026-08-16 05:10:03.163095: 
2026-08-16 05:10:03.219358: Plan calculation took 1.22 seconds
2026-08-16 05:10:03.222204: No high rate period found
2026-08-16 05:10:03.268936: Import threshold used for optimisation was 24.94p
2026-08-16 05:10:03.327879: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 94: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:10:03.336059: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:10:03.336207: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:10:03.336350: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:10:03.336692: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:10:03.336814: No export window planned
2026-08-16 05:10:03.336937: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:10:03.337019: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:10:03.337177: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:10:03.337378: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:10:03.337454: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:10:03.337549: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:10:03.337654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.337971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:03.338128: Inverter 0 count register writes 0
2026-08-16 05:10:03.360744: 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-16 05:10:03.360996: Recompute is saving previous plan...
2026-08-16 05:10:03.364248: Best charge window [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0% ]
2026-08-16 05:10:03.364353: Best export window [  ]
2026-08-16 05:10:03.365253: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:10:03.368377: Load divergence over 8.0 hours mean 364.42W, min 222.6W, max 708.0W, std dev 80.86W, divergence 11.09%
2026-08-16 05:10:03.386366: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:10:03.386529: LoadML is_calculating False
2026-08-16 05:10:03.386602: Creating pool of 12 processes to match your CPU count
2026-08-16 05:10:03.480444: 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(0.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-16 05:10:03.482145: Optimise levels pass started at 2026-08-16 05:10:03
2026-08-16 05:10:03.482202: Optimise all windows, total charge 94 export 1
2026-08-16 05:10:04.986660: >> Region optimisation pass width 960 gives best_metric 483.27p, best_cost 495.51p, best_cycle 41.19kWh, best_import 25.27kWh
2026-08-16 05:10:05.953848: >> Region optimisation pass width 480 gives best_metric 483.27p, best_cost 495.51p, best_cycle 41.19kWh, best_import 25.27kWh
2026-08-16 05:10:06.527620: >> Region optimisation pass width 240 gives best_metric 483.27p, best_cost 495.51p, best_cycle 41.19kWh, best_import 25.27kWh
2026-08-16 05:10:07.647616: >> Region optimisation pass width 120 gives best_metric 483.27p, best_cost 495.51p, best_cycle 41.19kWh, best_import 25.27kWh
2026-08-16 05:10:07.648122: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 59
2026-08-16 05:10:07.648209: Optimise levels pass ended at 2026-08-16 05:10:07, duration 4.2 seconds tried 351 combinations
2026-08-16 05:10:07.648291: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 483.27p, best_keep 0kWh, best_cycle 41.19kWh, best_carbon 0kg, best_import 25.27kWh
2026-08-16 05:10:07.668527: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.5, 12.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, 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-16 05:10:12.900924: Tweak plan optimisation started metric 151.07p, cost 166.21p
2026-08-16 05:10:13.212266: Tweak optimisation finished metric 151.07p, cost 166.21p, metric_keep 0kWh, cycle 20.39kWh, carbon 0kg, import 10.7kWh, changed 8 window(s)
2026-08-16 05:10:13.229395: Swap charge optimisation started metric 151.07p, cost 166.21p, min_improvement_swap 0.1p
2026-08-16 05:10:18.529937: Swap charge optimisation finished metric 151.07p, cost 166.21p
2026-08-16 05:10:18.639105: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 145.61p -> 145.61p, plan now metric 151.18p, cost 166.21p, cycle 20.39kWh, import 10.7kWh
2026-08-16 05:10:18.648913: Raw charge windows [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100% ] reserve 1.12
2026-08-16 05:10:18.649518: Unclipped charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:10:18.649814: Unfiltered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:10:18.650045: Filtered charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 47%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:10:18.680790: Previous plan best metric is 151.76 (cost 166.92) and new plan best metric is 151.07 (cost 166.21)
2026-08-16 05:10:18.681056: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:10:18.681258: Plan valid is now true after recompute was False
2026-08-16 05:10:18.704870: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 378.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.44kWh, PV 0.0kWh
2026-08-16 05:10:18.809632: Battery has 14.58 hours left - now at 8.96kWh
2026-08-16 05:10:18.847179: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 403.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.25kWh, PV 0.0kWh
2026-08-16 05:10:18.914360: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 253.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.25kWh, PV 0.0kWh
2026-08-16 05:10:18.983434: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 216.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.44kWh, PV 0.0kWh
2026-08-16 05:10:18.983525: Saving plan best values to HA entities
2026-08-16 05:10:19.141309: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 05:10:19.148251: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:10:19.155539: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.14kWh, house 1.56kWh, export 0.0kWh, metric 216.9p, metric10 253.18p
2026-08-16 05:10:19.232188: Marginal costs baseline metric (no standing charge): 166.9161
2026-08-16 05:10:19.516686: Marginal energy costs matrix computed: min=3.7 max=33.93
2026-08-16 05:10:19.607866: Rate array import [{'start': 310, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 310, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:10:19.608793: - Your estimated bill for today is £1.28 and tomorrow is £7.31
2026-08-16 05:10:19.608939: - Import rates are expensive (24.1p - 27.0p) for the next 5 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:10:19.609049: - The battery is currently at 56% and is in eco mode for the next 5 and three quarters hours.
2026-08-16 05:10:19.609071: - For the next 48 hours there will be no solar generation.
2026-08-16 05:10:19.609089: - You will run out of battery in 26 hours.
2026-08-16 05:10:19.609106: - Your next charge slot will be in 5 and three quarters hours where import rates will be free (0.0p).
2026-08-16 05:10:19.609123: 
2026-08-16 05:10:19.667135: Plan calculation took 16.31 seconds
2026-08-16 05:10:19.667605: Inverter 0: Type SK Sunsynk
2026-08-16 05:10:19.667682: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:10:19.668769: Reserve min: 7%, battery_min: 7%
2026-08-16 05:10:19.668867: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:10:19.669328: Inverter 0 SoC: 8.89kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 517W, current battery voltage 51.2V, grid power -55W, load power 563W, PV Power 0W
2026-08-16 05:10:19.669603: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:10:19.669739: Inverter 0 scheduled charge enable is False
2026-08-16 05:10:19.669792: Inverter 0 charge windows currently []
2026-08-16 05:10:19.669829: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:10:19.669950: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:10:19.669988: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:10:19.670026: Inverter 0 scheduled discharge enable is False
2026-08-16 05:10:19.670167: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:10:19.670207: Inverter 0 discharge windows currently []
2026-08-16 05:10:19.670231: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:10:19.670249: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:10:19.670267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:10:19.762845: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:10:19.763004: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:10:19.763101: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:10:19.763377: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:10:19.763512: No export window planned
2026-08-16 05:10:19.763685: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:10:19.763792: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:10:19.764020: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:10:19.764261: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:10:19.764352: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:10:19.764451: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:10:19.764601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.764944: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:10:19.765497: Inverter 0 count register writes 0
2026-08-16 05:10:19.788112: Total inverter register writes now 826
2026-08-16 05:10:19.823954: Info: Completed run status Demand
2026-08-16 05:10:19.830601: Info: record_status Demand
2026-08-16 05:10:19.837539: Saved current settings to /config/predbat_config.json
2026-08-16 05:10:19.837862: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:10:56.952202: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:10:56.952535: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:10:56.952596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:10:56.952823: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:10:56.952897: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:10:56.952937: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:10:56.953050: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:12:57.170698: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:12:57.170981: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:12:57.171027: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:12:57.171178: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:12:57.171220: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:12:57.171237: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:12:57.171263: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:14:57.408197: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:14:57.408469: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:14:57.408517: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:14:57.408693: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:14:57.408739: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:14:57.408764: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:14:57.408785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:15:00.514587: --------------- PredBat - update at 2026-08-16 05:15:00+01:00 with clock skew 0 minutes, minutes now 315
2026-08-16 05:15:00.515681: Saved current settings to /config/predbat_config.json
2026-08-16 05:15:00.515908: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 05:15:00.516085: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:15:00.516247: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:15:00.535935: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:15:00.536094: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:15:00.536290: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:15:00.537120: Cars 1 charging from battery False 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-16 05:15:00.537295: Predbat mode is set to Control charge & discharge
2026-08-16 05:15:00.726770: Found 21602 load_today datapoints going back 27 days
2026-08-16 05:15:00.726913: Using load_power data to fill gaps in load_today data
2026-08-16 05:15:01.530036: Processing 721 30-minute periods for power integration
2026-08-16 05:15:01.705960: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:15:01.706171: Car charging hold False, threshold 6.0kWh
2026-08-16 05:15:01.706214: Current data so far today: load 3.4kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:15:01.718113: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:15:01.718457: Standing charge is set to 49.98p
2026-08-16 05:15:01.748799: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:15:01.748907: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:15:01.749148: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 315.0 minutes
2026-08-16 05:15:01.749542: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 314.8 minutes
2026-08-16 05:15:01.752496: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:15:01.843030: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:15:01.908186: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:15:01.908641: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:15:01.967576: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:15:01.967790: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:15:01.969772: High export rate found rates in range 99p to -99p
2026-08-16 05:15:02.045757: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:15:02.045890: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:15:02.059880: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.25p, rate_forward 1.0p
2026-08-16 05:15:02.060256: 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-16 05:15:02.110510: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:15:02.110664: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:15:02.176082: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:15:02.200092: Today's load divergence 96.46%, in-day adjustment 85.96%, damping 0.95x, yesterday 82.97% today 96.64% blend 78.12%
2026-08-16 05:15:02.200208: Today's predicted so far 3.88kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.88kWh forecast extra.
2026-08-16 05:15:02.200237: Today's actual load so far 3.34kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:15:02.236016: Inverter 0: Type SK Sunsynk
2026-08-16 05:15:02.236100: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:15:02.236263: Reserve min: 7%, battery_min: 7%
2026-08-16 05:15:02.236323: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:15:02.236551: Inverter 0 SoC: 8.89kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 474W, current battery voltage 51.2V, grid power -54W, load power 519W, PV Power 0W
2026-08-16 05:15:02.236701: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:15:02.236780: Inverter 0 scheduled charge enable is False
2026-08-16 05:15:02.236805: Inverter 0 charge windows currently []
2026-08-16 05:15:02.236827: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:15:02.236917: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:15:02.236983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:15:02.237052: Inverter 0 scheduled discharge enable is False
2026-08-16 05:15:02.237222: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:15:02.237256: Inverter 0 discharge windows currently []
2026-08-16 05:15:02.237276: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:15:02.237291: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:15:02.237306: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:15:02.301579: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:15:02.301712: Plan was last updated on 2026-08-16 05:10:00+01:00 and is now 5.0 minutes old
2026-08-16 05:15:02.302035: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:15:02.302107: Best export window [  ]
2026-08-16 05:15:02.303351: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:15:02.308742: Load divergence over 8.0 hours mean 365.81W, min 244.8W, max 864.0W, std dev 93.61W, divergence 12.8%
2026-08-16 05:15:02.334312: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:15:02.334772: LoadML is_calculating False
2026-08-16 05:15:02.334864: Creating pool of 12 processes to match your CPU count
2026-08-16 05:15:02.464059: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 381.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:45:00, load 20.52kWh, PV 0.0kWh
2026-08-16 05:15:02.601376: Battery has 14.5 hours left - now at 8.89kWh
2026-08-16 05:15:02.647134: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 406.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.33kWh, PV 0.0kWh
2026-08-16 05:15:02.741276: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 263.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.33kWh, PV 0.0kWh
2026-08-16 05:15:02.823817: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 229.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.52kWh, PV 0.0kWh
2026-08-16 05:15:02.823913: Saving plan best values to HA entities
2026-08-16 05:15:03.015424: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 05:15:03.021534: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:15:03.027241: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.65kWh, house 1.55kWh, export 0.0kWh, metric 229.12p, metric10 263.9p
2026-08-16 05:15:03.096838: Marginal costs baseline metric (no standing charge): 179.1336
2026-08-16 05:15:03.313640: Marginal energy costs matrix computed: min=5.64 max=34.05
2026-08-16 05:15:03.381712: Rate array import [{'start': 315, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 315, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:15:03.382302: - Your estimated bill for today is £1.29 and tomorrow is £7.33
2026-08-16 05:15:03.382340: - Import rates are expensive (24.1p - 27.0p) for the next 5 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:15:03.382358: - The battery is currently at 56% and is in eco mode for the next 5 and three quarters hours.
2026-08-16 05:15:03.382373: - For the next 48 hours there will be no solar generation.
2026-08-16 05:15:03.382387: - You will run out of battery in 26 hours.
2026-08-16 05:15:03.382401: - Your next charge slot will be in 5 and three quarters hours where import rates will be free (0.0p).
2026-08-16 05:15:03.382423: 
2026-08-16 05:15:03.437370: Plan calculation took 1.14 seconds
2026-08-16 05:15:03.440724: No high rate period found
2026-08-16 05:15:03.508036: Import threshold used for optimisation was 24.06p
2026-08-16 05:15:03.567279: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 94: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:15:03.576110: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 05:15:03.576239: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:15:03.576354: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:15:03.576588: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:15:03.576692: No export window planned
2026-08-16 05:15:03.576807: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:15:03.576840: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:15:03.577015: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:15:03.577207: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:15:03.577269: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:15:03.577349: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:15:03.577449: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577536: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577587: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:15:03.577894: Inverter 0 count register writes 0
2026-08-16 05:15:03.598205: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:15:03.603977: Total inverter register writes now 826
2026-08-16 05:15:03.641171: Info: Completed run status Demand
2026-08-16 05:15:03.648589: Info: record_status Demand
2026-08-16 05:15:03.656426: Saved current settings to /config/predbat_config.json
2026-08-16 05:15:03.656725: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:15:41.767422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:15:41.767698: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:15:41.767751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:15:41.767894: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:15:41.767938: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:15:41.767960: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:15:41.767978: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:17:06.099754: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 05:17:07.026412: Processing 1297 30-minute periods for power integration
2026-08-16 05:17:07.118132: ML Component: Car charging hold False, car energy reported load False
2026-08-16 05:17:07.215240: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:17:07.318904: ML Temperature data points: 48646
2026-08-16 05:17:07.634588: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 05:17:07.689619: ML Component: Data fetch completed, load data age 57.0 days, 16615 data points
2026-08-16 05:17:07.689811: ML Component: No training needed, model age is 1.81 hours
2026-08-16 05:17:07.689918: ML Component: Generating predictions load data age 57.0 days, 16615 data points
2026-08-16 05:17:07.860471: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0479 max_dow {0: 0.10210624996256083, 1: 0.10689687554407865, 2: 0.11675312483031303, 3: 0.12371874963529408, 4: 0.16831249989941716, 5: 0.09602222218207186, 6: 0.10714375132601708}
2026-08-16 05:17:13.855692: ML Component: Generated 576 predictions (total 28.96 kWh over 48h)
2026-08-16 05:17:13.906863: ML Component: Prediction cycle completed
2026-08-16 05:17:14.020020: ML Component: Saved 16615 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 05:17:41.854669: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:17:41.855016: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:17:41.855089: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:17:41.855305: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:17:41.855368: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:17:41.855406: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:17:41.855440: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:19:42.092626: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:19:42.092870: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:19:42.092906: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:19:42.093112: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:19:42.093157: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:19:42.093180: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:19:42.093198: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:20:00.194566: --------------- PredBat - update at 2026-08-16 05:20:00+01:00 with clock skew 0 minutes, minutes now 320
2026-08-16 05:20:00.195466: Saved current settings to /config/predbat_config.json
2026-08-16 05:20:00.195633: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 05:20:00.195936: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:20:00.196054: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:20:00.215002: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:20:00.215122: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:20:00.215265: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:20:00.215844: Cars 1 charging from battery False 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-16 05:20:00.215950: Predbat mode is set to Control charge & discharge
2026-08-16 05:20:00.383933: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:20:00.384086: Using load_power data to fill gaps in load_today data
2026-08-16 05:20:01.164543: Processing 721 30-minute periods for power integration
2026-08-16 05:20:01.339327: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:20:01.339459: Car charging hold False, threshold 6.0kWh
2026-08-16 05:20:01.339500: Current data so far today: load 3.45kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:20:01.351122: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:20:01.351460: Standing charge is set to 49.98p
2026-08-16 05:20:01.373684: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:20:01.373777: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:20:01.374080: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 319.9 minutes
2026-08-16 05:20:01.374660: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 319.8 minutes
2026-08-16 05:20:01.378623: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:20:01.454785: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:20:01.506446: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:20:01.506802: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:20:01.541882: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:20:01.541994: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:20:01.543054: High export rate found rates in range 99p to -99p
2026-08-16 05:20:01.611385: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:20:01.611614: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:20:01.628009: Battery level now 8.89kWh, -1hr ago 9.33kWh, at midnight 12.21kWh, battery value change in the last hour -0.44p, change today -3.32p, rate_forward 1.0p
2026-08-16 05:20:01.628485: 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-16 05:20:01.689781: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:20:01.689924: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:20:01.774692: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:20:01.798817: Today's load divergence 96.67%, in-day adjustment 86.05%, damping 0.95x, yesterday 82.97% today 96.83% blend 77.78%
2026-08-16 05:20:01.798922: Today's predicted so far 3.9kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.9kWh forecast extra.
2026-08-16 05:20:01.798954: Today's actual load so far 3.39kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:20:01.839217: Inverter 0: Type SK Sunsynk
2026-08-16 05:20:01.839313: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:20:01.839506: Reserve min: 7%, battery_min: 7%
2026-08-16 05:20:01.839599: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:20:01.839881: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 528W, current battery voltage 51.2V, grid power -53W, load power 575W, PV Power 0W
2026-08-16 05:20:01.840067: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:20:01.840156: Inverter 0 scheduled charge enable is False
2026-08-16 05:20:01.840185: Inverter 0 charge windows currently []
2026-08-16 05:20:01.840211: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:20:01.840324: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:20:01.840359: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:20:01.840393: Inverter 0 scheduled discharge enable is False
2026-08-16 05:20:01.840541: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:20:01.840581: Inverter 0 discharge windows currently []
2026-08-16 05:20:01.840604: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:20:01.840622: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:20:01.840639: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:20:01.906852: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:20:01.906963: Plan was last updated on 2026-08-16 05:10:00+01:00 and is now 10.0 minutes old
2026-08-16 05:20:01.907229: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:20:01.907273: Best export window [  ]
2026-08-16 05:20:01.908135: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:20:01.911274: Load divergence over 8.0 hours mean 364.21W, min 252.0W, max 891.6W, std dev 90.8W, divergence 12.47%
2026-08-16 05:20:01.929843: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:20:01.929963: LoadML is_calculating False
2026-08-16 05:20:01.930024: Creating pool of 12 processes to match your CPU count
2026-08-16 05:20:02.044347: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 384.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.6kWh, PV 0.0kWh
2026-08-16 05:20:02.174956: Battery has 14.25 hours left - now at 8.8kWh
2026-08-16 05:20:02.216968: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 409.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.42kWh, PV 0.0kWh
2026-08-16 05:20:02.291197: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 275.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.42kWh, PV 0.0kWh
2026-08-16 05:20:02.368185: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 241.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.6kWh, PV 0.0kWh
2026-08-16 05:20:02.368298: Saving plan best values to HA entities
2026-08-16 05:20:02.548086: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:20:02.554086: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:20:02.560026: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.19kWh, house 1.55kWh, export 0.0kWh, metric 241.89p, metric10 275.18p
2026-08-16 05:20:02.643578: Marginal costs baseline metric (no standing charge): 191.9108
2026-08-16 05:20:02.930156: Marginal energy costs matrix computed: min=7.7 max=34.18
2026-08-16 05:20:03.005970: Rate array import [{'start': 320, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 320, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:20:03.006839: - Your estimated bill for today is £1.30 and tomorrow is £7.33
2026-08-16 05:20:03.006898: - Import rates are expensive (24.1p - 27.0p) for the next 5 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:20:03.006931: - The battery is currently at 55% and is in eco mode for the next 5 and three quarters hours.
2026-08-16 05:20:03.006977: - For the next 48 hours there will be no solar generation.
2026-08-16 05:20:03.007002: - You will run out of battery in 26 hours.
2026-08-16 05:20:03.007035: - Your next charge slot will be in 5 and three quarters hours where import rates will be free (0.0p).
2026-08-16 05:20:03.007069: 
2026-08-16 05:20:03.069553: Plan calculation took 1.16 seconds
2026-08-16 05:20:03.073365: No high rate period found
2026-08-16 05:20:03.151590: Import threshold used for optimisation was 24.06p
2026-08-16 05:20:03.212360: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 94: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:20:03.219390: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 55%, target 100%
2026-08-16 05:20:03.219536: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:20:03.219665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:20:03.219955: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:20:03.220046: No export window planned
2026-08-16 05:20:03.220179: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:20:03.220247: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:20:03.220422: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:20:03.220638: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:20:03.220700: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:20:03.220781: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:20:03.220900: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.220986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221098: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221140: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221213: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:03.221621: Inverter 0 count register writes 0
2026-08-16 05:20:03.238508: 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-16 05:20:03.238754: Recompute is saving previous plan...
2026-08-16 05:20:03.241454: Best charge window [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0% ]
2026-08-16 05:20:03.241548: Best export window [  ]
2026-08-16 05:20:03.242282: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:20:03.244790: Load divergence over 8.0 hours mean 364.21W, min 252.0W, max 891.6W, std dev 90.8W, divergence 12.47%
2026-08-16 05:20:03.261350: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:20:03.261547: LoadML is_calculating False
2026-08-16 05:20:03.261724: Creating pool of 12 processes to match your CPU count
2026-08-16 05:20:03.342652: 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(0.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-16 05:20:03.344429: Optimise levels pass started at 2026-08-16 05:20:03
2026-08-16 05:20:03.344487: Optimise all windows, total charge 94 export 1
2026-08-16 05:20:04.027201: >> Region optimisation pass width 960 gives best_metric 487.53p, best_cost 499.62p, best_cycle 38.94kWh, best_import 25.28kWh
2026-08-16 05:20:04.431517: >> Region optimisation pass width 480 gives best_metric 487.53p, best_cost 499.62p, best_cycle 38.94kWh, best_import 25.28kWh
2026-08-16 05:20:04.909221: >> Region optimisation pass width 240 gives best_metric 487.53p, best_cost 499.62p, best_cycle 38.94kWh, best_import 25.28kWh
2026-08-16 05:20:05.902604: >> Region optimisation pass width 120 gives best_metric 487.53p, best_cost 499.62p, best_cycle 38.94kWh, best_import 25.28kWh
2026-08-16 05:20:05.903027: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 59
2026-08-16 05:20:05.903107: Optimise levels pass ended at 2026-08-16 05:20:05, duration 2.6 seconds tried 315 combinations
2026-08-16 05:20:05.903174: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 487.53p, best_keep 0kWh, best_cycle 38.94kWh, best_carbon 0kg, best_import 25.28kWh
2026-08-16 05:20:05.922608: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 05:20:10.927834: Tweak plan optimisation started metric 153.25p, cost 168.49p
2026-08-16 05:20:11.242706: Tweak optimisation finished metric 153.25p, cost 168.49p, metric_keep 0kWh, cycle 20.13kWh, carbon 0kg, import 10.77kWh, changed 8 window(s)
2026-08-16 05:20:11.258532: Swap charge optimisation started metric 153.25p, cost 168.49p, min_improvement_swap 0.1p
2026-08-16 05:20:16.206736: Swap charge optimisation finished metric 153.25p, cost 168.49p
2026-08-16 05:20:16.308922: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 147.89p -> 147.89p, plan now metric 153.36p, cost 168.49p, cycle 20.13kWh, import 10.77kWh
2026-08-16 05:20:16.323269: Raw charge windows [ 16-08 05:00:00 - 16-08 05:30:00 @ 27.03p 0%, 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100% ] reserve 1.12
2026-08-16 05:20:16.324470: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:20:16.324742: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:20:16.324918: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:20:16.356201: Previous plan best metric is 153.36 (cost 168.49) and new plan best metric is 153.25 (cost 168.49)
2026-08-16 05:20:16.356440: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:20:16.356637: Plan valid is now true after recompute was False
2026-08-16 05:20:16.380041: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 381.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.47kWh, PV 0.0kWh
2026-08-16 05:20:16.498061: Battery has 14.25 hours left - now at 8.8kWh
2026-08-16 05:20:16.557126: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 406.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.28kWh, PV 0.0kWh
2026-08-16 05:20:16.637264: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 254.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.28kWh, PV 0.0kWh
2026-08-16 05:20:16.709947: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 218.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.47kWh, PV 0.0kWh
2026-08-16 05:20:16.710029: Saving plan best values to HA entities
2026-08-16 05:20:16.865719: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:20:16.871866: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:20:16.877062: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.22kWh, house 1.55kWh, export 0.0kWh, metric 218.47p, metric10 254.97p
2026-08-16 05:20:16.952903: Marginal costs baseline metric (no standing charge): 168.4894
2026-08-16 05:20:17.186303: Marginal energy costs matrix computed: min=7.7 max=34.18
2026-08-16 05:20:17.250923: Rate array import [{'start': 320, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 320, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:20:17.251687: - Your estimated bill for today is £1.30 and tomorrow is £7.33
2026-08-16 05:20:17.251743: - Import rates are expensive (24.1p - 27.0p) for the next 5 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:20:17.251764: - The battery is currently at 55% and is in eco mode for the next 5 and three quarters hours.
2026-08-16 05:20:17.251779: - For the next 48 hours there will be no solar generation.
2026-08-16 05:20:17.251793: - You will run out of battery in 26 hours.
2026-08-16 05:20:17.251811: - Your next charge slot will be in 5 and three quarters hours where import rates will be free (0.0p).
2026-08-16 05:20:17.251825: 
2026-08-16 05:20:17.305766: Plan calculation took 14.07 seconds
2026-08-16 05:20:17.306141: Inverter 0: Type SK Sunsynk
2026-08-16 05:20:17.306189: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:20:17.306415: Reserve min: 7%, battery_min: 7%
2026-08-16 05:20:17.306495: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:20:17.306863: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 510W, current battery voltage 51.2V, grid power -54W, load power 557W, PV Power 0W
2026-08-16 05:20:17.307105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:20:17.307216: Inverter 0 scheduled charge enable is False
2026-08-16 05:20:17.307256: Inverter 0 charge windows currently []
2026-08-16 05:20:17.307286: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:20:17.307392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:20:17.307428: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:20:17.307463: Inverter 0 scheduled discharge enable is False
2026-08-16 05:20:17.307609: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:20:17.307649: Inverter 0 discharge windows currently []
2026-08-16 05:20:17.307672: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:20:17.307694: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:20:17.307712: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:20:17.363817: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 55%, target 100%
2026-08-16 05:20:17.363971: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:20:17.364042: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:20:17.364257: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:20:17.364340: No export window planned
2026-08-16 05:20:17.364449: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:20:17.364485: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:20:17.364663: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:20:17.364832: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:20:17.364907: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:20:17.365017: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:20:17.365153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365243: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365270: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365639: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:20:17.365748: Inverter 0 count register writes 0
2026-08-16 05:20:17.388136: Total inverter register writes now 826
2026-08-16 05:20:17.426147: Info: Completed run status Demand
2026-08-16 05:20:17.433287: Info: record_status Demand
2026-08-16 05:20:17.440620: Saved current settings to /config/predbat_config.json
2026-08-16 05:20:17.440991: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:20:56.551797: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:20:56.552151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:20:56.552216: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:20:56.552436: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:20:56.552499: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:20:56.552548: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:20:56.552578: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:22:56.793273: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:22:56.793631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:22:56.793744: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:22:56.793960: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:22:56.794024: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:22:56.794046: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:22:56.794088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:24:57.018670: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:24:57.018913: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:24:57.018956: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:24:57.019135: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:24:57.019180: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:24:57.019201: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:24:57.019218: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:25:00.103571: --------------- PredBat - update at 2026-08-16 05:25:00+01:00 with clock skew 0 minutes, minutes now 325
2026-08-16 05:25:00.104530: Saved current settings to /config/predbat_config.json
2026-08-16 05:25:00.104755: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 05:25:00.104931: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:25:00.105179: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:25:00.126341: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:25:00.126512: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:25:00.126771: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:25:00.127367: Cars 1 charging from battery False 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-16 05:25:00.127572: Predbat mode is set to Control charge & discharge
2026-08-16 05:25:00.332911: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:25:00.333692: Using load_power data to fill gaps in load_today data
2026-08-16 05:25:01.086037: Processing 721 30-minute periods for power integration
2026-08-16 05:25:01.235054: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:25:01.235166: Car charging hold False, threshold 6.0kWh
2026-08-16 05:25:01.235203: Current data so far today: load 3.5kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:25:01.246920: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:25:01.247290: Standing charge is set to 49.98p
2026-08-16 05:25:01.275710: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:25:01.275794: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:25:01.275967: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 324.9 minutes
2026-08-16 05:25:01.276293: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 324.8 minutes
2026-08-16 05:25:01.278886: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:25:01.348419: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:25:01.398248: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:25:01.398759: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:25:01.432832: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:25:01.432986: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:25:01.434018: High export rate found rates in range 99p to -99p
2026-08-16 05:25:01.501850: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:25:01.501977: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:25:01.518022: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.41p, rate_forward 1.0p
2026-08-16 05:25:01.518394: 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-16 05:25:01.569223: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:25:01.569342: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:25:01.629987: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:25:01.649773: Today's load divergence 96.94%, in-day adjustment 86.16%, damping 0.95x, yesterday 82.97% today 97.09% blend 77.43%
2026-08-16 05:25:01.649863: Today's predicted so far 3.92kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 3.92kWh forecast extra.
2026-08-16 05:25:01.649888: Today's actual load so far 3.45kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:25:01.686205: Inverter 0: Type SK Sunsynk
2026-08-16 05:25:01.686302: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:25:01.686586: Reserve min: 7%, battery_min: 7%
2026-08-16 05:25:01.686671: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:25:01.686933: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 442W, current battery voltage 51.2V, grid power -55W, load power 488W, PV Power 0W
2026-08-16 05:25:01.687093: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:25:01.687184: Inverter 0 scheduled charge enable is False
2026-08-16 05:25:01.687218: Inverter 0 charge windows currently []
2026-08-16 05:25:01.687244: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:25:01.687345: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:25:01.687382: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:25:01.687417: Inverter 0 scheduled discharge enable is False
2026-08-16 05:25:01.687583: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:25:01.687621: Inverter 0 discharge windows currently []
2026-08-16 05:25:01.687643: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:25:01.687662: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:25:01.687679: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:25:01.748685: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:25:01.748797: Plan was last updated on 2026-08-16 05:20:00+01:00 and is now 5.0 minutes old
2026-08-16 05:25:01.749101: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:25:01.749151: Best export window [  ]
2026-08-16 05:25:01.749963: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:25:01.753470: Load divergence over 8.0 hours mean 362.49W, min 264.6W, max 912.0W, std dev 89.67W, divergence 12.37%
2026-08-16 05:25:01.772336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:25:01.772475: LoadML is_calculating False
2026-08-16 05:25:01.772560: Creating pool of 12 processes to match your CPU count
2026-08-16 05:25:01.912233: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 382.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.56kWh, PV 0.0kWh
2026-08-16 05:25:02.071098: Battery has 14.25 hours left - now at 8.8kWh
2026-08-16 05:25:02.116012: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 407.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.37kWh, PV 0.0kWh
2026-08-16 05:25:02.198468: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 264.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 21.37kWh, PV 0.0kWh
2026-08-16 05:25:02.281416: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 229.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.56kWh, PV 0.0kWh
2026-08-16 05:25:02.281534: Saving plan best values to HA entities
2026-08-16 05:25:02.452976: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:25:02.459839: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:25:02.465977: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.69kWh, house 1.55kWh, export 0.0kWh, metric 229.87p, metric10 264.62p
2026-08-16 05:25:02.541137: Marginal costs baseline metric (no standing charge): 179.8888
2026-08-16 05:25:02.830081: Marginal energy costs matrix computed: min=9.63 max=34.29
2026-08-16 05:25:02.933555: Rate array import [{'start': 325, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 27.0p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 325, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:25:02.934845: - Your estimated bill for today is £1.30 and tomorrow is £7.34
2026-08-16 05:25:02.934909: - Import rates are expensive (24.1p - 27.0p) for the next 5 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:25:02.934952: - The battery is currently at 55% and is in eco mode for the next 5 and a half hours.
2026-08-16 05:25:02.934987: - For the next 48 hours there will be no solar generation.
2026-08-16 05:25:02.935020: - You will run out of battery in 26 hours.
2026-08-16 05:25:02.935055: - Your next charge slot will be in 5 and a half hours where import rates will be free (0.0p).
2026-08-16 05:25:02.935088: 
2026-08-16 05:25:02.996144: Plan calculation took 1.25 seconds
2026-08-16 05:25:03.000151: No high rate period found
2026-08-16 05:25:03.070293: Import threshold used for optimisation was 23.43p
2026-08-16 05:25:03.140866: Low import rate windows [0: 08-16 05:00:00 - 08-16 05:30:00 @ 27.03, 1: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 2: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 3: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 4: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 5: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 6: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 7: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 8: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 9: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 10: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 11: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 12: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 13: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 14: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 15: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 16: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 17: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 18: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 19: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 20: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 21: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 22: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 23: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 24: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 25: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 26: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 27: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 28: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 29: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 30: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 31: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 32: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 33: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 34: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 35: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 36: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 37: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 38: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 39: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 40: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 41: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 42: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 43: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 44: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 45: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 46: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 47: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 48: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 49: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 50: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 51: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 52: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 53: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 54: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 55: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 56: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 57: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 58: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 59: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 60: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 61: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 62: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 63: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 64: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 65: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 66: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 67: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 68: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 69: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 70: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 71: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 72: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 73: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 74: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 75: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 76: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 77: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 78: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 79: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 80: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 81: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 82: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 83: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 84: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 85: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 86: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 87: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 88: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 89: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 90: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 91: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 92: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 93: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 94: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:25:03.152378: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 55%, target 100%
2026-08-16 05:25:03.152578: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:25:03.152705: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:25:03.153116: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:25:03.153249: No export window planned
2026-08-16 05:25:03.153436: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:25:03.153521: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:25:03.153716: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:25:03.153960: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:25:03.154057: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:25:03.154171: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:25:03.154333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154577: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154694: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.154945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.155003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.155048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.155097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.155158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:25:03.155214: Inverter 0 count register writes 0
2026-08-16 05:25:03.178805: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:25:03.184516: Total inverter register writes now 826
2026-08-16 05:25:03.220633: Info: Completed run status Demand
2026-08-16 05:25:03.227125: Info: record_status Demand
2026-08-16 05:25:03.234760: Saved current settings to /config/predbat_config.json
2026-08-16 05:25:03.235169: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:25:42.355110: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:25:42.355425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:25:42.355528: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:25:42.355755: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:25:42.355808: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:25:42.355842: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:25:42.355878: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:27:56.596241: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:27:56.596545: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:27:56.596586: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:27:56.596715: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:27:56.596755: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:27:56.596776: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:27:56.596794: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:29:56.824052: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:29:56.824307: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:29:56.824343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:29:56.824474: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:29:56.824528: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:29:56.824558: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:29:56.824577: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:30:00.910905: --------------- PredBat - update at 2026-08-16 05:30:00+01:00 with clock skew 0 minutes, minutes now 330
2026-08-16 05:30:00.911720: Saved current settings to /config/predbat_config.json
2026-08-16 05:30:00.911859: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 05:30:00.911936: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:30:00.912070: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:30:00.936178: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:30:00.936371: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:30:00.936707: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:30:00.937659: Cars 1 charging from battery False 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-16 05:30:00.937883: Predbat mode is set to Control charge & discharge
2026-08-16 05:30:01.187227: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:30:01.187407: Using load_power data to fill gaps in load_today data
2026-08-16 05:30:02.071768: Processing 721 30-minute periods for power integration
2026-08-16 05:30:02.255467: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:30:02.255625: Car charging hold False, threshold 6.0kWh
2026-08-16 05:30:02.255693: Current data so far today: load 3.4kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:30:02.270239: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:30:02.270658: Standing charge is set to 49.98p
2026-08-16 05:30:02.300462: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:30:02.300592: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:30:02.300843: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 330.0 minutes
2026-08-16 05:30:02.301341: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 329.8 minutes
2026-08-16 05:30:02.304476: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:30:02.391092: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:30:02.454438: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:30:02.455331: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:30:02.497691: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:30:02.497826: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:30:02.499112: High export rate found rates in range 99p to -99p
2026-08-16 05:30:02.582068: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:30:02.582446: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:30:02.596858: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.41p, rate_forward 1.0p
2026-08-16 05:30:02.597424: 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-16 05:30:02.660067: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:30:02.660207: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:30:02.738233: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:30:02.762917: Today's load divergence 95.89%, in-day adjustment 85.98%, damping 0.95x, yesterday 82.97% today 96.1% blend 77.08%
2026-08-16 05:30:02.763362: Today's predicted so far 4.04kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.04kWh forecast extra.
2026-08-16 05:30:02.763427: Today's actual load so far 3.42kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:30:02.816973: Inverter 0: Type SK Sunsynk
2026-08-16 05:30:02.817088: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:30:02.817365: Reserve min: 7%, battery_min: 7%
2026-08-16 05:30:02.817493: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:30:02.817977: Inverter 0 SoC: 8.7kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 545W, PV Power 0W
2026-08-16 05:30:02.818218: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:30:02.818356: Inverter 0 scheduled charge enable is False
2026-08-16 05:30:02.818415: Inverter 0 charge windows currently []
2026-08-16 05:30:02.818466: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:30:02.818649: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:30:02.818694: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:30:02.818743: Inverter 0 scheduled discharge enable is False
2026-08-16 05:30:02.818968: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:30:02.819014: Inverter 0 discharge windows currently []
2026-08-16 05:30:02.819038: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:30:02.819061: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:30:02.819105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:30:02.922659: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:30:02.922799: Plan was last updated on 2026-08-16 05:20:00+01:00 and is now 10.0 minutes old
2026-08-16 05:30:02.923172: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:30:02.923232: Best export window [  ]
2026-08-16 05:30:02.924183: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:30:02.926935: Load divergence over 8.0 hours mean 359.55W, min 223.8W, max 1097.4W, std dev 97.42W, divergence 13.55%
2026-08-16 05:30:02.942589: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:30:02.942724: LoadML is_calculating False
2026-08-16 05:30:02.942810: Creating pool of 12 processes to match your CPU count
2026-08-16 05:30:03.066198: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 385.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.48kWh, PV 0.0kWh
2026-08-16 05:30:03.207555: Battery has 14.08 hours left - now at 8.7kWh
2026-08-16 05:30:03.256266: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 410.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.29kWh, PV 0.0kWh
2026-08-16 05:30:03.349319: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 275.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.29kWh, PV 0.0kWh
2026-08-16 05:30:03.437631: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 242.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.48kWh, PV 0.0kWh
2026-08-16 05:30:03.437731: Saving plan best values to HA entities
2026-08-16 05:30:03.644149: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:30:03.650480: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:30:03.655318: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.21kWh, house 1.56kWh, export 0.0kWh, metric 242.58p, metric10 275.88p
2026-08-16 05:30:03.718764: Marginal costs baseline metric (no standing charge): 192.5987
2026-08-16 05:30:03.966286: Marginal energy costs matrix computed: min=11.81 max=34.44
2026-08-16 05:30:04.067765: Rate array import [{'start': 330, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 330, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:30:04.068483: - Your estimated bill for today is £1.31 and tomorrow is £7.32
2026-08-16 05:30:04.068552: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:30:04.068578: - The battery is currently at 54% and is in eco mode for the next 5 and a half hours.
2026-08-16 05:30:04.068597: - For the next 48 hours there will be no solar generation.
2026-08-16 05:30:04.068620: - You will run out of battery in 26 hours.
2026-08-16 05:30:04.068639: - Your next charge slot will be in 5 and a half hours where import rates will be free (0.0p).
2026-08-16 05:30:04.068662: 
2026-08-16 05:30:04.133208: Plan calculation took 1.21 seconds
2026-08-16 05:30:04.136492: No high rate period found
2026-08-16 05:30:04.196450: Import threshold used for optimisation was 23.43p
2026-08-16 05:30:04.256030: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03]
2026-08-16 05:30:04.265693: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:30:04.265871: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:30:04.266025: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:30:04.266364: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:30:04.266489: No export window planned
2026-08-16 05:30:04.266702: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:30:04.266750: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:30:04.266961: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:30:04.267222: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:30:04.267307: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:30:04.267423: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:30:04.267588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267876: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.267931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:04.268400: Inverter 0 count register writes 0
2026-08-16 05:30:04.286620: 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-16 05:30:04.286855: Recompute is saving previous plan...
2026-08-16 05:30:04.290132: Best charge window [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0% ]
2026-08-16 05:30:04.290221: Best export window [  ]
2026-08-16 05:30:04.291113: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:30:04.294471: Load divergence over 8.0 hours mean 359.55W, min 223.8W, max 1097.4W, std dev 97.42W, divergence 13.55%
2026-08-16 05:30:04.312393: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:30:04.312541: LoadML is_calculating False
2026-08-16 05:30:04.312631: Creating pool of 12 processes to match your CPU count
2026-08-16 05:30:04.405323: 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(0.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-16 05:30:04.407525: Optimise levels pass started at 2026-08-16 05:30:04
2026-08-16 05:30:04.407598: Optimise all windows, total charge 94 export 1
2026-08-16 05:30:05.716317: >> Region optimisation pass width 960 gives best_metric 491.01p, best_cost 503.08p, best_cycle 38.87kWh, best_import 25.4kWh
2026-08-16 05:30:06.194226: >> Region optimisation pass width 480 gives best_metric 491.01p, best_cost 503.08p, best_cycle 38.87kWh, best_import 25.4kWh
2026-08-16 05:30:06.796142: >> Region optimisation pass width 240 gives best_metric 491.01p, best_cost 503.08p, best_cycle 38.87kWh, best_import 25.4kWh
2026-08-16 05:30:07.966857: >> Region optimisation pass width 120 gives best_metric 491.01p, best_cost 503.08p, best_cycle 38.87kWh, best_import 25.4kWh
2026-08-16 05:30:07.967380: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 58
2026-08-16 05:30:07.967489: Optimise levels pass ended at 2026-08-16 05:30:07, duration 3.6 seconds tried 312 combinations
2026-08-16 05:30:07.967631: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 491.01p, best_keep 0kWh, best_cycle 38.87kWh, best_carbon 0kg, best_import 25.4kWh
2026-08-16 05:30:07.988156: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 05:30:13.351623: Tweak plan optimisation started metric 154.04p, cost 169.3p
2026-08-16 05:30:13.725006: Tweak optimisation finished metric 154.04p, cost 169.3p, metric_keep 0kWh, cycle 21.32kWh, carbon 0kg, import 10.89kWh, changed 8 window(s)
2026-08-16 05:30:13.746455: Swap charge optimisation started metric 154.04p, cost 169.3p, min_improvement_swap 0.1p
2026-08-16 05:30:14.827006: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 05:30:17.056377: Processing 1345 30-minute periods for power integration
2026-08-16 05:30:17.242646: ML Component: Car charging hold False, car energy reported load False
2026-08-16 05:30:17.459625: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:30:17.683862: ML Temperature data points: 50071
2026-08-16 05:30:18.257442: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 05:30:18.346075: ML Component: Data fetch completed, load data age 57.0 days, 16618 data points
2026-08-16 05:30:18.351333: ML Component: Starting fine-tune training (2h interval), model age is 2.0582286716666665 hours
2026-08-16 05:30:18.356501: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-16 05:30:21.381866: Swap charge optimisation finished metric 154.04p, cost 169.3p
2026-08-16 05:30:21.517349: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 148.7p -> 148.7p, plan now metric 154.16p, cost 169.3p, cycle 21.32kWh, import 10.89kWh
2026-08-16 05:30:21.529410: Raw charge windows [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 75%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100% ] reserve 1.12
2026-08-16 05:30:21.530118: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:30:21.530468: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:30:21.530782: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 05:30:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 05:30:21.568706: Previous plan best metric is 154.0 (cost 169.13) and new plan best metric is 154.04 (cost 169.3)
2026-08-16 05:30:21.568996: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:30:21.569228: Plan valid is now true after recompute was False
2026-08-16 05:30:21.597861: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 382.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.34kWh, PV 0.0kWh
2026-08-16 05:30:21.718829: Battery has 14.08 hours left - now at 8.7kWh
2026-08-16 05:30:21.767096: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 407.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.15kWh, PV 0.0kWh
2026-08-16 05:30:21.845733: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 255.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.15kWh, PV 0.0kWh
2026-08-16 05:30:21.925547: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 219.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.34kWh, PV 0.0kWh
2026-08-16 05:30:21.925634: Saving plan best values to HA entities
2026-08-16 05:30:22.071112: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:30:22.077256: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:30:22.082537: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.24kWh, house 1.56kWh, export 0.0kWh, metric 219.11p, metric10 255.63p
2026-08-16 05:30:22.153827: Marginal costs baseline metric (no standing charge): 169.1263
2026-08-16 05:30:22.409757: Marginal energy costs matrix computed: min=11.81 max=34.44
2026-08-16 05:30:22.480982: Rate array import [{'start': 330, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 330, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:30:22.481689: - Your estimated bill for today is £1.31 and tomorrow is £7.32
2026-08-16 05:30:22.481737: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:30:22.481760: - The battery is currently at 54% and is in eco mode for the next 5 and a half hours.
2026-08-16 05:30:22.481778: - For the next 48 hours there will be no solar generation.
2026-08-16 05:30:22.481795: - You will run out of battery in 26 hours.
2026-08-16 05:30:22.481812: - Your next charge slot will be in 5 and a half hours where import rates will be free (0.0p).
2026-08-16 05:30:22.481829: 
2026-08-16 05:30:22.544885: Plan calculation took 18.26 seconds
2026-08-16 05:30:22.545306: Inverter 0: Type SK Sunsynk
2026-08-16 05:30:22.545368: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:30:22.545641: Reserve min: 7%, battery_min: 7%
2026-08-16 05:30:22.545755: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:30:22.546120: Inverter 0 SoC: 8.7kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 545W, PV Power 0W
2026-08-16 05:30:22.546394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:30:22.546548: Inverter 0 scheduled charge enable is False
2026-08-16 05:30:22.546593: Inverter 0 charge windows currently []
2026-08-16 05:30:22.546629: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:30:22.546812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:30:22.546856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:30:22.546904: Inverter 0 scheduled discharge enable is False
2026-08-16 05:30:22.547074: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:30:22.547115: Inverter 0 discharge windows currently []
2026-08-16 05:30:22.547138: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:30:22.547157: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:30:22.547174: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:30:22.604023: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:30:22.604224: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:30:22.604309: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:30:22.604545: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:30:22.604634: No export window planned
2026-08-16 05:30:22.604749: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:30:22.604813: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:30:22.604986: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:30:22.605277: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:30:22.605341: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:30:22.605396: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:30:22.605503: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605909: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.605976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:30:22.606006: Inverter 0 count register writes 0
2026-08-16 05:30:22.628670: Total inverter register writes now 826
2026-08-16 05:30:22.670086: Info: Completed run status Demand
2026-08-16 05:30:22.677821: Info: record_status Demand
2026-08-16 05:30:22.685077: Saved current settings to /config/predbat_config.json
2026-08-16 05:30:22.685365: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:30:22.912339: ML Component: Doing training...
2026-08-16 05:30:22.928784: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=54.0 days)
2026-08-16 05:30:22.928915: ML Predictor: Curriculum training - 5 passes, window 54.0→57.0 days + final full pass (57.7 days)
2026-08-16 05:30:22.989896: ML Predictor: Curriculum pass 1/5: window=54.0 days (1296 hours of data)
2026-08-16 05:30:22.990077: ML Predictor: Starting initial training with 30 epochs
2026-08-16 05:30:23.621910: ML Predictor: Creating dataset with 1296 hours of training data, 48 hours validation
2026-08-16 05:30:28.571711: ML Predictor: Created 15264 training samples, 576 validation samples
2026-08-16 05:30:28.624411: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0471) load(mean=0.0587 std=0.0468) pv(mean=0.0000 std=0.0100) temp(mean=19.4998 std=4.4156) import_rate(mean=26.1274 std=2.9092) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5244)
2026-08-16 05:30:57.124053: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:30:57.124308: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:30:57.124354: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:30:57.124492: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:30:57.124554: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:30:57.124665: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:30:57.124703: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:31:01.807651: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0333 val_mae=0.0061 kWh val_bias=-0.0016 kWh (-3.2%) combined=0.0037 kWh ema_combined=0.0037 kWh
2026-08-16 05:31:36.168897: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0417 val_mae=0.0047 kWh val_bias=-0.0016 kWh (-3.1%) combined=0.0034 kWh ema_combined=0.0036 kWh
2026-08-16 05:32:12.048091: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0307 val_mae=0.0046 kWh val_bias=+0.0020 kWh (+3.8%) combined=0.0035 kWh ema_combined=0.0036 kWh
2026-08-16 05:32:44.133404: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0222 val_mae=0.0040 kWh val_bias=+0.0010 kWh (+2.0%) combined=0.0027 kWh ema_combined=0.0033 kWh
2026-08-16 05:33:11.723452: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:33:11.724008: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:33:11.724156: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:33:11.724417: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:33:11.724569: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:33:11.724717: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:33:11.724835: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:33:14.987548: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0179 val_mae=0.0040 kWh val_bias=-0.0015 kWh (-2.9%) combined=0.0036 kWh ema_combined=0.0034 kWh
2026-08-16 05:33:48.595848: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0150 val_mae=0.0034 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0031 kWh
2026-08-16 05:34:21.092011: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0129 val_mae=0.0032 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 05:34:57.644000: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0112 val_mae=0.0032 kWh val_bias=-0.0011 kWh (-2.2%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-16 05:35:00.176668: --------------- PredBat - update at 2026-08-16 05:35:00+01:00 with clock skew 0 minutes, minutes now 335
2026-08-16 05:35:00.177645: Saved current settings to /config/predbat_config.json
2026-08-16 05:35:00.177939: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 05:35:00.178124: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:35:00.178321: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:35:00.214654: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:35:00.214966: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:35:00.215249: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:35:00.216007: Cars 1 charging from battery False 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-16 05:35:00.216224: Predbat mode is set to Control charge & discharge
2026-08-16 05:35:00.711911: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:35:00.712226: Using load_power data to fill gaps in load_today data
2026-08-16 05:35:02.254637: Processing 721 30-minute periods for power integration
2026-08-16 05:35:02.708698: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:35:02.713717: Car charging hold False, threshold 6.0kWh
2026-08-16 05:35:02.713893: Current data so far today: load 3.4kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:35:02.738196: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:35:02.738770: Standing charge is set to 49.98p
2026-08-16 05:35:02.785435: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:35:02.785557: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:35:02.785815: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 335.0 minutes
2026-08-16 05:35:02.786241: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 334.8 minutes
2026-08-16 05:35:02.789757: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:35:02.893476: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:35:02.958499: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:35:02.959197: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:35:03.002849: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:35:03.003022: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:35:03.004319: High export rate found rates in range 99p to -99p
2026-08-16 05:35:03.089037: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:35:03.089328: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:35:05.108193: Battery level now 8.7kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -0.58p, change today -3.51p, rate_forward 1.0p
2026-08-16 05:35:05.108764: 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-16 05:35:05.225490: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 55.3p, import 5.32p, export 0.0p, carbon 0.0kg
2026-08-16 05:35:05.225713: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:35:05.457416: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:35:05.538319: Today's load divergence 95.72%, in-day adjustment 85.99%, damping 0.95x, yesterday 82.97% today 95.94% blend 76.74%
2026-08-16 05:35:05.538452: Today's predicted so far 4.14kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.14kWh forecast extra.
2026-08-16 05:35:05.538492: Today's actual load so far 3.49kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:35:05.621228: Inverter 0: Type SK Sunsynk
2026-08-16 05:35:05.621485: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:35:05.621892: Reserve min: 7%, battery_min: 7%
2026-08-16 05:35:05.622108: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:35:05.622657: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -55W, load power 469W, PV Power 0W
2026-08-16 05:35:05.622975: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:35:05.623218: Inverter 0 scheduled charge enable is False
2026-08-16 05:35:05.623350: Inverter 0 charge windows currently []
2026-08-16 05:35:05.623494: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:35:05.623775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:35:05.623937: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:35:05.624076: Inverter 0 scheduled discharge enable is False
2026-08-16 05:35:05.624408: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:35:05.624545: Inverter 0 discharge windows currently []
2026-08-16 05:35:05.624698: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:35:05.624814: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:35:05.624939: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:35:05.819634: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:35:05.819751: Plan was last updated on 2026-08-16 05:30:00+01:00 and is now 5.0 minutes old
2026-08-16 05:35:05.819998: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:35:05.820055: Best export window [  ]
2026-08-16 05:35:05.820872: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:35:05.824223: Load divergence over 8.0 hours mean 356.47W, min 213.6W, max 1026.0W, std dev 93.88W, divergence 13.17%
2026-08-16 05:35:05.842899: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:35:05.843395: LoadML is_calculating True
2026-08-16 05:35:05.843440: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:35:05.880592: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 384.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.39kWh, PV 0.0kWh
2026-08-16 05:35:06.155016: Battery has 14.0 hours left - now at 8.64kWh
2026-08-16 05:35:06.288308: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 409.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.2kWh, PV 0.0kWh
2026-08-16 05:35:06.483975: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 266.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.2kWh, PV 0.0kWh
2026-08-16 05:35:06.658286: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 231.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.39kWh, PV 0.0kWh
2026-08-16 05:35:06.658572: Saving plan best values to HA entities
2026-08-16 05:35:07.040506: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:35:07.050769: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:35:07.060530: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.75kWh, house 1.56kWh, export 0.0kWh, metric 231.52p, metric10 266.39p
2026-08-16 05:35:07.152929: Marginal costs baseline metric (no standing charge): 181.5327
2026-08-16 05:35:07.662269: Marginal energy costs matrix computed: min=13.69 max=34.57
2026-08-16 05:35:07.769702: Rate array import [{'start': 335, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 335, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:35:07.770442: - Your estimated bill for today is £1.31 and tomorrow is £7.30
2026-08-16 05:35:07.770596: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:35:07.770655: - The battery is currently at 54% and is in eco mode for the next 5 and a half hours.
2026-08-16 05:35:07.770690: - For the next 48 hours there will be no solar generation.
2026-08-16 05:35:07.770757: - You will run out of battery in 26 hours.
2026-08-16 05:35:07.770781: - Your next charge slot will be in 5 and a half hours where import rates will be free (0.0p).
2026-08-16 05:35:07.770840: 
2026-08-16 05:35:07.833685: Plan calculation took 2.01 seconds
2026-08-16 05:35:07.838348: No high rate period found
2026-08-16 05:35:08.003398: Import threshold used for optimisation was 23.43p
2026-08-16 05:35:08.116714: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 94: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 05:35:08.130012: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:35:08.130386: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:35:08.130616: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:35:08.130981: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:35:08.131189: No export window planned
2026-08-16 05:35:08.131456: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:35:08.131612: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:35:08.131930: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:35:08.132239: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:35:08.132426: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:35:08.132637: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:35:08.132870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133433: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133544: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133667: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.133937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:35:08.134547: Inverter 0 count register writes 0
2026-08-16 05:35:08.161167: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:35:08.169369: Total inverter register writes now 826
2026-08-16 05:35:08.261509: Info: Completed run status Demand
2026-08-16 05:35:08.290842: Info: record_status Demand
2026-08-16 05:35:08.311773: Saved current settings to /config/predbat_config.json
2026-08-16 05:35:08.312142: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:35:35.103325: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0109 val_mae=0.0030 kWh val_bias=+0.0007 kWh (+1.4%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 05:35:41.500401: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:35:41.500669: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:35:41.500718: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:35:41.500854: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:35:41.500895: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:35:41.500917: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:35:41.500934: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:36:08.517270: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0109 val_mae=0.0030 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 05:36:40.907995: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0095 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0021 kWh
2026-08-16 05:37:14.399276: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0091 val_mae=0.0029 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-16 05:37:41.926204: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:37:41.926862: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:37:41.927035: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:37:41.927463: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:37:41.927640: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:37:41.927756: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:37:41.927849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:37:47.776020: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0083 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-16 05:38:19.899488: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-16 05:38:53.727714: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0078 val_mae=0.0027 kWh val_bias=-0.0013 kWh (-2.5%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-16 05:39:26.670679: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0027 kWh val_bias=-0.0012 kWh (-2.3%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 05:39:42.362884: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:39:42.363411: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:39:42.363566: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:39:42.363883: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:39:42.364047: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:39:42.364209: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:39:42.364334: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:39:59.939907: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0069 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 05:40:00.613045: --------------- PredBat - update at 2026-08-16 05:40:00+01:00 with clock skew 0 minutes, minutes now 340
2026-08-16 05:40:00.614004: Saved current settings to /config/predbat_config.json
2026-08-16 05:40:00.614193: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 05:40:00.614371: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:40:00.614521: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:40:00.644968: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:40:00.645224: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:40:00.645438: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:40:00.646011: Cars 1 charging from battery False 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-16 05:40:00.646203: Predbat mode is set to Control charge & discharge
2026-08-16 05:40:00.757642: MCP POST: Received request from 172.19.0.1
2026-08-16 05:40:00.758570: MCP: Could not even decode without verification: Not enough segments
2026-08-16 05:40:00.758778: MCP: Token verification failed: Not enough segments
2026-08-16 05:40:00.758957: MCP POST: Authenticated via legacy bearer token
2026-08-16 05:40:01.080254: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:40:01.080505: Using load_power data to fill gaps in load_today data
2026-08-16 05:40:02.370171: Processing 721 30-minute periods for power integration
2026-08-16 05:40:02.707678: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:40:02.724994: Car charging hold False, threshold 6.0kWh
2026-08-16 05:40:02.725175: Current data so far today: load 3.53kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:40:02.774364: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:40:02.774975: Standing charge is set to 49.98p
2026-08-16 05:40:02.917913: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:40:02.918189: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:40:02.918709: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 340.0 minutes
2026-08-16 05:40:02.919466: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 339.8 minutes
2026-08-16 05:40:02.923857: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:40:03.083985: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:40:03.154038: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:40:03.154661: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:40:03.199470: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:40:03.199612: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:40:03.200890: High export rate found rates in range 99p to -99p
2026-08-16 05:40:03.292403: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:40:03.292547: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:40:03.310233: Battery level now 8.64kWh, -1hr ago 9.14kWh, at midnight 12.21kWh, battery value change in the last hour -0.5p, change today -3.57p, rate_forward 1.0p
2026-08-16 05:40:03.310631: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 1.22p, import 1.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 05:40:03.391427: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 05:40:03.391610: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:40:03.529174: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:40:03.574505: Today's load divergence 96.3%, in-day adjustment 86.16%, damping 0.95x, yesterday 82.97% today 96.49% blend 76.39%
2026-08-16 05:40:03.574661: Today's predicted so far 4.12kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.12kWh forecast extra.
2026-08-16 05:40:03.574711: Today's actual load so far 3.56kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:40:03.685975: Inverter 0: Type SK Sunsynk
2026-08-16 05:40:03.686090: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:40:03.686524: Reserve min: 7%, battery_min: 7%
2026-08-16 05:40:03.686731: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:40:03.687182: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 467W, current battery voltage 51.2V, grid power -55W, load power 516W, PV Power 0W
2026-08-16 05:40:03.687483: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:40:03.687700: Inverter 0 scheduled charge enable is False
2026-08-16 05:40:03.687789: Inverter 0 charge windows currently []
2026-08-16 05:40:03.687881: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:40:03.688157: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:40:03.688263: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:40:03.688375: Inverter 0 scheduled discharge enable is False
2026-08-16 05:40:03.688674: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:40:03.688769: Inverter 0 discharge windows currently []
2026-08-16 05:40:03.688853: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:40:03.688897: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:40:03.688999: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:40:03.834916: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:40:03.835040: Plan was last updated on 2026-08-16 05:30:00+01:00 and is now 10.0 minutes old
2026-08-16 05:40:03.835286: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:40:03.835332: Best export window [  ]
2026-08-16 05:40:03.836160: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:40:03.839369: Load divergence over 8.0 hours mean 355.0W, min 222.6W, max 708.0W, std dev 76.16W, divergence 10.73%
2026-08-16 05:40:03.873949: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:40:03.874069: LoadML is_calculating True
2026-08-16 05:40:03.874096: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:40:03.929440: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 388.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.56kWh, PV 0.0kWh
2026-08-16 05:40:04.240783: Battery has 13.92 hours left - now at 8.64kWh
2026-08-16 05:40:04.309700: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 413.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.37kWh, PV 0.0kWh
2026-08-16 05:40:04.456220: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 278.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.37kWh, PV 0.0kWh
2026-08-16 05:40:04.614563: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 245.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.56kWh, PV 0.0kWh
2026-08-16 05:40:04.621069: Saving plan best values to HA entities
2026-08-16 05:40:05.118473: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:40:05.139286: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 05:40:05.152898: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.2kWh, house 1.57kWh, export 0.0kWh, metric 245.3p, metric10 278.57p
2026-08-16 05:40:05.306173: Marginal costs baseline metric (no standing charge): 195.3178
2026-08-16 05:40:05.622308: Marginal energy costs matrix computed: min=15.55 max=34.66
2026-08-16 05:40:05.742538: Rate array import [{'start': 340, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 340, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:40:05.743851: - Your estimated bill for today is £1.33 and tomorrow is £7.31
2026-08-16 05:40:05.743962: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:40:05.744002: - The battery is currently at 54% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 05:40:05.744022: - For the next 48 hours there will be no solar generation.
2026-08-16 05:40:05.744782: - You will run out of battery in 26 hours.
2026-08-16 05:40:05.744827: - Your next charge slot will be in 5 and a quarter hours where import rates will be free (0.0p).
2026-08-16 05:40:05.744848: 
2026-08-16 05:40:05.842434: Plan calculation took 2.01 seconds
2026-08-16 05:40:05.845710: No high rate period found
2026-08-16 05:40:06.004766: Import threshold used for optimisation was 23.43p
2026-08-16 05:40:06.112142: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 94: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 05:40:06.134370: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:40:06.134580: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:40:06.134763: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:40:06.135290: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:40:06.135529: No export window planned
2026-08-16 05:40:06.135775: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:40:06.135901: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:40:06.136153: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:40:06.136413: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:40:06.136547: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:40:06.136697: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:40:06.136865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137546: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137709: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.137873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:40:06.138957: Inverter 0 count register writes 0
2026-08-16 05:40:06.179349: 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-16 05:40:06.179736: Recompute is saving previous plan...
2026-08-16 05:40:06.185473: Best charge window [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0% ]
2026-08-16 05:40:06.194012: Best export window [  ]
2026-08-16 05:40:06.195444: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:40:06.200388: Load divergence over 8.0 hours mean 355.0W, min 222.6W, max 708.0W, std dev 76.16W, divergence 10.73%
2026-08-16 05:40:06.251807: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:40:06.251949: LoadML is_calculating True
2026-08-16 05:40:06.253256: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:40:06.268117: 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(0.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-16 05:40:06.269923: Optimise levels pass started at 2026-08-16 05:40:06
2026-08-16 05:40:06.270616: Optimise all windows, total charge 94 export 1
2026-08-16 05:40:16.104125: >> Region optimisation pass width 960 gives best_metric 495.3p, best_cost 507.48p, best_cycle 40.59kWh, best_import 25.61kWh
2026-08-16 05:40:19.462008: >> Region optimisation pass width 480 gives best_metric 495.3p, best_cost 507.48p, best_cycle 40.59kWh, best_import 25.61kWh
2026-08-16 05:40:21.130818: >> Region optimisation pass width 240 gives best_metric 495.3p, best_cost 507.48p, best_cycle 40.59kWh, best_import 25.61kWh
2026-08-16 05:40:24.636838: >> Region optimisation pass width 120 gives best_metric 495.3p, best_cost 507.48p, best_cycle 40.59kWh, best_import 25.61kWh
2026-08-16 05:40:24.637374: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 58
2026-08-16 05:40:24.637487: Optimise levels pass ended at 2026-08-16 05:40:24, duration 18.4 seconds tried 358 combinations
2026-08-16 05:40:24.637591: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 495.3p, best_keep 0kWh, best_cycle 40.59kWh, best_carbon 0kg, best_import 25.61kWh
2026-08-16 05:40:24.654476: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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-16 05:40:54.589689: Tweak plan optimisation started metric 156.88p, cost 172.14p
2026-08-16 05:40:56.969289: Tweak optimisation finished metric 156.88p, cost 172.14p, metric_keep 0kWh, cycle 21.27kWh, carbon 0kg, import 10.9kWh, changed 8 window(s)
2026-08-16 05:40:57.036323: Swap charge optimisation started metric 156.88p, cost 172.14p, min_improvement_swap 0.1p
2026-08-16 05:41:06.375857: Swap charge optimisation finished metric 156.88p, cost 172.14p
2026-08-16 05:41:06.567677: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 151.54p -> 151.54p, plan now metric 157.0p, cost 172.14p, cycle 21.27kWh, import 10.9kWh
2026-08-16 05:41:06.601179: Raw charge windows [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100% ] reserve 1.12
2026-08-16 05:41:06.602078: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:41:06.602492: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:41:06.602865: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:41:06.656781: Previous plan best metric is 156.83 (cost 171.96) and new plan best metric is 156.88 (cost 172.14)
2026-08-16 05:41:06.657882: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:41:06.658434: Plan valid is now true after recompute was False
2026-08-16 05:41:06.688806: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 385.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.43kWh, PV 0.0kWh
2026-08-16 05:41:06.872225: Battery has 13.92 hours left - now at 8.64kWh
2026-08-16 05:41:06.944758: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 409.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.23kWh, PV 0.0kWh
2026-08-16 05:41:07.116656: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 258.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.23kWh, PV 0.0kWh
2026-08-16 05:41:07.230340: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 221.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.43kWh, PV 0.0kWh
2026-08-16 05:41:07.245024: Saving plan best values to HA entities
2026-08-16 05:41:07.571861: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:41:07.580658: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 05:41:07.589452: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.24kWh, house 1.57kWh, export 0.0kWh, metric 221.95p, metric10 258.43p
2026-08-16 05:41:07.709245: Marginal costs baseline metric (no standing charge): 171.9619
2026-08-16 05:41:08.216897: Marginal energy costs matrix computed: min=15.55 max=34.66
2026-08-16 05:41:08.377265: Rate array import [{'start': 340, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 340, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:41:08.383937: - Your estimated bill for today is £1.33 and tomorrow is £7.31
2026-08-16 05:41:08.384192: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:41:08.387888: - The battery is currently at 54% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 05:41:08.387971: - For the next 48 hours there will be no solar generation.
2026-08-16 05:41:08.388047: - You will run out of battery in 26 hours.
2026-08-16 05:41:08.388083: - Your next charge slot will be in 5 and a quarter hours where import rates will be free (0.0p).
2026-08-16 05:41:08.388154: 
2026-08-16 05:41:08.436779: Plan calculation took 62.26 seconds
2026-08-16 05:41:08.437145: Inverter 0: Type SK Sunsynk
2026-08-16 05:41:08.437290: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:41:08.437559: Reserve min: 7%, battery_min: 7%
2026-08-16 05:41:08.437682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:41:08.438091: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 427W, current battery voltage 51.2V, grid power -55W, load power 476W, PV Power 0W
2026-08-16 05:41:08.438301: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:41:08.438416: Inverter 0 scheduled charge enable is False
2026-08-16 05:41:08.438462: Inverter 0 charge windows currently []
2026-08-16 05:41:08.438497: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:41:08.438652: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:41:08.438746: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:41:08.438809: Inverter 0 scheduled discharge enable is False
2026-08-16 05:41:08.439143: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:41:08.439204: Inverter 0 discharge windows currently []
2026-08-16 05:41:08.439237: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:41:08.439341: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:41:08.439387: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:41:08.513480: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-16 05:41:08.592032: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:41:08.592440: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:41:08.592555: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:41:08.593050: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:41:08.593298: No export window planned
2026-08-16 05:41:08.593620: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:41:08.593798: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:41:08.594153: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:41:08.594525: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:41:08.594746: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:41:08.594959: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:41:08.595224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.595415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.595613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.595792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.595968: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.596144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.596311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.596570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.596761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.596933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.597131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.597296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.597470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.597663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:41:08.597832: Inverter 0 count register writes 0
2026-08-16 05:41:08.639779: Total inverter register writes now 826
2026-08-16 05:41:08.686581: Info: Completed run status Demand
2026-08-16 05:41:08.699056: Info: record_status Demand
2026-08-16 05:41:08.711484: Saved current settings to /config/predbat_config.json
2026-08-16 05:41:08.711713: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:41:41.137826: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0023 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-16 05:41:41.885921: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:41:41.886192: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:41:41.886265: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:41:41.886435: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:41:41.886483: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:41:41.886511: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:41:41.886645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:42:13.818965: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0023 kWh val_bias=-0.0007 kWh (-1.3%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 05:42:45.820738: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0069 val_mae=0.0023 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-16 05:43:17.644046: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0063 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-16 05:43:42.351409: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:43:42.351686: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:43:42.351737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:43:42.352014: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:43:42.352066: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:43:42.352143: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:43:42.352212: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:43:50.631553: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0064 val_mae=0.0022 kWh val_bias=+0.0005 kWh (+1.0%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 05:44:33.668926: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 05:45:00.737312: --------------- PredBat - update at 2026-08-16 05:45:00+01:00 with clock skew 0 minutes, minutes now 345
2026-08-16 05:45:00.738228: Saved current settings to /config/predbat_config.json
2026-08-16 05:45:00.738669: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 05:45:00.738759: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:45:00.738824: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:45:00.785707: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:45:00.785895: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:45:00.786128: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:45:00.786679: Cars 1 charging from battery False 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-16 05:45:00.786800: Predbat mode is set to Control charge & discharge
2026-08-16 05:45:01.093012: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:45:01.093166: Using load_power data to fill gaps in load_today data
2026-08-16 05:45:02.651333: Processing 721 30-minute periods for power integration
2026-08-16 05:45:02.939954: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:45:02.940100: Car charging hold False, threshold 6.0kWh
2026-08-16 05:45:02.940147: Current data so far today: load 3.55kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:45:03.001255: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:45:03.002225: Standing charge is set to 49.98p
2026-08-16 05:45:03.134374: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:45:03.134689: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:45:03.135064: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 345.0 minutes
2026-08-16 05:45:03.135786: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 344.8 minutes
2026-08-16 05:45:03.140652: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:45:03.413870: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:45:03.524611: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:45:03.525100: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:45:03.575220: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:45:03.576007: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:45:03.577820: High export rate found rates in range 99p to -99p
2026-08-16 05:45:03.679442: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:45:03.679615: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:45:03.696510: Battery level now 8.64kWh, -1hr ago 9.12kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.57p, rate_forward 1.0p
2026-08-16 05:45:03.697048: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.11p, import 1.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 05:45:03.780300: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 05:45:03.780468: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:45:03.868530: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:45:03.894553: Today's load divergence 96.05%, in-day adjustment 86.15%, damping 0.95x, yesterday 82.97% today 96.24% blend 76.04%
2026-08-16 05:45:03.894908: Today's predicted so far 4.11kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.11kWh forecast extra.
2026-08-16 05:45:03.895102: Today's actual load so far 3.51kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:45:03.979401: Inverter 0: Type SK Sunsynk
2026-08-16 05:45:03.979525: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:45:03.979800: Reserve min: 7%, battery_min: 7%
2026-08-16 05:45:03.979904: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:45:03.980310: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 409W, current battery voltage 51.2V, grid power -54W, load power 458W, PV Power 0W
2026-08-16 05:45:03.980527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:45:03.980666: Inverter 0 scheduled charge enable is False
2026-08-16 05:45:03.980720: Inverter 0 charge windows currently []
2026-08-16 05:45:03.980759: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:45:03.980908: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:45:03.980984: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:45:03.981146: Inverter 0 scheduled discharge enable is False
2026-08-16 05:45:03.981428: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:45:03.981492: Inverter 0 discharge windows currently []
2026-08-16 05:45:03.981613: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:45:03.981706: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:45:03.981818: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:45:04.177399: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:45:04.177848: Plan was last updated on 2026-08-16 05:40:00+01:00 and is now 5.0 minutes old
2026-08-16 05:45:04.178299: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:45:04.178457: Best export window [  ]
2026-08-16 05:45:04.179864: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:45:04.187461: Load divergence over 8.0 hours mean 353.59W, min 244.8W, max 864.0W, std dev 88.34W, divergence 12.49%
2026-08-16 05:45:04.222336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:45:04.222467: LoadML is_calculating True
2026-08-16 05:45:04.222494: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:45:04.264791: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 385.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.48kWh, PV 0.0kWh
2026-08-16 05:45:04.514860: Battery has 13.92 hours left - now at 8.64kWh
2026-08-16 05:45:04.619000: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 410.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.29kWh, PV 0.0kWh
2026-08-16 05:45:04.756732: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 267.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.29kWh, PV 0.0kWh
2026-08-16 05:45:04.954892: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 232.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.48kWh, PV 0.0kWh
2026-08-16 05:45:04.955011: Saving plan best values to HA entities
2026-08-16 05:45:05.398469: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:45:05.408494: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:45:05.416729: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.69kWh, house 1.57kWh, export 0.0kWh, metric 232.8p, metric10 267.4p
2026-08-16 05:45:05.526762: Marginal costs baseline metric (no standing charge): 182.8155
2026-08-16 05:45:05.870074: Marginal energy costs matrix computed: min=17.27 max=34.72
2026-08-16 05:45:05.999707: Rate array import [{'start': 345, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 345, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:45:06.000482: - Your estimated bill for today is £1.32 and tomorrow is £7.33
2026-08-16 05:45:06.000537: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:45:06.000906: - The battery is currently at 54% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 05:45:06.001014: - For the next 48 hours there will be no solar generation.
2026-08-16 05:45:06.001132: - You will run out of battery in 26 hours.
2026-08-16 05:45:06.001189: - Your next charge slot will be in 5 and a quarter hours where import rates will be free (0.0p).
2026-08-16 05:45:06.001226: 
2026-08-16 05:45:06.059047: Plan calculation took 1.88 seconds
2026-08-16 05:45:06.068027: No high rate period found
2026-08-16 05:45:06.193125: Import threshold used for optimisation was 23.43p
2026-08-16 05:45:06.303603: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 94: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 05:45:06.318460: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 54%, target 100%
2026-08-16 05:45:06.318729: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:45:06.319039: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:45:06.319377: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:45:06.319540: No export window planned
2026-08-16 05:45:06.319780: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:45:06.319837: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:45:06.320106: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:45:06.320381: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:45:06.320456: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:45:06.320648: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:45:06.320826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.320890: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321163: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.321915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:45:06.322575: Inverter 0 count register writes 0
2026-08-16 05:45:06.365034: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:45:06.377188: Total inverter register writes now 826
2026-08-16 05:45:06.422044: Info: Completed run status Demand
2026-08-16 05:45:06.439566: Info: record_status Demand
2026-08-16 05:45:06.447753: Saved current settings to /config/predbat_config.json
2026-08-16 05:45:06.448006: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:45:08.591458: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0058 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 05:45:41.646539: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:45:41.646855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:45:41.647011: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:45:41.647278: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:45:41.647339: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:45:41.647423: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:45:41.647560: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:45:41.683915: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0059 val_mae=0.0021 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-16 05:46:13.979904: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 05:46:46.531981: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 05:47:18.799662: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 05:47:42.136469: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:47:42.136786: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:47:42.138543: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:47:42.138900: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:47:42.138961: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:47:42.139070: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:47:42.139286: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:47:51.044383: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 05:47:51.051924: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 05:47:51.052190: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 05:47:57.442213: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 05:47:57.464631: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0020 kWh
2026-08-16 05:47:57.537163: ML Predictor: Curriculum pass 2/5: window=55.0 days (1320 hours of data)
2026-08-16 05:47:57.537719: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 05:47:58.200002: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 05:48:03.263033: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 05:48:03.327059: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0587 std=0.0468) pv(mean=0.0000 std=0.0100) temp(mean=19.5093 std=4.4217) import_rate(mean=26.1317 std=2.9082) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5246)
2026-08-16 05:48:03.426512: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 05:48:03.441520: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 05:48:03.518408: ML Predictor: Baseline (pre-finetune) val_mae=0.0042 kWh val_bias=-0.0017 kWh
2026-08-16 05:48:35.203377: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0046 kWh val_bias=-0.0021 kWh (-3.0%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 05:49:08.468621: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0124 val_mae=0.0042 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 05:49:40.148594: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0115 val_mae=0.0044 kWh val_bias=-0.0020 kWh (-2.8%) combined=0.0030 kWh ema_combined=0.0027 kWh
2026-08-16 05:49:42.245691: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:49:42.248778: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:49:42.249051: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:49:42.249452: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:49:42.249642: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:49:42.249803: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:49:42.249951: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:50:00.559703: --------------- PredBat - update at 2026-08-16 05:50:00+01:00 with clock skew 0 minutes, minutes now 350
2026-08-16 05:50:00.560805: Saved current settings to /config/predbat_config.json
2026-08-16 05:50:00.560940: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 05:50:00.561063: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:50:00.561142: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:50:00.593236: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:50:00.593503: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:50:00.593782: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:50:00.594457: Cars 1 charging from battery False 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-16 05:50:00.594704: Predbat mode is set to Control charge & discharge
2026-08-16 05:50:01.024136: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:50:01.024300: Using load_power data to fill gaps in load_today data
2026-08-16 05:50:02.571381: Processing 721 30-minute periods for power integration
2026-08-16 05:50:03.028832: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:50:03.029068: Car charging hold False, threshold 6.0kWh
2026-08-16 05:50:03.029128: Current data so far today: load 3.65kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:50:03.044648: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:50:03.045346: Standing charge is set to 49.98p
2026-08-16 05:50:03.077102: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:50:03.077221: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:50:03.077463: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 350.0 minutes
2026-08-16 05:50:03.078035: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 349.8 minutes
2026-08-16 05:50:03.082216: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:50:03.215441: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:50:03.298505: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:50:03.299306: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:50:03.447760: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:50:03.450616: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:50:03.457397: High export rate found rates in range 99p to -99p
2026-08-16 05:50:03.667732: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:50:03.667983: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:50:03.690211: Battery level now 8.64kWh, -1hr ago 9.09kWh, at midnight 12.21kWh, battery value change in the last hour -0.45p, change today -3.57p, rate_forward 1.0p
2026-08-16 05:50:03.690956: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.0p, import 1.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 05:50:03.797328: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 05:50:03.797651: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:50:04.002274: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:50:04.027286: Today's load divergence 96.58%, in-day adjustment 86.32%, damping 0.95x, yesterday 82.97% today 96.75% blend 75.69%
2026-08-16 05:50:04.027800: Today's predicted so far 4.12kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.12kWh forecast extra.
2026-08-16 05:50:04.027853: Today's actual load so far 3.6kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:50:04.119404: Inverter 0: Type SK Sunsynk
2026-08-16 05:50:04.119658: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:50:04.120014: Reserve min: 7%, battery_min: 7%
2026-08-16 05:50:04.120165: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:50:04.120595: Inverter 0 SoC: 8.55kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 419W, current battery voltage 51.2V, grid power -55W, load power 474W, PV Power 0W
2026-08-16 05:50:04.120856: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:50:04.121067: Inverter 0 scheduled charge enable is False
2026-08-16 05:50:04.121128: Inverter 0 charge windows currently []
2026-08-16 05:50:04.121207: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:50:04.122133: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:50:04.122201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:50:04.122350: Inverter 0 scheduled discharge enable is False
2026-08-16 05:50:04.122687: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:50:04.122748: Inverter 0 discharge windows currently []
2026-08-16 05:50:04.122863: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:50:04.122907: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:50:04.122972: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:50:04.247088: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:50:04.247228: Plan was last updated on 2026-08-16 05:40:00+01:00 and is now 10.0 minutes old
2026-08-16 05:50:04.247633: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:50:04.247781: Best export window [  ]
2026-08-16 05:50:04.249197: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:50:04.254012: Load divergence over 8.0 hours mean 353.54W, min 252.0W, max 891.6W, std dev 87.55W, divergence 12.38%
2026-08-16 05:50:04.288321: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:50:04.289077: LoadML is_calculating True
2026-08-16 05:50:04.294700: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:50:04.389863: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 389.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.63kWh, PV 0.0kWh
2026-08-16 05:50:04.621889: Battery has 13.67 hours left - now at 8.55kWh
2026-08-16 05:50:04.671897: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 414.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.44kWh, PV 0.0kWh
2026-08-16 05:50:04.804623: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 279.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.44kWh, PV 0.0kWh
2026-08-16 05:50:04.994688: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 245.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.63kWh, PV 0.0kWh
2026-08-16 05:50:04.994996: Saving plan best values to HA entities
2026-08-16 05:50:05.420797: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:50:05.429512: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:50:05.445898: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.24kWh, house 1.56kWh, export 0.0kWh, metric 245.92p, metric10 279.1p
2026-08-16 05:50:05.575669: Marginal costs baseline metric (no standing charge): 195.9391
2026-08-16 05:50:06.015786: Marginal energy costs matrix computed: min=19.28 max=34.79
2026-08-16 05:50:06.175703: Rate array import [{'start': 350, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 350, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:50:06.176367: - Your estimated bill for today is £1.34 and tomorrow is £7.33
2026-08-16 05:50:06.189053: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:50:06.189150: - The battery is currently at 53% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 05:50:06.189175: - For the next 48 hours there will be no solar generation.
2026-08-16 05:50:06.189195: - You will run out of battery in 26 hours.
2026-08-16 05:50:06.189212: - Your next charge slot will be in 5 and a quarter hours where import rates will be free (0.0p).
2026-08-16 05:50:06.189230: 
2026-08-16 05:50:06.251690: Plan calculation took 2.00 seconds
2026-08-16 05:50:06.256453: No high rate period found
2026-08-16 05:50:06.357861: Import threshold used for optimisation was 23.43p
2026-08-16 05:50:06.495044: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 94: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 05:50:06.520290: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 05:50:06.520478: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:50:06.521225: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:50:06.521726: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:50:06.522000: No export window planned
2026-08-16 05:50:06.522345: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:50:06.522546: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:50:06.523006: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:50:06.531786: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:50:06.537047: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:50:06.537453: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:50:06.545755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.546018: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.546224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.546416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.546623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.546821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.547037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.547332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.547500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.547714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.547966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.548224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.548475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.548743: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:50:06.548927: Inverter 0 count register writes 0
2026-08-16 05:50:06.611201: 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-16 05:50:06.611706: Recompute is saving previous plan...
2026-08-16 05:50:06.630263: Best charge window [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0% ]
2026-08-16 05:50:06.638468: Best export window [  ]
2026-08-16 05:50:06.644502: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:50:06.653044: Load divergence over 8.0 hours mean 353.54W, min 252.0W, max 891.6W, std dev 87.55W, divergence 12.38%
2026-08-16 05:50:06.710540: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:50:06.710698: LoadML is_calculating True
2026-08-16 05:50:06.710728: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:50:06.720917: 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(0.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-16 05:50:06.722252: Optimise levels pass started at 2026-08-16 05:50:06
2026-08-16 05:50:06.722322: Optimise all windows, total charge 94 export 1
2026-08-16 05:50:10.241139: >> Region optimisation pass width 960 gives best_metric 497.88p, best_cost 509.95p, best_cycle 38.78kWh, best_import 25.58kWh
2026-08-16 05:50:13.815760: >> Region optimisation pass width 480 gives best_metric 497.48p, best_cost 509.63p, best_cycle 40.07kWh, best_import 25.67kWh
2026-08-16 05:50:15.268551: >> Region optimisation pass width 240 gives best_metric 497.48p, best_cost 509.63p, best_cycle 40.07kWh, best_import 25.67kWh
2026-08-16 05:50:18.527325: >> Region optimisation pass width 120 gives best_metric 497.48p, best_cost 509.63p, best_cycle 40.07kWh, best_import 25.67kWh
2026-08-16 05:50:18.527879: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 58
2026-08-16 05:50:18.528097: Optimise levels pass ended at 2026-08-16 05:50:18, duration 11.8 seconds tried 352 combinations
2026-08-16 05:50:18.528325: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 497.48p, best_keep 0kWh, best_cycle 40.07kWh, best_carbon 0kg, best_import 25.67kWh
2026-08-16 05:50:18.572673: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 05:50:27.267924: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0136 val_mae=0.0053 kWh val_bias=-0.0028 kWh (-3.9%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-16 05:50:49.785407: Tweak plan optimisation started metric 157.42p, cost 172.69p
2026-08-16 05:50:52.240206: Tweak optimisation finished metric 157.42p, cost 172.69p, metric_keep 0kWh, cycle 21.18kWh, carbon 0kg, import 10.92kWh, changed 8 window(s)
2026-08-16 05:50:52.264142: Swap charge optimisation started metric 157.42p, cost 172.69p, min_improvement_swap 0.1p
2026-08-16 05:51:02.031531: Swap charge optimisation finished metric 157.42p, cost 172.69p
2026-08-16 05:51:02.297001: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 152.09p -> 152.09p, plan now metric 157.54p, cost 172.69p, cycle 21.18kWh, import 10.92kWh
2026-08-16 05:51:02.311847: Raw charge windows [ 16-08 05:30:00 - 16-08 06:00:00 @ 26.28p 0%, 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100% ] reserve 1.12
2026-08-16 05:51:02.312588: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:51:02.312923: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:51:02.313259: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 05:51:02.354164: Previous plan best metric is 157.38 (cost 172.52) and new plan best metric is 157.42 (cost 172.69)
2026-08-16 05:51:02.354481: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 05:51:02.354728: Plan valid is now true after recompute was False
2026-08-16 05:51:02.381140: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 386.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.5kWh, PV 0.0kWh
2026-08-16 05:51:02.555202: Battery has 13.67 hours left - now at 8.55kWh
2026-08-16 05:51:02.607558: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 411.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.3kWh, PV 0.0kWh
2026-08-16 05:51:02.815436: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 258.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.3kWh, PV 0.0kWh
2026-08-16 05:51:02.988917: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 222.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.5kWh, PV 0.0kWh
2026-08-16 05:51:02.989146: Saving plan best values to HA entities
2026-08-16 05:51:03.437268: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:51:03.444848: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:51:03.452167: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.27kWh, house 1.56kWh, export 0.0kWh, metric 222.5p, metric10 258.89p
2026-08-16 05:51:03.545696: Marginal costs baseline metric (no standing charge): 172.5177
2026-08-16 05:51:04.125757: Marginal energy costs matrix computed: min=19.28 max=34.79
2026-08-16 05:51:04.301880: Rate array import [{'start': 350, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 350, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:51:04.302863: - Your estimated bill for today is £1.34 and tomorrow is £7.33
2026-08-16 05:51:04.303020: - Import rates are expensive (24.1p - 26.3p) for the next 5 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:51:04.303143: - The battery is currently at 53% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 05:51:04.303249: - For the next 48 hours there will be no solar generation.
2026-08-16 05:51:04.303358: - You will run out of battery in 26 hours.
2026-08-16 05:51:04.303478: - Your next charge slot will be in 5 and a quarter hours where import rates will be free (0.0p).
2026-08-16 05:51:04.303606: 
2026-08-16 05:51:04.418786: Plan calculation took 57.81 seconds
2026-08-16 05:51:04.419237: Inverter 0: Type SK Sunsynk
2026-08-16 05:51:04.419291: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:51:04.419547: Reserve min: 7%, battery_min: 7%
2026-08-16 05:51:04.419732: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:51:04.420468: Inverter 0 SoC: 8.55kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 419W, current battery voltage 51.2V, grid power -55W, load power 474W, PV Power 0W
2026-08-16 05:51:04.420759: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:51:04.421062: Inverter 0 scheduled charge enable is False
2026-08-16 05:51:04.421203: Inverter 0 charge windows currently []
2026-08-16 05:51:04.421333: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:51:04.421600: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:51:04.421738: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:51:04.421882: Inverter 0 scheduled discharge enable is False
2026-08-16 05:51:04.422146: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:51:04.422279: Inverter 0 discharge windows currently []
2026-08-16 05:51:04.422397: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:51:04.422511: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:51:04.422636: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:51:04.528900: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 05:51:04.529346: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:51:04.529497: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:51:04.529772: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:51:04.529903: No export window planned
2026-08-16 05:51:04.530066: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:51:04.530104: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:51:04.530338: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:51:04.530563: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:51:04.530643: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:51:04.530785: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:51:04.530919: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531065: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531439: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531559: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531703: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.531996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:51:04.532701: Inverter 0 count register writes 0
2026-08-16 05:51:04.562463: Total inverter register writes now 826
2026-08-16 05:51:04.647136: Info: Completed run status Demand
2026-08-16 05:51:04.657281: Info: record_status Demand
2026-08-16 05:51:04.665647: Saved current settings to /config/predbat_config.json
2026-08-16 05:51:04.665840: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:51:18.943701: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0102 val_mae=0.0044 kWh val_bias=-0.0031 kWh (-4.4%) combined=0.0039 kWh ema_combined=0.0031 kWh
2026-08-16 05:51:41.899299: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:51:41.899633: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:51:41.899694: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:51:41.900037: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:51:41.900097: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:51:41.900168: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:51:41.900279: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:51:52.092090: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0119 val_mae=0.0038 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-16 05:52:26.345805: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0097 val_mae=0.0034 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0026 kWh ema_combined=0.0028 kWh
2026-08-16 05:52:59.084084: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0090 val_mae=0.0033 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0025 kWh
2026-08-16 05:53:32.716345: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-16 05:53:42.454863: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:53:42.455111: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:53:42.455158: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:53:42.455294: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:53:42.456474: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:53:42.456613: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:53:42.456764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:54:05.649267: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 05:54:40.801831: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0074 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-16 05:55:00.827331: --------------- PredBat - update at 2026-08-16 05:55:00+01:00 with clock skew 0 minutes, minutes now 355
2026-08-16 05:55:00.828154: Saved current settings to /config/predbat_config.json
2026-08-16 05:55:00.828287: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 05:55:00.828390: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 05:55:00.828514: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 05:55:00.863443: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 05:55:00.863723: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 05:55:00.864008: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 05:55:00.864608: Cars 1 charging from battery False 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-16 05:55:00.864809: Predbat mode is set to Control charge & discharge
2026-08-16 05:55:01.380318: Found 21602 load_today datapoints going back 28 days
2026-08-16 05:55:01.380477: Using load_power data to fill gaps in load_today data
2026-08-16 05:55:02.608516: Processing 721 30-minute periods for power integration
2026-08-16 05:55:02.892566: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 05:55:02.892717: Car charging hold False, threshold 6.0kWh
2026-08-16 05:55:02.892763: Current data so far today: load 3.7kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 05:55:02.907299: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 05:55:02.907777: Standing charge is set to 49.98p
2026-08-16 05:55:02.998232: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 05:55:02.998369: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 05:55:02.998662: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 355.0 minutes
2026-08-16 05:55:02.999256: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 354.8 minutes
2026-08-16 05:55:03.003429: Loaded 47 datapoints of futurerate analysis
2026-08-16 05:55:03.210584: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 05:55:03.291540: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 05:55:03.292153: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 05:55:03.381832: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 05:55:03.382265: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 05:55:03.387257: High export rate found rates in range 99p to -99p
2026-08-16 05:55:03.467043: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 05:55:03.467295: Car 0 charging is not planned as it is not plugged in
2026-08-16 05:55:03.513370: Battery level now 8.55kWh, -1hr ago 9.09kWh, at midnight 12.21kWh, battery value change in the last hour -0.54p, change today -3.66p, rate_forward 1.0p
2026-08-16 05:55:03.516664: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.89p, import 0.89p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 05:55:03.654301: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 05:55:03.654531: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 05:55:03.759355: Using weighted-bucket historical load forecast over 14 days
2026-08-16 05:55:03.783978: Today's load divergence 96.84%, in-day adjustment 86.43%, damping 0.95x, yesterday 82.97% today 97.0% blend 75.35%
2026-08-16 05:55:03.784177: Today's predicted so far 4.13kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.13kWh forecast extra.
2026-08-16 05:55:03.784221: Today's actual load so far 3.65kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 05:55:03.854425: Inverter 0: Type SK Sunsynk
2026-08-16 05:55:03.854532: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 05:55:03.854737: Reserve min: 7%, battery_min: 7%
2026-08-16 05:55:03.854813: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 05:55:03.855114: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 480W, current battery voltage 51.2V, grid power -54W, load power 528W, PV Power 0W
2026-08-16 05:55:03.855284: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:55:03.855380: Inverter 0 scheduled charge enable is False
2026-08-16 05:55:03.855419: Inverter 0 charge windows currently []
2026-08-16 05:55:03.855446: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 05:55:03.855577: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:55:03.855618: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:55:03.855653: Inverter 0 scheduled discharge enable is False
2026-08-16 05:55:03.855788: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:55:03.855827: Inverter 0 discharge windows currently []
2026-08-16 05:55:03.855850: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:55:03.855868: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:55:03.855885: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:55:03.975818: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 05:55:03.975940: Plan was last updated on 2026-08-16 05:50:00+01:00 and is now 5.0 minutes old
2026-08-16 05:55:03.976214: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 05:55:03.976265: Best export window [  ]
2026-08-16 05:55:03.977191: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 05:55:03.980619: Load divergence over 8.0 hours mean 353.47W, min 264.6W, max 912.0W, std dev 88.09W, divergence 12.46%
2026-08-16 05:55:04.028918: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 05:55:04.029205: LoadML is_calculating True
2026-08-16 05:55:04.029289: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 05:55:04.109183: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 389.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.6kWh, PV 0.0kWh
2026-08-16 05:55:04.299712: Battery has 13.58 hours left - now at 8.48kWh
2026-08-16 05:55:04.368312: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 414.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.4kWh, PV 0.0kWh
2026-08-16 05:55:04.624412: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 270.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.4kWh, PV 0.0kWh
2026-08-16 05:55:04.771468: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 235.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 20.6kWh, PV 0.0kWh
2026-08-16 05:55:04.771605: Saving plan best values to HA entities
2026-08-16 05:55:05.093664: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 05:55:05.100579: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 05:55:05.109927: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.8kWh, house 1.57kWh, export 0.0kWh, metric 235.48p, metric10 270.44p
2026-08-16 05:55:05.370948: Marginal costs baseline metric (no standing charge): 185.4954
2026-08-16 05:55:05.847486: Marginal energy costs matrix computed: min=21.32 max=34.85
2026-08-16 05:55:05.975916: Rate array import [{'start': 355, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.3p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 355, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 05:55:05.977065: - Your estimated bill for today is £1.35 and tomorrow is £7.34
2026-08-16 05:55:05.977142: - Import rates are expensive (24.1p - 26.3p) for the next 5 hours and then free (0.0p) for the next 1 hour.
2026-08-16 05:55:05.977180: - The battery is currently at 53% and is in eco mode for the next 5 hours.
2026-08-16 05:55:05.977375: - For the next 48 hours there will be no solar generation.
2026-08-16 05:55:05.977493: - You will run out of battery in 26 hours.
2026-08-16 05:55:05.977642: - Your next charge slot will be in 5 hours where import rates will be free (0.0p).
2026-08-16 05:55:05.977783: 
2026-08-16 05:55:06.032738: Plan calculation took 2.06 seconds
2026-08-16 05:55:06.043136: No high rate period found
2026-08-16 05:55:06.178107: Import threshold used for optimisation was 23.43p
2026-08-16 05:55:06.352378: Low import rate windows [0: 08-16 05:30:00 - 08-16 06:00:00 @ 26.28, 1: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 2: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 3: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 4: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 5: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 6: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 7: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 8: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 9: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 10: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 11: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 12: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 13: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 14: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 15: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 16: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 17: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 18: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 19: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 20: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 21: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 22: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 23: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 24: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 25: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 26: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 27: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 28: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 29: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 30: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 31: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 32: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 33: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 34: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 35: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 36: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 37: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 38: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 39: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 40: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 41: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 42: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 43: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 44: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 45: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 46: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 47: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 48: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 49: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 50: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 51: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 52: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 53: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 54: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 55: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 56: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 57: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 58: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 59: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 60: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 61: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 62: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 63: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 64: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 65: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 66: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 67: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 68: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 69: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 70: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 71: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 72: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 73: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 74: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 75: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 76: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 77: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 78: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 79: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 80: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 81: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 82: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 83: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 84: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 85: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 86: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 87: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 88: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 89: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 90: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 91: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 92: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 93: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 94: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 05:55:06.362968: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 05:55:06.363389: Inverter 0 disabled charge window while waiting for schedule (now 08-16 05:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 05:55:06.363474: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:55:06.363716: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:55:06.363798: No export window planned
2026-08-16 05:55:06.363885: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 05:55:06.363916: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 05:55:06.364030: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 05:55:06.364159: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 05:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 05:55:06.364201: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 05:55:06.364243: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 05:55:06.364319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364377: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364398: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364476: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364639: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 05:55:06.364726: Inverter 0 count register writes 0
2026-08-16 05:55:06.392494: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 05:55:06.403486: Total inverter register writes now 826
2026-08-16 05:55:06.473208: Info: Completed run status Demand
2026-08-16 05:55:06.487639: Info: record_status Demand
2026-08-16 05:55:06.499266: Saved current settings to /config/predbat_config.json
2026-08-16 05:55:06.499587: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 05:55:15.825064: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0080 val_mae=0.0029 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 05:55:41.645133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:55:41.645448: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:55:41.645647: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:55:41.645964: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:55:41.646264: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:55:41.646398: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:55:41.646524: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:55:49.925411: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 05:56:23.996097: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0073 val_mae=0.0025 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 05:56:57.819473: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0066 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 05:57:30.154024: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0021 kWh ema_combined=0.0018 kWh
2026-08-16 05:57:42.174859: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:57:42.175348: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:57:42.175506: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:57:42.175830: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:57:42.175981: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:57:42.176106: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:57:42.176216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 05:58:02.256469: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 05:58:34.175614: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0024 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-16 05:59:08.710263: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0060 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 05:59:41.165397: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 05:59:41.342731: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 05:59:44.449760: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0030 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-16 05:59:56.674986: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 05:59:56.675652: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 05:59:56.675849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 05:59:56.676232: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 05:59:56.676380: Note: Inverter does not support discharge freeze - disabled
2026-08-16 05:59:56.676581: Note: Inverter does not support charge freeze - disabled
2026-08-16 05:59:56.676698: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:00:00.848285: --------------- PredBat - update at 2026-08-16 06:00:00+01:00 with clock skew 0 minutes, minutes now 360
2026-08-16 06:00:00.849261: Saved current settings to /config/predbat_config.json
2026-08-16 06:00:00.849403: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 06:00:00.849489: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:00:00.849605: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:00:00.889898: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:00:00.890126: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:00:00.890430: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:00:00.891376: Cars 1 charging from battery False 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-16 06:00:00.891601: Predbat mode is set to Control charge & discharge
2026-08-16 06:00:01.578634: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:00:01.593076: Using load_power data to fill gaps in load_today data
2026-08-16 06:00:03.851692: Processing 721 30-minute periods for power integration
2026-08-16 06:00:04.221577: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:00:04.222116: Car charging hold False, threshold 6.0kWh
2026-08-16 06:00:04.222338: Current data so far today: load 3.75kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:00:04.285305: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:00:04.287067: Standing charge is set to 49.98p
2026-08-16 06:00:04.366344: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:00:04.366619: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:00:04.367111: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 360.0 minutes
2026-08-16 06:00:04.368049: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 359.8 minutes
2026-08-16 06:00:04.376639: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:00:04.586823: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:00:04.673509: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:00:04.674159: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:00:04.766702: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:00:04.767130: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:00:04.769841: High export rate found rates in range 99p to -99p
2026-08-16 06:00:04.968854: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:00:04.977451: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:00:05.032887: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.73p, rate_forward 1.0p
2026-08-16 06:00:05.033648: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.79p, import 0.79p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:00:05.241728: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:00:05.242055: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:00:05.736854: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:00:05.860446: Today's load divergence 96.68%, in-day adjustment 86.44%, damping 0.95x, yesterday 82.97% today 96.85% blend 75.0%
2026-08-16 06:00:05.864747: Today's predicted so far 4.26kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.26kWh forecast extra.
2026-08-16 06:00:05.864895: Today's actual load so far 3.75kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:00:05.952999: Inverter 0: Type SK Sunsynk
2026-08-16 06:00:05.953195: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:00:05.953500: Reserve min: 7%, battery_min: 7%
2026-08-16 06:00:05.953670: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:00:05.954014: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 489W, current battery voltage 51.2V, grid power -55W, load power 540W, PV Power 0W
2026-08-16 06:00:05.954235: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:00:05.954406: Inverter 0 scheduled charge enable is False
2026-08-16 06:00:05.954494: Inverter 0 charge windows currently []
2026-08-16 06:00:05.954610: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:00:05.954790: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:00:05.954899: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:00:05.965813: Inverter 0 scheduled discharge enable is False
2026-08-16 06:00:05.966301: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:00:05.966448: Inverter 0 discharge windows currently []
2026-08-16 06:00:05.968371: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:00:05.968504: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:00:05.968627: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:00:06.149079: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:00:06.149237: Plan was last updated on 2026-08-16 05:50:00+01:00 and is now 10.0 minutes old
2026-08-16 06:00:06.149635: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:00:06.149704: Best export window [  ]
2026-08-16 06:00:06.151007: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:00:06.158846: Load divergence over 8.0 hours mean 351.17W, min 223.8W, max 1097.4W, std dev 97.0W, divergence 13.81%
2026-08-16 06:00:06.190841: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:00:06.191160: LoadML is_calculating True
2026-08-16 06:00:06.191281: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:00:06.260090: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 390.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.69kWh, PV 0.0kWh
2026-08-16 06:00:06.502247: Battery has 13.5 hours left - now at 8.48kWh
2026-08-16 06:00:06.653177: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 415.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.49kWh, PV 0.0kWh
2026-08-16 06:00:06.915696: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 279.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.49kWh, PV 0.0kWh
2026-08-16 06:00:07.107899: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 246.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.69kWh, PV 0.0kWh
2026-08-16 06:00:07.108150: Saving plan best values to HA entities
2026-08-16 06:00:07.512169: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:00:07.529097: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:00:07.552419: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.25kWh, house 1.58kWh, export 0.0kWh, metric 246.6p, metric10 279.78p
2026-08-16 06:00:07.775873: Marginal costs baseline metric (no standing charge): 196.6211
2026-08-16 06:00:08.433242: Marginal energy costs matrix computed: min=21.53 max=34.92
2026-08-16 06:00:08.571147: Rate array import [{'start': 360, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 360, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:00:08.572320: - Your estimated bill for today is £1.34 and tomorrow is £7.32
2026-08-16 06:00:08.572390: - Import rates are expensive (24.1p - 26.1p) for the next 5 hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:00:08.572474: - The battery is currently at 53% and is in eco mode for the next 5 hours.
2026-08-16 06:00:08.572589: - For the next 48 hours there will be no solar generation.
2026-08-16 06:00:08.572674: - You will run out of battery in 25 hours.
2026-08-16 06:00:08.572773: - Your next charge slot will be in 5 hours where import rates will be free (0.0p).
2026-08-16 06:00:08.572935: 
2026-08-16 06:00:08.644553: Plan calculation took 2.50 seconds
2026-08-16 06:00:08.650635: No high rate period found
2026-08-16 06:00:08.733177: Import threshold used for optimisation was 23.43p
2026-08-16 06:00:08.969257: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28]
2026-08-16 06:00:08.992063: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 06:00:08.992244: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:00:08.992335: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:00:08.992555: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:00:08.992638: No export window planned
2026-08-16 06:00:08.992763: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:00:08.992802: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:00:08.992977: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:00:08.993795: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:00:08.993987: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:00:08.994137: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:00:08.994334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994471: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994503: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994574: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.994603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996260: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:00:08.996434: Inverter 0 count register writes 0
2026-08-16 06:00:09.053432: 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-16 06:00:09.053676: Recompute is saving previous plan...
2026-08-16 06:00:09.057456: Best charge window [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0% ]
2026-08-16 06:00:09.057572: Best export window [  ]
2026-08-16 06:00:09.058407: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:00:09.062761: Load divergence over 8.0 hours mean 351.17W, min 223.8W, max 1097.4W, std dev 97.0W, divergence 13.81%
2026-08-16 06:00:09.090130: Calculating data from yesterday for savings calculation
2026-08-16 06:00:09.108419: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 06:00:09.165257: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 06:00:09.186590: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 06:00:09.209789: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 06:00:09.245982: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 06:00:09.358681: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 06:00:09.358885: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 06:00:09.376757: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:00:09.377042: LoadML is_calculating True
2026-08-16 06:00:09.377101: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:00:09.417808: 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(0.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-16 06:00:09.419556: Optimise levels pass started at 2026-08-16 06:00:09
2026-08-16 06:00:09.419770: Optimise all windows, total charge 94 export 1
2026-08-16 06:00:20.994468: >> Region optimisation pass width 960 gives best_metric 500.61p, best_cost 512.76p, best_cycle 40.52kWh, best_import 25.82kWh
2026-08-16 06:00:24.144718: >> Region optimisation pass width 480 gives best_metric 500.61p, best_cost 512.76p, best_cycle 40.52kWh, best_import 25.82kWh
2026-08-16 06:00:25.562398: >> Region optimisation pass width 240 gives best_metric 500.61p, best_cost 512.76p, best_cycle 40.52kWh, best_import 25.82kWh
2026-08-16 06:00:29.124587: >> Region optimisation pass width 120 gives best_metric 500.61p, best_cost 512.76p, best_cycle 40.52kWh, best_import 25.82kWh
2026-08-16 06:00:29.125177: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 57
2026-08-16 06:00:29.125282: Optimise levels pass ended at 2026-08-16 06:00:29, duration 19.7 seconds tried 355 combinations
2026-08-16 06:00:29.125391: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 500.61p, best_keep 0kWh, best_cycle 40.52kWh, best_carbon 0kg, best_import 25.82kWh
2026-08-16 06:00:29.200489: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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-16 06:00:37.846753: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0012 kWh (-1.7%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-16 06:00:58.370175: Tweak plan optimisation started metric 158.05p, cost 173.33p
2026-08-16 06:01:00.814075: Tweak optimisation finished metric 158.05p, cost 173.33p, metric_keep 0kWh, cycle 21.11kWh, carbon 0kg, import 10.95kWh, changed 8 window(s)
2026-08-16 06:01:00.856710: Swap charge optimisation started metric 158.05p, cost 173.33p, min_improvement_swap 0.1p
2026-08-16 06:01:10.197522: Swap charge optimisation finished metric 158.05p, cost 173.33p
2026-08-16 06:01:10.359490: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 152.73p -> 152.73p, plan now metric 158.17p, cost 173.33p, cycle 21.11kWh, import 10.95kWh
2026-08-16 06:01:10.375057: Raw charge windows [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100% ] reserve 1.12
2026-08-16 06:01:10.375742: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 06:01:10.376065: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 06:01:10.376305: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:00:00 @ 26.43p 100% ] reserve 1.12
2026-08-16 06:01:10.426228: Previous plan best metric is 158.01 (cost 173.15) and new plan best metric is 158.05 (cost 173.33)
2026-08-16 06:01:10.426511: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:01:10.426817: Plan valid is now true after recompute was False
2026-08-16 06:01:10.502400: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 386.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.55kWh, PV 0.0kWh
2026-08-16 06:01:10.755632: Battery has 13.5 hours left - now at 8.48kWh
2026-08-16 06:01:10.938084: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 411.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.35kWh, PV 0.0kWh
2026-08-16 06:01:11.181269: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 259.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.35kWh, PV 0.0kWh
2026-08-16 06:01:11.358474: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 223.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.55kWh, PV 0.0kWh
2026-08-16 06:01:11.367206: Saving plan best values to HA entities
2026-08-16 06:01:11.749403: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:01:11.757333: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:01:11.779505: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.28kWh, house 1.58kWh, export 0.0kWh, metric 223.13p, metric10 259.52p
2026-08-16 06:01:11.931234: Marginal costs baseline metric (no standing charge): 173.1488
2026-08-16 06:01:12.505607: Marginal energy costs matrix computed: min=21.53 max=34.92
2026-08-16 06:01:12.638185: Rate array import [{'start': 360, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 360, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:01:12.639153: - Your estimated bill for today is £1.34 and tomorrow is £7.32
2026-08-16 06:01:12.639209: - Import rates are expensive (24.1p - 26.1p) for the next 5 hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:01:12.639238: - The battery is currently at 53% and is in eco mode for the next 5 hours.
2026-08-16 06:01:12.639733: - For the next 48 hours there will be no solar generation.
2026-08-16 06:01:12.639794: - You will run out of battery in 25 hours.
2026-08-16 06:01:12.639866: - Your next charge slot will be in 5 hours where import rates will be free (0.0p).
2026-08-16 06:01:12.639907: 
2026-08-16 06:01:12.691887: Plan calculation took 63.64 seconds
2026-08-16 06:01:12.695689: Inverter 0: Type SK Sunsynk
2026-08-16 06:01:12.696125: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:01:12.697120: Reserve min: 7%, battery_min: 7%
2026-08-16 06:01:12.700224: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:01:12.701017: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 459W, current battery voltage 51.2V, grid power -55W, load power 507W, PV Power 0W
2026-08-16 06:01:12.701323: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:01:12.701450: Inverter 0 scheduled charge enable is False
2026-08-16 06:01:12.701499: Inverter 0 charge windows currently []
2026-08-16 06:01:12.701554: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:01:12.701695: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:01:12.701743: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:01:12.701891: Inverter 0 scheduled discharge enable is False
2026-08-16 06:01:12.702163: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:01:12.702218: Inverter 0 discharge windows currently []
2026-08-16 06:01:12.702312: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:01:12.702397: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:01:12.702471: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:01:12.833586: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 06:01:12.836735: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:01:12.837115: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:01:12.837586: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:01:12.837799: No export window planned
2026-08-16 06:01:12.838061: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:01:12.838207: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:01:12.838522: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:01:12.838859: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:01:12.839028: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:01:12.839198: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:01:12.839411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.839585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.853074: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.853341: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.853560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.853716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.853860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.854973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:01:12.855105: Inverter 0 count register writes 0
2026-08-16 06:01:12.892161: Total inverter register writes now 826
2026-08-16 06:01:12.953987: Info: Completed run status Demand
2026-08-16 06:01:12.982021: Info: record_status Demand
2026-08-16 06:01:12.991594: Saved current settings to /config/predbat_config.json
2026-08-16 06:01:12.991837: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:01:27.055623: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.2%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 06:01:57.224135: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 06:01:57.298519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:01:57.298776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:01:57.298821: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:01:57.298995: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:01:57.299037: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:01:57.299058: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:01:57.299160: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:02:31.632625: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0055 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 06:03:03.679963: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-16 06:03:35.641040: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0057 val_mae=0.0026 kWh val_bias=-0.0012 kWh (-1.8%) combined=0.0020 kWh ema_combined=0.0016 kWh
2026-08-16 06:04:10.767458: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-16 06:04:11.955581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:04:11.955975: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:04:11.956122: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:04:11.956379: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:04:11.956508: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:04:11.956615: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:04:11.956736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:04:43.208055: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 06:05:00.315347: --------------- PredBat - update at 2026-08-16 06:05:00+01:00 with clock skew 0 minutes, minutes now 365
2026-08-16 06:05:00.316253: Saved current settings to /config/predbat_config.json
2026-08-16 06:05:00.316515: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 06:05:00.316719: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:05:00.317602: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:05:00.381610: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:05:00.381802: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:05:00.381982: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:05:00.382511: Cars 1 charging from battery False 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-16 06:05:00.382635: Predbat mode is set to Control charge & discharge
2026-08-16 06:05:00.800286: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:05:00.800576: Using load_power data to fill gaps in load_today data
2026-08-16 06:05:02.066851: Processing 721 30-minute periods for power integration
2026-08-16 06:05:02.410767: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:05:02.411064: Car charging hold False, threshold 6.0kWh
2026-08-16 06:05:02.411128: Current data so far today: load 3.8kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:05:02.424891: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:05:02.425368: Standing charge is set to 49.98p
2026-08-16 06:05:02.544859: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:05:02.544997: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:05:02.545215: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 365.0 minutes
2026-08-16 06:05:02.545767: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 364.8 minutes
2026-08-16 06:05:02.549167: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:05:02.704555: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:05:02.782653: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:05:02.783216: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:05:02.840744: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:05:02.841085: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:05:02.842792: High export rate found rates in range 99p to -99p
2026-08-16 06:05:02.975219: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:05:02.975484: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:05:03.009349: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.73p, rate_forward 1.0p
2026-08-16 06:05:03.010267: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.67p, import 0.67p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:05:03.122503: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:05:03.122816: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:05:03.320319: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:05:03.380753: Today's load divergence 96.8%, in-day adjustment 86.52%, damping 0.95x, yesterday 82.97% today 96.96% blend 74.65%
2026-08-16 06:05:03.382157: Today's predicted so far 4.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.35kWh forecast extra.
2026-08-16 06:05:03.383550: Today's actual load so far 3.86kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:05:03.481001: Inverter 0: Type SK Sunsynk
2026-08-16 06:05:03.481134: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:05:03.481709: Reserve min: 7%, battery_min: 7%
2026-08-16 06:05:03.482264: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:05:03.488081: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 458W, current battery voltage 51.2V, grid power -54W, load power 506W, PV Power 0W
2026-08-16 06:05:03.488481: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:05:03.488725: Inverter 0 scheduled charge enable is False
2026-08-16 06:05:03.488820: Inverter 0 charge windows currently []
2026-08-16 06:05:03.488915: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:05:03.489205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:05:03.489268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:05:03.489552: Inverter 0 scheduled discharge enable is False
2026-08-16 06:05:03.489923: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:05:03.489989: Inverter 0 discharge windows currently []
2026-08-16 06:05:03.490172: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:05:03.490222: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:05:03.490288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:05:03.626002: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:05:03.626269: Plan was last updated on 2026-08-16 06:00:00+01:00 and is now 5.0 minutes old
2026-08-16 06:05:03.626604: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:05:03.626725: Best export window [  ]
2026-08-16 06:05:03.627507: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:05:03.630102: Load divergence over 8.0 hours mean 349.16W, min 213.6W, max 1026.0W, std dev 94.29W, divergence 13.5%
2026-08-16 06:05:03.647415: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:05:03.647696: LoadML is_calculating True
2026-08-16 06:05:03.647790: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:05:03.677035: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 387.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.66kWh, PV 0.0kWh
2026-08-16 06:05:03.950029: Battery has 13.5 hours left - now at 8.48kWh
2026-08-16 06:05:04.064384: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 412.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.46kWh, PV 0.0kWh
2026-08-16 06:05:04.264169: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 269.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.46kWh, PV 0.0kWh
2026-08-16 06:05:04.471532: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 234.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.66kWh, PV 0.0kWh
2026-08-16 06:05:04.471778: Saving plan best values to HA entities
2026-08-16 06:05:04.916318: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:05:04.923812: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:05:04.942544: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.73kWh, house 1.59kWh, export 0.0kWh, metric 234.37p, metric10 269.08p
2026-08-16 06:05:05.066752: Marginal costs baseline metric (no standing charge): 184.3846
2026-08-16 06:05:05.624413: Marginal energy costs matrix computed: min=21.66 max=34.56
2026-08-16 06:05:05.816202: Rate array import [{'start': 365, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 365, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:05:05.817487: - Your estimated bill for today is £1.33 and tomorrow is £7.31
2026-08-16 06:05:05.817715: - Import rates are expensive (24.1p - 26.1p) for the next 4  hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:05:05.818031: - The battery is currently at 53% and is in eco mode for the next 4  hours.
2026-08-16 06:05:05.818104: - For the next 48 hours there will be no solar generation.
2026-08-16 06:05:05.818133: - You will run out of battery in 25 hours.
2026-08-16 06:05:05.818157: - Your next charge slot will be in 4  hours where import rates will be free (0.0p).
2026-08-16 06:05:05.818190: 
2026-08-16 06:05:05.871337: Plan calculation took 2.24 seconds
2026-08-16 06:05:05.876153: No high rate period found
2026-08-16 06:05:06.060375: Import threshold used for optimisation was 23.43p
2026-08-16 06:05:06.176024: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 94: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:05:06.224453: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 06:05:06.224634: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:05:06.224794: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:05:06.225181: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:05:06.226228: No export window planned
2026-08-16 06:05:06.226477: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:05:06.226534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:05:06.227381: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:05:06.228576: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:05:06.229855: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:05:06.230274: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:05:06.230815: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.230886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.231902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.231982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.232856: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.232979: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.233047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.233769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.233835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.234441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.235180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.235249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.235616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.235946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:05:06.236281: Inverter 0 count register writes 0
2026-08-16 06:05:06.268406: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:05:06.278147: Total inverter register writes now 826
2026-08-16 06:05:06.337111: Info: Completed run status Demand
2026-08-16 06:05:06.349655: Info: record_status Demand
2026-08-16 06:05:06.361050: Saved current settings to /config/predbat_config.json
2026-08-16 06:05:06.361344: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:05:21.931493: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 06:05:41.523136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:05:41.523712: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:05:41.523792: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:05:41.524031: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:05:41.524090: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:05:41.524120: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:05:41.524159: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:05:47.247071: Info: HAHistory: Pruning history data started.
2026-08-16 06:05:47.252227: Info: HAHistory: Pruning history data completed.
2026-08-16 06:05:53.230908: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0013 kWh
2026-08-16 06:05:53.247384: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 06:05:53.247660: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 06:05:59.697548: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=+0.0000 kWh (+0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 06:05:59.707492: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0020 kWh
2026-08-16 06:05:59.827232: ML Predictor: Curriculum pass 3/5: window=56.0 days (1344 hours of data)
2026-08-16 06:05:59.827360: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 06:06:00.582633: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 06:06:05.970372: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 06:06:06.027235: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0588 std=0.0469) pv(mean=0.0000 std=0.0100) temp(mean=19.5307 std=4.4379) import_rate(mean=26.1398 std=2.9063) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5248)
2026-08-16 06:06:06.119121: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 06:06:06.136766: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 06:06:06.189029: ML Predictor: Baseline (pre-finetune) val_mae=0.0053 kWh val_bias=-0.0008 kWh
2026-08-16 06:06:40.051530: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0094 val_mae=0.0067 kWh val_bias=-0.0035 kWh (-4.0%) combined=0.0047 kWh ema_combined=0.0047 kWh
2026-08-16 06:07:14.470378: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0104 val_mae=0.0058 kWh val_bias=+0.0017 kWh (+1.9%) combined=0.0038 kWh ema_combined=0.0045 kWh
2026-08-16 06:07:41.843959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:07:41.844411: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:07:41.844569: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:07:41.844835: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:07:41.844995: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:07:41.845091: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:07:41.845185: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:07:46.129461: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0125 val_mae=0.0057 kWh val_bias=+0.0022 kWh (+2.5%) combined=0.0038 kWh ema_combined=0.0043 kWh
2026-08-16 06:08:20.517251: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0103 val_mae=0.0051 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0028 kWh ema_combined=0.0038 kWh
2026-08-16 06:08:52.698712: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0098 val_mae=0.0049 kWh val_bias=-0.0016 kWh (-1.9%) combined=0.0036 kWh ema_combined=0.0038 kWh
2026-08-16 06:09:26.920200: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0139 val_mae=0.0055 kWh val_bias=+0.0023 kWh (+2.6%) combined=0.0045 kWh ema_combined=0.0040 kWh
2026-08-16 06:09:42.343228: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:09:42.343655: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:09:42.343806: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:09:42.344160: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:09:42.344300: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:09:42.344469: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:09:42.344592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:09:59.033944: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0147 val_mae=0.0052 kWh val_bias=+0.0015 kWh (+1.6%) combined=0.0043 kWh ema_combined=0.0041 kWh
2026-08-16 06:10:00.532828: --------------- PredBat - update at 2026-08-16 06:10:00+01:00 with clock skew 0 minutes, minutes now 370
2026-08-16 06:10:00.534219: Saved current settings to /config/predbat_config.json
2026-08-16 06:10:00.534453: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 06:10:00.534687: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:10:00.534837: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:10:00.569217: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:10:00.569496: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:10:00.569786: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:10:00.570477: Cars 1 charging from battery False 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-16 06:10:00.570703: Predbat mode is set to Control charge & discharge
2026-08-16 06:10:00.939933: Found 21602 load_today datapoints going back 27 days
2026-08-16 06:10:00.940328: Using load_power data to fill gaps in load_today data
2026-08-16 06:10:02.283406: Processing 721 30-minute periods for power integration
2026-08-16 06:10:02.635081: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:10:02.635347: Car charging hold False, threshold 6.0kWh
2026-08-16 06:10:02.635424: Current data so far today: load 3.85kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:10:02.649639: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:10:02.651081: Standing charge is set to 49.98p
2026-08-16 06:10:02.678407: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:10:02.678618: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:10:02.678998: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 370.0 minutes
2026-08-16 06:10:02.679480: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 369.8 minutes
2026-08-16 06:10:02.683030: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:10:02.810233: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:10:02.904496: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:10:02.905191: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:10:03.014741: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:10:03.015075: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:10:03.017173: High export rate found rates in range 99p to -99p
2026-08-16 06:10:03.222465: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:10:03.222624: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:10:03.242150: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.73p, rate_forward 1.0p
2026-08-16 06:10:03.242697: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.56p, import 0.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:10:03.342706: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:10:03.342909: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:10:03.444824: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:10:03.482571: Today's load divergence 96.89%, in-day adjustment 86.59%, damping 0.95x, yesterday 82.97% today 97.04% blend 74.31%
2026-08-16 06:10:03.482867: Today's predicted so far 4.34kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.34kWh forecast extra.
2026-08-16 06:10:03.483046: Today's actual load so far 3.87kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:10:03.542246: Inverter 0: Type SK Sunsynk
2026-08-16 06:10:03.542526: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:10:03.542962: Reserve min: 7%, battery_min: 7%
2026-08-16 06:10:03.543185: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:10:03.543676: Inverter 0 SoC: 8.39kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 452W, current battery voltage 51.2V, grid power -55W, load power 501W, PV Power 0W
2026-08-16 06:10:03.544021: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:10:03.544258: Inverter 0 scheduled charge enable is False
2026-08-16 06:10:03.544403: Inverter 0 charge windows currently []
2026-08-16 06:10:03.544541: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:10:03.544828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:10:03.545037: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:10:03.545536: Inverter 0 scheduled discharge enable is False
2026-08-16 06:10:03.545902: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:10:03.546058: Inverter 0 discharge windows currently []
2026-08-16 06:10:03.546191: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:10:03.546312: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:10:03.546433: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:10:03.709548: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:10:03.709697: Plan was last updated on 2026-08-16 06:00:00+01:00 and is now 10.0 minutes old
2026-08-16 06:10:03.710062: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:10:03.710120: Best export window [  ]
2026-08-16 06:10:03.711415: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:10:03.716687: Load divergence over 8.0 hours mean 347.11W, min 222.6W, max 708.0W, std dev 76.83W, divergence 11.07%
2026-08-16 06:10:03.773854: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:10:03.774003: LoadML is_calculating True
2026-08-16 06:10:03.774039: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:10:03.810657: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 391.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.73kWh, PV 0.0kWh
2026-08-16 06:10:04.041860: Battery has 13.33 hours left - now at 8.39kWh
2026-08-16 06:10:04.150912: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 416.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.54kWh, PV 0.0kWh
2026-08-16 06:10:04.335737: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 280.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.54kWh, PV 0.0kWh
2026-08-16 06:10:04.432805: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 247.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.73kWh, PV 0.0kWh
2026-08-16 06:10:04.433046: Saving plan best values to HA entities
2026-08-16 06:10:04.798606: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:10:04.810861: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:10:04.819750: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.26kWh, house 1.59kWh, export 0.0kWh, metric 247.18p, metric10 280.33p
2026-08-16 06:10:05.145335: Marginal costs baseline metric (no standing charge): 197.2015
2026-08-16 06:10:05.586936: Marginal energy costs matrix computed: min=20.44 max=34.18
2026-08-16 06:10:05.739346: Rate array import [{'start': 370, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 370, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:10:05.753651: - Your estimated bill for today is £1.35 and tomorrow is £7.32
2026-08-16 06:10:05.753858: - Import rates are expensive (24.1p - 26.1p) for the next 4 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:10:05.754013: - The battery is currently at 52% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 06:10:05.754137: - For the next 48 hours there will be no solar generation.
2026-08-16 06:10:05.754248: - You will run out of battery in 25 hours.
2026-08-16 06:10:05.754355: - Your next charge slot will be in 4 and three quarters hours where import rates will be free (0.0p).
2026-08-16 06:10:05.754461: 
2026-08-16 06:10:05.822520: Plan calculation took 2.11 seconds
2026-08-16 06:10:05.827459: No high rate period found
2026-08-16 06:10:05.991076: Import threshold used for optimisation was 23.43p
2026-08-16 06:10:06.163932: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 94: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:10:06.183159: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:10:06.183317: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:10:06.183540: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:10:06.183907: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:10:06.184345: No export window planned
2026-08-16 06:10:06.184815: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:10:06.184867: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:10:06.185545: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:10:06.188202: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:10:06.188308: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:10:06.188447: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:10:06.188603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.188656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.188791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.188884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.188983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.190591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.190663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.190847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196291: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:10:06.196554: Inverter 0 count register writes 0
2026-08-16 06:10:06.242191: 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-16 06:10:06.242532: Recompute is saving previous plan...
2026-08-16 06:10:06.246615: Best charge window [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0% ]
2026-08-16 06:10:06.246861: Best export window [  ]
2026-08-16 06:10:06.247873: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:10:06.262864: Load divergence over 8.0 hours mean 347.11W, min 222.6W, max 708.0W, std dev 76.83W, divergence 11.07%
2026-08-16 06:10:06.287046: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:10:06.289101: LoadML is_calculating True
2026-08-16 06:10:06.289184: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:10:06.301113: 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(0.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-16 06:10:06.302931: Optimise levels pass started at 2026-08-16 06:10:06
2026-08-16 06:10:06.303020: Optimise all windows, total charge 94 export 1
2026-08-16 06:10:16.063295: >> Region optimisation pass width 960 gives best_metric 503.25p, best_cost 515.41p, best_cycle 40.45kWh, best_import 25.93kWh
2026-08-16 06:10:21.505116: >> Region optimisation pass width 480 gives best_metric 502.32p, best_cost 514.7p, best_cycle 44.73kWh, best_import 26.24kWh
2026-08-16 06:10:23.121971: >> Region optimisation pass width 240 gives best_metric 502.32p, best_cost 514.7p, best_cycle 44.73kWh, best_import 26.24kWh
2026-08-16 06:10:26.716921: >> Region optimisation pass width 120 gives best_metric 502.32p, best_cost 514.7p, best_cycle 44.73kWh, best_import 26.24kWh
2026-08-16 06:10:26.717816: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 57
2026-08-16 06:10:26.717975: Optimise levels pass ended at 2026-08-16 06:10:26, duration 20.4 seconds tried 369 combinations
2026-08-16 06:10:26.718143: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 502.32p, best_keep 0kWh, best_cycle 44.73kWh, best_carbon 0kg, best_import 26.24kWh
2026-08-16 06:10:26.743625: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 16.0, 12.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, 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-16 06:10:56.081856: Tweak plan optimisation started metric 158.74p, cost 174.02p
2026-08-16 06:10:58.530615: Tweak optimisation finished metric 158.74p, cost 174.02p, metric_keep 0kWh, cycle 21.03kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 06:10:58.590284: Swap charge optimisation started metric 158.74p, cost 174.02p, min_improvement_swap 0.1p
2026-08-16 06:11:05.912546: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0117 val_mae=0.0047 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0030 kWh ema_combined=0.0037 kWh
2026-08-16 06:11:08.164132: Swap charge optimisation finished metric 158.74p, cost 174.02p
2026-08-16 06:11:08.455250: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 153.42p -> 153.42p, plan now metric 158.86p, cost 174.02p, cycle 21.03kWh, import 10.98kWh
2026-08-16 06:11:08.468695: Raw charge windows [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100% ] reserve 1.12
2026-08-16 06:11:08.469544: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:11:08.469957: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:11:08.470357: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:11:08.514178: Previous plan best metric is 158.68 (cost 173.85) and new plan best metric is 158.74 (cost 174.02)
2026-08-16 06:11:08.514466: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:11:08.514660: Plan valid is now true after recompute was False
2026-08-16 06:11:08.547164: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 387.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.6kWh, PV 0.0kWh
2026-08-16 06:11:08.750028: Battery has 13.33 hours left - now at 8.39kWh
2026-08-16 06:11:08.878133: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 412.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.4kWh, PV 0.0kWh
2026-08-16 06:11:09.052736: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 260.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.4kWh, PV 0.0kWh
2026-08-16 06:11:09.312645: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 223.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.6kWh, PV 0.0kWh
2026-08-16 06:11:09.331242: Saving plan best values to HA entities
2026-08-16 06:11:09.569285: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:11:09.586016: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:11:09.593545: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.3kWh, house 1.59kWh, export 0.0kWh, metric 223.83p, metric10 260.19p
2026-08-16 06:11:09.775201: Marginal costs baseline metric (no standing charge): 173.8455
2026-08-16 06:11:10.206163: Marginal energy costs matrix computed: min=20.44 max=34.18
2026-08-16 06:11:10.359426: Rate array import [{'start': 370, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 370, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:11:10.360133: - Your estimated bill for today is £1.35 and tomorrow is £7.32
2026-08-16 06:11:10.360217: - Import rates are expensive (24.1p - 26.1p) for the next 4 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:11:10.360275: - The battery is currently at 52% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 06:11:10.360317: - For the next 48 hours there will be no solar generation.
2026-08-16 06:11:10.360358: - You will run out of battery in 25 hours.
2026-08-16 06:11:10.360464: - Your next charge slot will be in 4 and three quarters hours where import rates will be free (0.0p).
2026-08-16 06:11:10.360505: 
2026-08-16 06:11:10.411729: Plan calculation took 64.17 seconds
2026-08-16 06:11:10.412119: Inverter 0: Type SK Sunsynk
2026-08-16 06:11:10.412207: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:11:10.412506: Reserve min: 7%, battery_min: 7%
2026-08-16 06:11:10.412650: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:11:10.413170: Inverter 0 SoC: 8.39kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 463W, current battery voltage 51.2V, grid power -55W, load power 511W, PV Power 0W
2026-08-16 06:11:10.413464: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:11:10.413631: Inverter 0 scheduled charge enable is False
2026-08-16 06:11:10.413699: Inverter 0 charge windows currently []
2026-08-16 06:11:10.413765: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:11:10.414003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:11:10.414080: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:11:10.414154: Inverter 0 scheduled discharge enable is False
2026-08-16 06:11:10.414509: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:11:10.414667: Inverter 0 discharge windows currently []
2026-08-16 06:11:10.414817: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:11:10.414970: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:11:10.415151: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:11:10.533296: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:11:10.534011: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:11:10.534205: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:11:10.534610: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:11:10.534878: No export window planned
2026-08-16 06:11:10.535182: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:11:10.538884: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:11:10.539251: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:11:10.539522: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:11:10.539619: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:11:10.539730: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:11:10.539951: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540244: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.540903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.541070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.541156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:11:10.541197: Inverter 0 count register writes 0
2026-08-16 06:11:10.606103: Total inverter register writes now 826
2026-08-16 06:11:10.680923: Info: Completed run status Demand
2026-08-16 06:11:10.689095: Info: record_status Demand
2026-08-16 06:11:10.697513: Saved current settings to /config/predbat_config.json
2026-08-16 06:11:10.697858: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:11:39.981057: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0098 val_mae=0.0051 kWh val_bias=-0.0031 kWh (-3.5%) combined=0.0044 kWh ema_combined=0.0039 kWh
2026-08-16 06:11:41.855282: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:11:41.856467: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:11:41.856523: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:11:41.856724: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:11:41.856772: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:11:41.856814: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:11:41.856839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:12:12.896639: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0099 val_mae=0.0042 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0023 kWh ema_combined=0.0034 kWh
2026-08-16 06:12:45.326330: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0095 val_mae=0.0053 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0036 kWh ema_combined=0.0035 kWh
2026-08-16 06:13:17.459263: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0077 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0024 kWh ema_combined=0.0032 kWh
2026-08-16 06:13:42.353596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:13:42.354145: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:13:42.354328: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:13:42.354749: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:13:42.354995: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:13:42.355157: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:13:42.355368: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:13:54.181461: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0082 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0027 kWh ema_combined=0.0030 kWh
2026-08-16 06:14:27.671382: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0070 val_mae=0.0040 kWh val_bias=-0.0019 kWh (-2.1%) combined=0.0032 kWh ema_combined=0.0031 kWh
2026-08-16 06:15:00.698094: --------------- PredBat - update at 2026-08-16 06:15:00+01:00 with clock skew 0 minutes, minutes now 375
2026-08-16 06:15:00.699046: Saved current settings to /config/predbat_config.json
2026-08-16 06:15:00.699202: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 06:15:00.699297: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:15:00.699438: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:15:00.747944: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:15:00.748167: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:15:00.748408: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:15:00.749225: Cars 1 charging from battery False 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-16 06:15:00.749570: Predbat mode is set to Control charge & discharge
2026-08-16 06:15:01.112026: Found 21602 load_today datapoints going back 27 days
2026-08-16 06:15:01.112255: Using load_power data to fill gaps in load_today data
2026-08-16 06:15:02.352174: Processing 721 30-minute periods for power integration
2026-08-16 06:15:02.548809: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0064 val_mae=0.0039 kWh val_bias=-0.0018 kWh (-2.0%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-16 06:15:02.694818: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:15:02.695103: Car charging hold False, threshold 6.0kWh
2026-08-16 06:15:02.695916: Current data so far today: load 3.9kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:15:02.740100: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:15:02.740555: Standing charge is set to 49.98p
2026-08-16 06:15:02.904466: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:15:02.904582: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:15:02.904974: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 375.0 minutes
2026-08-16 06:15:02.905527: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 374.8 minutes
2026-08-16 06:15:02.910459: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:15:03.015471: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:15:03.083395: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:15:03.083865: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:15:03.130909: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:15:03.132444: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:15:03.134651: High export rate found rates in range 99p to -99p
2026-08-16 06:15:03.327522: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:15:03.343739: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:15:03.384019: Battery level now 8.39kWh, -1hr ago 8.89kWh, at midnight 12.21kWh, battery value change in the last hour -0.5p, change today -3.82p, rate_forward 1.0p
2026-08-16 06:15:03.384982: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.45p, import 0.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:15:03.524639: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:15:03.525000: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:15:03.632997: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:15:03.660213: Today's load divergence 96.75%, in-day adjustment 86.6%, damping 0.95x, yesterday 82.97% today 96.91% blend 73.96%
2026-08-16 06:15:03.660562: Today's predicted so far 4.34kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.34kWh forecast extra.
2026-08-16 06:15:03.660660: Today's actual load so far 3.84kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:15:03.730703: Inverter 0: Type SK Sunsynk
2026-08-16 06:15:03.730819: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:15:03.731023: Reserve min: 7%, battery_min: 7%
2026-08-16 06:15:03.731098: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:15:03.731393: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 506W, current battery voltage 51.2V, grid power -56W, load power 556W, PV Power 0W
2026-08-16 06:15:03.731554: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:15:03.731648: Inverter 0 scheduled charge enable is False
2026-08-16 06:15:03.731685: Inverter 0 charge windows currently []
2026-08-16 06:15:03.731711: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:15:03.731823: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:15:03.731875: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:15:03.731914: Inverter 0 scheduled discharge enable is False
2026-08-16 06:15:03.733684: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:15:03.733763: Inverter 0 discharge windows currently []
2026-08-16 06:15:03.733792: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:15:03.733811: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:15:03.752783: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:15:03.922613: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:15:03.922755: Plan was last updated on 2026-08-16 06:10:00+01:00 and is now 5.0 minutes old
2026-08-16 06:15:03.923123: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:15:03.923184: Best export window [  ]
2026-08-16 06:15:03.924341: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:15:03.929301: Load divergence over 8.0 hours mean 344.99W, min 244.8W, max 864.0W, std dev 89.07W, divergence 12.91%
2026-08-16 06:15:04.053125: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:15:04.055898: LoadML is_calculating True
2026-08-16 06:15:04.056039: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:15:04.116290: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 390.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.68kWh, PV 0.0kWh
2026-08-16 06:15:04.442007: Battery has 13.17 hours left - now at 8.32kWh
2026-08-16 06:15:04.612379: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 415.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.48kWh, PV 0.0kWh
2026-08-16 06:15:04.743924: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 270.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.48kWh, PV 0.0kWh
2026-08-16 06:15:04.863214: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 235.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.68kWh, PV 0.0kWh
2026-08-16 06:15:04.863447: Saving plan best values to HA entities
2026-08-16 06:15:05.299611: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:15:05.307956: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:15:05.316244: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.81kWh, house 1.59kWh, export 0.0kWh, metric 235.99p, metric10 270.82p
2026-08-16 06:15:05.470283: Marginal costs baseline metric (no standing charge): 186.0056
2026-08-16 06:15:05.943205: Marginal energy costs matrix computed: min=18.44 max=33.78
2026-08-16 06:15:06.109537: Rate array import [{'start': 375, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 375, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:15:06.110710: - Your estimated bill for today is £1.35 and tomorrow is £7.34
2026-08-16 06:15:06.110777: - Import rates are expensive (24.1p - 26.1p) for the next 4 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:15:06.110988: - The battery is currently at 52% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 06:15:06.111128: - For the next 48 hours there will be no solar generation.
2026-08-16 06:15:06.111289: - You will run out of battery in 25 hours.
2026-08-16 06:15:06.111446: - Your next charge slot will be in 4 and three quarters hours where import rates will be free (0.0p).
2026-08-16 06:15:06.111606: 
2026-08-16 06:15:06.174237: Plan calculation took 2.25 seconds
2026-08-16 06:15:06.180140: No high rate period found
2026-08-16 06:15:06.273397: Import threshold used for optimisation was 23.43p
2026-08-16 06:15:06.416408: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 94: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:15:06.426390: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:15:06.441131: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:15:06.441326: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:15:06.441673: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:15:06.441806: No export window planned
2026-08-16 06:15:06.442073: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:15:06.442124: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:15:06.442374: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:15:06.442629: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:15:06.442732: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:15:06.442888: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:15:06.443066: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443503: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.443977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.444134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.444176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.444442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:15:06.444484: Inverter 0 count register writes 0
2026-08-16 06:15:06.490105: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:15:06.505774: Total inverter register writes now 826
2026-08-16 06:15:06.605940: Info: Completed run status Demand
2026-08-16 06:15:06.618441: Info: record_status Demand
2026-08-16 06:15:06.651000: Saved current settings to /config/predbat_config.json
2026-08-16 06:15:06.651375: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:15:36.895942: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0030 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0015 kWh ema_combined=0.0025 kWh
2026-08-16 06:15:41.897660: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:15:41.898404: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:15:41.898639: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:15:41.899162: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:15:41.899359: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:15:41.899655: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:15:41.899826: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:16:12.197680: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-16 06:16:43.208159: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0062 val_mae=0.0033 kWh val_bias=-0.0014 kWh (-1.5%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-16 06:17:16.841063: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-16 06:17:42.474261: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:17:42.474742: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:17:42.474890: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:17:42.475495: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:17:42.475643: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:17:42.475787: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:17:42.475928: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:17:52.755081: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0061 val_mae=0.0035 kWh val_bias=-0.0016 kWh (-1.8%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-16 06:18:26.182249: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0055 val_mae=0.0031 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-16 06:18:58.643533: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 06:19:33.295879: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0030 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-16 06:19:57.096677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:19:57.097195: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:19:57.097345: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:19:57.097670: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:19:57.097805: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:19:57.097954: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:19:57.098066: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:20:00.290345: --------------- PredBat - update at 2026-08-16 06:20:00+01:00 with clock skew 0 minutes, minutes now 380
2026-08-16 06:20:00.293018: Saved current settings to /config/predbat_config.json
2026-08-16 06:20:00.293318: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 06:20:00.293525: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:20:00.293718: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:20:00.350970: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:20:00.351312: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:20:00.351654: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:20:00.352464: Cars 1 charging from battery False 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-16 06:20:00.352737: Predbat mode is set to Control charge & discharge
2026-08-16 06:20:00.820824: Found 21602 load_today datapoints going back 27 days
2026-08-16 06:20:00.821222: Using load_power data to fill gaps in load_today data
2026-08-16 06:20:02.352100: Processing 721 30-minute periods for power integration
2026-08-16 06:20:02.608458: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:20:02.608771: Car charging hold False, threshold 6.0kWh
2026-08-16 06:20:02.608974: Current data so far today: load 3.95kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:20:02.628270: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:20:02.628884: Standing charge is set to 49.98p
2026-08-16 06:20:02.738289: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:20:02.753105: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:20:02.753656: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 380.0 minutes
2026-08-16 06:20:02.754507: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 379.8 minutes
2026-08-16 06:20:02.758796: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:20:02.951392: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:20:03.047944: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:20:03.049248: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:20:03.098486: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:20:03.099157: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:20:03.100502: High export rate found rates in range 99p to -99p
2026-08-16 06:20:03.194175: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:20:03.194434: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:20:03.218325: Battery level now 8.32kWh, -1hr ago 8.8kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.89p, rate_forward 1.0p
2026-08-16 06:20:03.218764: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 0.33p, import 0.33p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:20:03.330182: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:20:03.330613: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:20:03.548805: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:20:03.577093: Today's load divergence 97.01%, in-day adjustment 86.71%, damping 0.95x, yesterday 82.97% today 97.16% blend 73.61%
2026-08-16 06:20:03.581094: Today's predicted so far 4.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.35kWh forecast extra.
2026-08-16 06:20:03.581180: Today's actual load so far 3.89kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:20:03.634477: Inverter 0: Type SK Sunsynk
2026-08-16 06:20:03.634578: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:20:03.634766: Reserve min: 7%, battery_min: 7%
2026-08-16 06:20:03.634839: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:20:03.635128: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 491W, current battery voltage 51.2V, grid power -55W, load power 539W, PV Power 0W
2026-08-16 06:20:03.635294: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:20:03.635389: Inverter 0 scheduled charge enable is False
2026-08-16 06:20:03.635428: Inverter 0 charge windows currently []
2026-08-16 06:20:03.635456: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:20:03.635574: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:20:03.635613: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:20:03.635648: Inverter 0 scheduled discharge enable is False
2026-08-16 06:20:03.635781: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:20:03.635821: Inverter 0 discharge windows currently []
2026-08-16 06:20:03.635843: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:20:03.635861: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:20:03.635886: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:20:03.711555: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:20:03.711681: Plan was last updated on 2026-08-16 06:10:00+01:00 and is now 10.0 minutes old
2026-08-16 06:20:03.711984: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:20:03.712037: Best export window [  ]
2026-08-16 06:20:03.712932: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:20:03.716283: Load divergence over 8.0 hours mean 344.53W, min 244.2W, max 891.6W, std dev 88.81W, divergence 12.89%
2026-08-16 06:20:03.736060: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:20:03.736190: LoadML is_calculating True
2026-08-16 06:20:03.736223: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:20:03.805698: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 391.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.77kWh, PV 0.0kWh
2026-08-16 06:20:04.109102: Battery has 13.17 hours left - now at 8.32kWh
2026-08-16 06:20:04.169458: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 416.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.57kWh, PV 0.0kWh
2026-08-16 06:20:04.322849: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 280.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.57kWh, PV 0.0kWh
2026-08-16 06:20:04.429555: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 247.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.77kWh, PV 0.0kWh
2026-08-16 06:20:04.429725: Saving plan best values to HA entities
2026-08-16 06:20:04.828327: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:20:04.839163: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:20:04.850515: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.27kWh, house 1.59kWh, export 0.0kWh, metric 247.07p, metric10 280.22p
2026-08-16 06:20:05.073450: Marginal costs baseline metric (no standing charge): 197.085
2026-08-16 06:20:05.487639: Marginal energy costs matrix computed: min=16.27 max=33.39
2026-08-16 06:20:05.681147: Rate array import [{'start': 380, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 380, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:20:05.681826: - Your estimated bill for today is £1.34 and tomorrow is £7.34
2026-08-16 06:20:05.681868: - Import rates are expensive (24.1p - 26.1p) for the next 4 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:20:05.681889: - The battery is currently at 52% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 06:20:05.681932: - For the next 48 hours there will be no solar generation.
2026-08-16 06:20:05.681950: - You will run out of battery in 25 hours.
2026-08-16 06:20:05.681967: - Your next charge slot will be in 4 and three quarters hours where import rates will be free (0.0p).
2026-08-16 06:20:05.681984: 
2026-08-16 06:20:05.741613: Plan calculation took 2.03 seconds
2026-08-16 06:20:05.744841: No high rate period found
2026-08-16 06:20:05.940032: Import threshold used for optimisation was 23.43p
2026-08-16 06:20:06.099393: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 94: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:20:06.109027: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:20:06.109173: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:20:06.109252: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:20:06.109432: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:20:06.109509: No export window planned
2026-08-16 06:20:06.109608: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:20:06.109750: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:20:06.110014: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:20:06.110240: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:20:06.110306: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:20:06.110480: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:20:06.110621: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.110681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.110798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.110884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:20:06.111751: Inverter 0 count register writes 0
2026-08-16 06:20:06.134592: 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-16 06:20:06.134860: Recompute is saving previous plan...
2026-08-16 06:20:06.138218: Best charge window [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0% ]
2026-08-16 06:20:06.138316: Best export window [  ]
2026-08-16 06:20:06.139211: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:20:06.142453: Load divergence over 8.0 hours mean 344.53W, min 244.2W, max 891.6W, std dev 88.81W, divergence 12.89%
2026-08-16 06:20:06.161221: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:20:06.161322: LoadML is_calculating True
2026-08-16 06:20:06.161348: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:20:06.170536: 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(0.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-16 06:20:06.171976: Optimise levels pass started at 2026-08-16 06:20:06
2026-08-16 06:20:06.172033: Optimise all windows, total charge 94 export 1
2026-08-16 06:20:09.632823: >> Region optimisation pass width 960 gives best_metric 505.37p, best_cost 517.43p, best_cycle 38.6kWh, best_import 25.88kWh
2026-08-16 06:20:10.942601: >> Region optimisation pass width 480 gives best_metric 505.37p, best_cost 517.43p, best_cycle 38.6kWh, best_import 25.88kWh
2026-08-16 06:20:12.119409: >> Region optimisation pass width 240 gives best_metric 505.37p, best_cost 517.43p, best_cycle 38.6kWh, best_import 25.88kWh
2026-08-16 06:20:16.083078: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0029 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-16 06:20:18.427416: >> Region optimisation pass width 120 gives best_metric 504.96p, best_cost 517.1p, best_cycle 39.9kWh, best_import 25.97kWh
2026-08-16 06:20:18.427923: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 57
2026-08-16 06:20:18.428270: Optimise levels pass ended at 2026-08-16 06:20:18, duration 12.3 seconds tried 338 combinations
2026-08-16 06:20:18.428363: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 504.96p, best_keep 0kWh, best_cycle 39.9kWh, best_carbon 0kg, best_import 25.97kWh
2026-08-16 06:20:18.466702: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 06:20:49.077515: Tweak plan optimisation started metric 158.57p, cost 173.85p
2026-08-16 06:20:51.294636: Tweak optimisation finished metric 158.57p, cost 173.85p, metric_keep 0kWh, cycle 20.96kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 06:20:51.315942: Swap charge optimisation started metric 158.57p, cost 173.85p, min_improvement_swap 0.1p
2026-08-16 06:21:00.844562: Swap charge optimisation finished metric 158.57p, cost 173.85p
2026-08-16 06:21:00.986597: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 153.25p -> 153.25p, plan now metric 158.69p, cost 173.85p, cycle 20.96kWh, import 10.98kWh
2026-08-16 06:21:01.000314: Raw charge windows [ 16-08 06:00:00 - 16-08 06:30:00 @ 25.68p 0%, 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100% ] reserve 1.12
2026-08-16 06:21:01.001807: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:21:01.002806: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:21:01.003086: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:21:01.045874: Previous plan best metric is 158.5 (cost 173.66) and new plan best metric is 158.57 (cost 173.85)
2026-08-16 06:21:01.046377: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:21:01.046517: Plan valid is now true after recompute was False
2026-08-16 06:21:01.074737: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 388.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.64kWh, PV 0.0kWh
2026-08-16 06:21:01.278130: Battery has 13.17 hours left - now at 8.32kWh
2026-08-16 06:21:01.359152: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 412.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.43kWh, PV 0.0kWh
2026-08-16 06:21:01.473987: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 260.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.43kWh, PV 0.0kWh
2026-08-16 06:21:01.630686: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 223.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.64kWh, PV 0.0kWh
2026-08-16 06:21:01.631474: Saving plan best values to HA entities
2026-08-16 06:21:01.963864: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:21:01.974084: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:21:01.985053: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.3kWh, house 1.59kWh, export 0.0kWh, metric 223.65p, metric10 260.02p
2026-08-16 06:21:02.139540: Marginal costs baseline metric (no standing charge): 173.6636
2026-08-16 06:21:02.641583: Marginal energy costs matrix computed: min=16.27 max=33.39
2026-08-16 06:21:02.829540: Rate array import [{'start': 380, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 380, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:21:02.830554: - Your estimated bill for today is £1.34 and tomorrow is £7.34
2026-08-16 06:21:02.830728: - Import rates are expensive (24.1p - 26.1p) for the next 4 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:21:02.830794: - The battery is currently at 52% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 06:21:02.830928: - For the next 48 hours there will be no solar generation.
2026-08-16 06:21:02.831025: - You will run out of battery in 25 hours.
2026-08-16 06:21:02.831126: - Your next charge slot will be in 4 and three quarters hours where import rates will be free (0.0p).
2026-08-16 06:21:02.831172: 
2026-08-16 06:21:02.959659: Plan calculation took 56.82 seconds
2026-08-16 06:21:02.960182: Inverter 0: Type SK Sunsynk
2026-08-16 06:21:02.960272: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:21:02.960625: Reserve min: 7%, battery_min: 7%
2026-08-16 06:21:02.960973: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:21:02.961455: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 470W, current battery voltage 51.2V, grid power -54W, load power 516W, PV Power 0W
2026-08-16 06:21:02.961833: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:21:02.962102: Inverter 0 scheduled charge enable is False
2026-08-16 06:21:02.962265: Inverter 0 charge windows currently []
2026-08-16 06:21:02.962428: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:21:02.962667: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:21:02.962740: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:21:02.963459: Inverter 0 scheduled discharge enable is False
2026-08-16 06:21:02.963817: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:21:02.963960: Inverter 0 discharge windows currently []
2026-08-16 06:21:02.964092: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:21:02.964160: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:21:02.964201: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:21:03.076826: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:21:03.077074: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:21:03.077234: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:21:03.077494: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:21:03.077627: No export window planned
2026-08-16 06:21:03.077795: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:21:03.077841: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:21:03.078094: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:21:03.078314: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:21:03.078372: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:21:03.078512: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:21:03.078648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.078698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.078810: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.078856: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079010: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079135: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:21:03.079783: Inverter 0 count register writes 0
2026-08-16 06:21:03.107494: Total inverter register writes now 826
2026-08-16 06:21:03.167786: Info: Completed run status Demand
2026-08-16 06:21:03.177819: Info: record_status Demand
2026-08-16 06:21:03.189173: Saved current settings to /config/predbat_config.json
2026-08-16 06:21:03.189563: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:21:14.608797: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0054 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 06:21:42.418524: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:21:42.418771: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:21:42.418818: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:21:42.418970: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:21:42.419013: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:21:42.419035: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:21:42.419052: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:21:51.310433: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 06:22:24.397534: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0026 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-16 06:22:56.148193: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 06:23:26.510531: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0026 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 06:23:57.065244: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:23:57.065503: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:23:57.065548: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:23:57.065689: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:23:57.065730: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:23:57.065753: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:23:57.065795: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:24:01.069129: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 06:24:01.070112: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 06:24:01.070266: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 06:24:10.043257: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=-0.0008 kWh (-0.9%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 06:24:10.049096: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0026 kWh
2026-08-16 06:24:10.186841: ML Predictor: Curriculum pass 4/5: window=57.0 days (1368 hours of data)
2026-08-16 06:24:10.187192: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 06:24:10.927978: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 06:24:16.173526: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 06:24:16.228735: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0589 std=0.0470) pv(mean=0.0000 std=0.0100) temp(mean=19.5525 std=4.4514) import_rate(mean=26.1504 std=2.9036) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1895 std=0.5252)
2026-08-16 06:24:16.318123: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 06:24:16.335125: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 06:24:16.367978: ML Predictor: Baseline (pre-finetune) val_mae=0.0062 kWh val_bias=+0.0019 kWh
2026-08-16 06:24:49.223547: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0107 val_mae=0.0061 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 06:25:00.840982: --------------- PredBat - update at 2026-08-16 06:25:00+01:00 with clock skew 0 minutes, minutes now 385
2026-08-16 06:25:00.841900: Saved current settings to /config/predbat_config.json
2026-08-16 06:25:00.842061: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 06:25:00.842158: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:25:00.842255: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:25:00.890009: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:25:00.890177: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:25:00.890501: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:25:00.891268: Cars 1 charging from battery False 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-16 06:25:00.891483: Predbat mode is set to Control charge & discharge
2026-08-16 06:25:01.230174: Found 21602 load_today datapoints going back 27 days
2026-08-16 06:25:01.230480: Using load_power data to fill gaps in load_today data
2026-08-16 06:25:02.774587: Processing 721 30-minute periods for power integration
2026-08-16 06:25:03.080657: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:25:03.081102: Car charging hold False, threshold 6.0kWh
2026-08-16 06:25:03.081287: Current data so far today: load 4.0kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:25:03.101685: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:25:03.102311: Standing charge is set to 49.98p
2026-08-16 06:25:03.191979: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:25:03.192276: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:25:03.192587: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 385.0 minutes
2026-08-16 06:25:03.193171: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 384.8 minutes
2026-08-16 06:25:03.196202: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:25:03.354128: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:25:03.576823: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:25:03.586003: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:25:03.627912: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:25:03.628145: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:25:03.629623: High export rate found rates in range 99p to -99p
2026-08-16 06:25:03.715623: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:25:03.716794: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:25:03.733064: Battery level now 8.32kWh, -1hr ago 8.8kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -3.89p, rate_forward 1.0p
2026-08-16 06:25:03.733438: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 0.22p, import 0.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:25:03.799338: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:25:03.799490: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:25:03.951813: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:25:03.985111: Today's load divergence 97.31%, in-day adjustment 86.84%, damping 0.95x, yesterday 82.97% today 97.45% blend 73.26%
2026-08-16 06:25:03.991066: Today's predicted so far 4.36kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.36kWh forecast extra.
2026-08-16 06:25:03.993238: Today's actual load so far 3.95kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:25:04.076139: Inverter 0: Type SK Sunsynk
2026-08-16 06:25:04.076327: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:25:04.076607: Reserve min: 7%, battery_min: 7%
2026-08-16 06:25:04.076760: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:25:04.077136: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 492W, current battery voltage 51.2V, grid power -54W, load power 540W, PV Power 0W
2026-08-16 06:25:04.077388: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:25:04.077544: Inverter 0 scheduled charge enable is False
2026-08-16 06:25:04.077647: Inverter 0 charge windows currently []
2026-08-16 06:25:04.077735: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:25:04.077906: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:25:04.078024: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:25:04.078124: Inverter 0 scheduled discharge enable is False
2026-08-16 06:25:04.078324: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:25:04.078427: Inverter 0 discharge windows currently []
2026-08-16 06:25:04.078507: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:25:04.078583: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:25:04.078657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:25:04.259297: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:25:04.259575: Plan was last updated on 2026-08-16 06:20:00+01:00 and is now 5.0 minutes old
2026-08-16 06:25:04.260160: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:25:04.260362: Best export window [  ]
2026-08-16 06:25:04.261824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:25:04.267094: Load divergence over 8.0 hours mean 344.03W, min 240.6W, max 912.0W, std dev 90.16W, divergence 13.1%
2026-08-16 06:25:04.306050: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:25:04.306344: LoadML is_calculating True
2026-08-16 06:25:04.306481: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:25:04.390107: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 389.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.74kWh, PV 0.0kWh
2026-08-16 06:25:04.586670: Battery has 13.08 hours left - now at 8.32kWh
2026-08-16 06:25:04.722796: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 413.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.54kWh, PV 0.0kWh
2026-08-16 06:25:04.858223: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 269.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 21.54kWh, PV 0.0kWh
2026-08-16 06:25:05.145055: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 235.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.74kWh, PV 0.0kWh
2026-08-16 06:25:05.145233: Saving plan best values to HA entities
2026-08-16 06:25:05.456126: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:25:05.469309: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:25:05.506664: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.77kWh, house 1.59kWh, export 0.0kWh, metric 235.26p, metric10 269.9p
2026-08-16 06:25:05.814512: Marginal costs baseline metric (no standing charge): 185.2765
2026-08-16 06:25:06.152365: Marginal energy costs matrix computed: min=13.98 max=33.01
2026-08-16 06:25:06.308531: Rate array import [{'start': 385, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 385, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:25:06.309269: - Your estimated bill for today is £1.34 and tomorrow is £7.35
2026-08-16 06:25:06.309327: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:25:06.309351: - The battery is currently at 52% and is in eco mode for the next 4 and a half hours.
2026-08-16 06:25:06.309370: - For the next 48 hours there will be no solar generation.
2026-08-16 06:25:06.309387: - You will run out of battery in 25 hours.
2026-08-16 06:25:06.309405: - Your next charge slot will be in 4 and a half hours where import rates will be free (0.0p).
2026-08-16 06:25:06.309422: 
2026-08-16 06:25:06.364684: Plan calculation took 2.10 seconds
2026-08-16 06:25:06.367902: No high rate period found
2026-08-16 06:25:06.468147: Import threshold used for optimisation was 23.43p
2026-08-16 06:25:06.619363: Low import rate windows [0: 08-16 06:00:00 - 08-16 06:30:00 @ 25.68, 1: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 2: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 3: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 4: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 5: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 6: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 7: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 8: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 9: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 10: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 11: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 12: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 13: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 14: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 15: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 16: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 17: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 18: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 19: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 20: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 21: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 22: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 23: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 24: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 25: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 26: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 27: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 28: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 29: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 30: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 31: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 32: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 33: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 34: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 35: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 36: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 37: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 38: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 39: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 40: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 41: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 42: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 43: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 44: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 45: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 46: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 47: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 48: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 49: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 50: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 51: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 52: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 53: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 54: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 55: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 56: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 57: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 58: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 59: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 60: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 61: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 62: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 63: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 64: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 65: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 66: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 67: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 68: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 69: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 70: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 71: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 72: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 73: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 74: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 75: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 76: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 77: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 78: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 79: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 80: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 81: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 82: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 83: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 84: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 85: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 86: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 87: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 88: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 89: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 90: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 91: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 92: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 93: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 94: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:25:06.628025: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:25:06.628233: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:25:06.628386: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:25:06.628634: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:25:06.628778: No export window planned
2026-08-16 06:25:06.628991: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:25:06.629099: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:25:06.629312: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:25:06.629528: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:25:06.629644: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:25:06.629760: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:25:06.629907: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630035: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630232: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.630964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.631065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.631155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.631248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:25:06.631330: Inverter 0 count register writes 0
2026-08-16 06:25:06.679844: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:25:06.693506: Total inverter register writes now 826
2026-08-16 06:25:06.786326: Info: Completed run status Demand
2026-08-16 06:25:06.797793: Info: record_status Demand
2026-08-16 06:25:06.811620: Saved current settings to /config/predbat_config.json
2026-08-16 06:25:06.811874: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:25:26.867577: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0058 kWh val_bias=-0.0026 kWh (-3.2%) combined=0.0050 kWh ema_combined=0.0039 kWh
2026-08-16 06:25:42.016347: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:25:42.016740: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:25:42.016823: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:25:42.017133: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:25:42.017216: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:25:42.017260: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:25:42.017297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:26:00.600585: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0098 val_mae=0.0055 kWh val_bias=-0.0015 kWh (-1.9%) combined=0.0030 kWh ema_combined=0.0036 kWh
2026-08-16 06:26:36.499831: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0122 val_mae=0.0052 kWh val_bias=+0.0025 kWh (+3.1%) combined=0.0048 kWh ema_combined=0.0040 kWh
2026-08-16 06:27:08.051203: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0114 val_mae=0.0050 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0026 kWh ema_combined=0.0036 kWh
2026-08-16 06:27:39.913825: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0108 val_mae=0.0061 kWh val_bias=-0.0034 kWh (-4.3%) combined=0.0052 kWh ema_combined=0.0041 kWh
2026-08-16 06:27:56.577921: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:27:56.578208: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:27:56.578254: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:27:56.578395: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:27:56.578435: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:27:56.578458: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:27:56.578479: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:28:12.799925: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0101 val_mae=0.0044 kWh val_bias=-0.0015 kWh (-1.9%) combined=0.0033 kWh ema_combined=0.0038 kWh
2026-08-16 06:28:44.905417: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0095 val_mae=0.0044 kWh val_bias=+0.0013 kWh (+1.7%) combined=0.0035 kWh ema_combined=0.0038 kWh
2026-08-16 06:29:21.048259: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0040 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0021 kWh ema_combined=0.0033 kWh
2026-08-16 06:29:57.159468: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:29:57.159956: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:29:57.160081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:29:57.160438: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:29:57.160506: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:29:57.160597: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:29:57.160683: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:29:57.248249: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0048 kWh val_bias=+0.0019 kWh (+2.4%) combined=0.0041 kWh ema_combined=0.0035 kWh
2026-08-16 06:30:00.383435: --------------- PredBat - update at 2026-08-16 06:30:00+01:00 with clock skew 0 minutes, minutes now 390
2026-08-16 06:30:00.384263: Saved current settings to /config/predbat_config.json
2026-08-16 06:30:00.384427: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 06:30:00.384587: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:30:00.384800: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:30:00.435712: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:30:00.436021: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:30:00.436315: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:30:00.437015: Cars 1 charging from battery False 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-16 06:30:00.437250: Predbat mode is set to Control charge & discharge
2026-08-16 06:30:00.865934: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:30:00.870443: Using load_power data to fill gaps in load_today data
2026-08-16 06:30:02.628091: Processing 721 30-minute periods for power integration
2026-08-16 06:30:02.833358: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:30:02.833575: Car charging hold False, threshold 6.0kWh
2026-08-16 06:30:02.833663: Current data so far today: load 4.05kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:30:02.857500: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:30:02.858082: Standing charge is set to 49.98p
2026-08-16 06:30:02.962094: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:30:02.962221: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:30:02.962464: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 390.0 minutes
2026-08-16 06:30:02.963046: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 389.8 minutes
2026-08-16 06:30:02.967226: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:30:03.282117: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:30:03.478262: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:30:03.478828: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:30:03.529301: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:30:03.530034: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:30:03.531765: High export rate found rates in range 99p to -99p
2026-08-16 06:30:03.637290: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:30:03.637738: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:30:03.687660: Battery level now 8.32kWh, -1hr ago 8.7kWh, at midnight 12.21kWh, battery value change in the last hour -0.38p, change today -3.89p, rate_forward 1.0p
2026-08-16 06:30:03.688223: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.57kWh, net cost 0.11p, import 0.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 06:30:03.833399: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:30:03.833580: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:30:04.108729: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:30:04.132342: Today's load divergence 97.22%, in-day adjustment 86.87%, damping 0.95x, yesterday 82.97% today 97.36% blend 72.92%
2026-08-16 06:30:04.132620: Today's predicted so far 4.47kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.47kWh forecast extra.
2026-08-16 06:30:04.132715: Today's actual load so far 4.05kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:30:04.224111: Inverter 0: Type SK Sunsynk
2026-08-16 06:30:04.224365: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:30:04.224670: Reserve min: 7%, battery_min: 7%
2026-08-16 06:30:04.224841: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:30:04.225285: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 498W, current battery voltage 51.2V, grid power -54W, load power 544W, PV Power 0W
2026-08-16 06:30:04.228230: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:30:04.228449: Inverter 0 scheduled charge enable is False
2026-08-16 06:30:04.228575: Inverter 0 charge windows currently []
2026-08-16 06:30:04.228689: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:30:04.228907: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:30:04.229247: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:30:04.229431: Inverter 0 scheduled discharge enable is False
2026-08-16 06:30:04.229799: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:30:04.229954: Inverter 0 discharge windows currently []
2026-08-16 06:30:04.230075: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:30:04.230171: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:30:04.230259: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:30:04.414150: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:30:04.414286: Plan was last updated on 2026-08-16 06:20:00+01:00 and is now 10.0 minutes old
2026-08-16 06:30:04.414704: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:30:04.414860: Best export window [  ]
2026-08-16 06:30:04.415830: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:30:04.419540: Load divergence over 8.0 hours mean 344.02W, min 223.8W, max 1097.4W, std dev 99.23W, divergence 14.42%
2026-08-16 06:30:04.468725: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:30:04.480939: LoadML is_calculating True
2026-08-16 06:30:04.481155: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:30:04.609640: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 390.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.84kWh, PV 0.0kWh
2026-08-16 06:30:04.863218: Battery has 13.08 hours left - now at 8.32kWh
2026-08-16 06:30:04.931646: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 414.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.64kWh, PV 0.0kWh
2026-08-16 06:30:05.199225: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 279.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.64kWh, PV 0.0kWh
2026-08-16 06:30:05.388106: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 246.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.84kWh, PV 0.0kWh
2026-08-16 06:30:05.388300: Saving plan best values to HA entities
2026-08-16 06:30:05.860694: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:30:05.886005: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:30:05.897427: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.22kWh, house 1.61kWh, export 0.0kWh, metric 246.49p, metric10 279.46p
2026-08-16 06:30:06.121574: Marginal costs baseline metric (no standing charge): 196.5023
2026-08-16 06:30:06.767950: Marginal energy costs matrix computed: min=11.81 max=32.63
2026-08-16 06:30:06.959015: Rate array import [{'start': 390, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 390, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:30:06.960140: - Your estimated bill for today is £1.33 and tomorrow is £7.33
2026-08-16 06:30:06.960402: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:30:06.971552: - The battery is currently at 52% and is in eco mode for the next 4 and a half hours.
2026-08-16 06:30:06.971670: - For the next 48 hours there will be no solar generation.
2026-08-16 06:30:06.971705: - You will run out of battery in 25 hours.
2026-08-16 06:30:06.971792: - Your next charge slot will be in 4 and a half hours where import rates will be free (0.0p).
2026-08-16 06:30:06.971945: 
2026-08-16 06:30:07.058874: Plan calculation took 2.64 seconds
2026-08-16 06:30:07.062798: No high rate period found
2026-08-16 06:30:07.155446: Import threshold used for optimisation was 23.43p
2026-08-16 06:30:07.282518: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68]
2026-08-16 06:30:07.312185: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 52%, target 100%
2026-08-16 06:30:07.312547: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:30:07.312772: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:30:07.313271: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:30:07.313524: No export window planned
2026-08-16 06:30:07.313808: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:30:07.313969: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:30:07.314346: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:30:07.314675: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:30:07.314845: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:30:07.315048: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:30:07.315271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.315429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.315573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.315711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.315847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.316826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.317034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.317195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.317340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:30:07.317472: Inverter 0 count register writes 0
2026-08-16 06:30:07.349829: 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-16 06:30:07.350451: Recompute is saving previous plan...
2026-08-16 06:30:07.357133: Best charge window [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0% ]
2026-08-16 06:30:07.373707: Best export window [  ]
2026-08-16 06:30:07.375215: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:30:07.380191: Load divergence over 8.0 hours mean 344.02W, min 223.8W, max 1097.4W, std dev 99.23W, divergence 14.42%
2026-08-16 06:30:07.435888: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:30:07.436215: LoadML is_calculating True
2026-08-16 06:30:07.436396: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:30:07.450182: 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(0.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-16 06:30:07.454007: Optimise levels pass started at 2026-08-16 06:30:07
2026-08-16 06:30:07.454126: Optimise all windows, total charge 94 export 1
2026-08-16 06:30:13.648932: >> Region optimisation pass width 960 gives best_metric 505.82p, best_cost 518.01p, best_cycle 38.37kWh, best_import 25.91kWh
2026-08-16 06:30:16.905456: >> Region optimisation pass width 480 gives best_metric 505.48p, best_cost 517.74p, best_cycle 39.69kWh, best_import 26.0kWh
2026-08-16 06:30:18.845509: >> Region optimisation pass width 240 gives best_metric 505.48p, best_cost 517.74p, best_cycle 39.69kWh, best_import 26.0kWh
2026-08-16 06:30:23.146848: >> Region optimisation pass width 120 gives best_metric 505.48p, best_cost 517.74p, best_cycle 39.69kWh, best_import 26.0kWh
2026-08-16 06:30:23.147189: Calculated end_record as 08-17 11:00:00 based on best_price 22.95p, next_charge_start 08-16 11:00:00, max_windows 56
2026-08-16 06:30:23.147268: Optimise levels pass ended at 2026-08-16 06:30:23, duration 15.7 seconds tried 357 combinations
2026-08-16 06:30:23.147578: Set best_price_charge_level 24.6p, best_price_export_level 0p, best_price_charge 22.95p, best_cost_export 0p, best_metric 505.48p, best_keep 0kWh, best_cycle 39.69kWh, best_carbon 0kg, best_import 26.0kWh
2026-08-16 06:30:23.170722: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.95p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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-16 06:30:49.427008: Tweak plan optimisation started metric 157.74p, cost 173.03p
2026-08-16 06:30:50.144069: Tweak optimisation finished metric 157.74p, cost 173.03p, metric_keep 0kWh, cycle 19.68kWh, carbon 0kg, import 10.86kWh, changed 8 window(s)
2026-08-16 06:30:50.179354: Swap charge optimisation started metric 157.74p, cost 173.03p, min_improvement_swap 0.1p
2026-08-16 06:31:00.072817: Swap charge optimisation finished metric 157.74p, cost 173.03p
2026-08-16 06:31:00.268209: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 152.43p -> 152.43p, plan now metric 157.86p, cost 173.03p, cycle 19.68kWh, import 10.86kWh
2026-08-16 06:31:00.288925: Raw charge windows [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100% ] reserve 1.12
2026-08-16 06:31:00.290034: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:31:00.307663: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:31:00.307943: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 06:30:00 @ 26.05p 100% ] reserve 1.12
2026-08-16 06:31:00.342934: Previous plan best metric is 157.86 (cost 173.03) and new plan best metric is 157.74 (cost 173.03)
2026-08-16 06:31:00.343345: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:31:00.343600: Plan valid is now true after recompute was False
2026-08-16 06:31:00.366050: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 386.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.7kWh, PV 0.0kWh
2026-08-16 06:31:00.606363: Battery has 13.08 hours left - now at 8.32kWh
2026-08-16 06:31:00.682858: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 411.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.5kWh, PV 0.0kWh
2026-08-16 06:31:00.938641: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 259.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.5kWh, PV 0.0kWh
2026-08-16 06:31:01.166853: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 223.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.7kWh, PV 0.0kWh
2026-08-16 06:31:01.169044: Saving plan best values to HA entities
2026-08-16 06:31:01.464573: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:31:01.474155: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:31:01.485060: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.25kWh, house 1.61kWh, export 0.0kWh, metric 223.01p, metric10 259.2p
2026-08-16 06:31:01.710134: Marginal costs baseline metric (no standing charge): 173.03
2026-08-16 06:31:02.304019: Marginal energy costs matrix computed: min=11.81 max=32.63
2026-08-16 06:31:02.501658: Rate array import [{'start': 390, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 390, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:31:02.502462: - Your estimated bill for today is £1.33 and tomorrow is £7.33
2026-08-16 06:31:02.502613: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:31:02.502735: - The battery is currently at 52% and is in eco mode for the next 4 and a half hours.
2026-08-16 06:31:02.502848: - For the next 48 hours there will be no solar generation.
2026-08-16 06:31:02.502958: - You will run out of battery in 25 hours.
2026-08-16 06:31:02.503090: - Your next charge slot will be in 4 and a half hours where import rates will be free (0.0p).
2026-08-16 06:31:02.503203: 
2026-08-16 06:31:02.556660: Plan calculation took 55.21 seconds
2026-08-16 06:31:02.557059: Inverter 0: Type SK Sunsynk
2026-08-16 06:31:02.557252: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:31:02.557610: Reserve min: 7%, battery_min: 7%
2026-08-16 06:31:02.557826: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:31:02.558268: Inverter 0 SoC: 8.21kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 470W, current battery voltage 51.2V, grid power -54W, load power 516W, PV Power 0W
2026-08-16 06:31:02.558579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:31:02.558814: Inverter 0 scheduled charge enable is False
2026-08-16 06:31:02.558931: Inverter 0 charge windows currently []
2026-08-16 06:31:02.559147: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:31:02.559418: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:31:02.559539: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:31:02.559754: Inverter 0 scheduled discharge enable is False
2026-08-16 06:31:02.560060: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:31:02.560186: Inverter 0 discharge windows currently []
2026-08-16 06:31:02.560334: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:31:02.560484: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:31:02.560618: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:31:02.661686: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:31:02.662050: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:31:02.662261: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:31:02.662597: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:31:02.662812: No export window planned
2026-08-16 06:31:02.663084: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:31:02.663204: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:31:02.663549: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:31:02.663857: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:31:02.664054: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:31:02.664248: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:31:02.664472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.664648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.664806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665335: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.665883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:31:02.666806: Inverter 0 count register writes 0
2026-08-16 06:31:02.704327: Total inverter register writes now 826
2026-08-16 06:31:02.789973: Info: Completed run status Demand
2026-08-16 06:31:02.800797: Info: record_status Demand
2026-08-16 06:31:02.812502: Saved current settings to /config/predbat_config.json
2026-08-16 06:31:02.812772: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:31:07.891753: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0083 val_mae=0.0039 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0025 kWh ema_combined=0.0032 kWh
2026-08-16 06:31:41.984227: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:31:41.984852: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:31:41.985143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:31:41.985554: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:31:41.985762: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:31:41.985910: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:31:41.986105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:31:43.243605: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0086 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0019 kWh ema_combined=0.0028 kWh
2026-08-16 06:32:17.407660: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0082 val_mae=0.0039 kWh val_bias=-0.0022 kWh (-2.7%) combined=0.0036 kWh ema_combined=0.0030 kWh
2026-08-16 06:32:50.621877: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0076 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0019 kWh ema_combined=0.0027 kWh
2026-08-16 06:33:24.656867: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0024 kWh
2026-08-16 06:33:42.460023: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:33:42.460285: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:33:42.460330: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:33:42.460468: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:33:42.460509: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:33:42.460530: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:33:42.460548: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:33:57.042900: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0072 val_mae=0.0032 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 06:34:33.637675: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0066 val_mae=0.0031 kWh val_bias=+0.0011 kWh (+1.3%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-16 06:35:00.949695: --------------- PredBat - update at 2026-08-16 06:35:00+01:00 with clock skew 0 minutes, minutes now 395
2026-08-16 06:35:00.951248: Saved current settings to /config/predbat_config.json
2026-08-16 06:35:00.951584: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 06:35:00.951792: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:35:00.951994: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:35:00.995401: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:35:00.995744: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:35:00.996124: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:35:00.996926: Cars 1 charging from battery False 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-16 06:35:00.997255: Predbat mode is set to Control charge & discharge
2026-08-16 06:35:01.361402: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:35:01.361873: Using load_power data to fill gaps in load_today data
2026-08-16 06:35:02.658217: Processing 721 30-minute periods for power integration
2026-08-16 06:35:02.982117: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:35:02.983070: Car charging hold False, threshold 6.0kWh
2026-08-16 06:35:02.983167: Current data so far today: load 4.1kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:35:03.013311: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:35:03.029841: Standing charge is set to 49.98p
2026-08-16 06:35:03.145906: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:35:03.146377: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:35:03.146711: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 395.0 minutes
2026-08-16 06:35:03.147400: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 394.8 minutes
2026-08-16 06:35:03.151671: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:35:03.279158: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:35:03.352814: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:35:03.388349: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:35:03.504561: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:35:03.504885: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:35:03.506198: High export rate found rates in range 99p to -99p
2026-08-16 06:35:03.758365: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:35:03.758525: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:35:03.776465: Battery level now 8.32kWh, -1hr ago 8.64kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -3.89p, rate_forward 1.0p
2026-08-16 06:35:03.777056: 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-16 06:35:03.897985: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:35:03.898177: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:35:04.028771: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:35:04.056384: Today's load divergence 97.45%, in-day adjustment 86.98%, damping 0.95x, yesterday 82.97% today 97.58% blend 72.57%
2026-08-16 06:35:04.056632: Today's predicted so far 4.55kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.55kWh forecast extra.
2026-08-16 06:35:04.056687: Today's actual load so far 4.16kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:35:04.116010: Inverter 0: Type SK Sunsynk
2026-08-16 06:35:04.116270: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:35:04.116637: Reserve min: 7%, battery_min: 7%
2026-08-16 06:35:04.116843: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:35:04.117349: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 519W, current battery voltage 51.2V, grid power -54W, load power 564W, PV Power 0W
2026-08-16 06:35:04.117671: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:35:04.117897: Inverter 0 scheduled charge enable is False
2026-08-16 06:35:04.118058: Inverter 0 charge windows currently []
2026-08-16 06:35:04.118201: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:35:04.118458: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:35:04.118604: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:35:04.118757: Inverter 0 scheduled discharge enable is False
2026-08-16 06:35:04.119060: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:35:04.119212: Inverter 0 discharge windows currently []
2026-08-16 06:35:04.119341: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:35:04.119463: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:35:04.119583: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:35:04.262201: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:35:04.262341: Plan was last updated on 2026-08-16 06:30:00+01:00 and is now 5.0 minutes old
2026-08-16 06:35:04.262841: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:35:04.262913: Best export window [  ]
2026-08-16 06:35:04.264225: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:35:04.268961: Load divergence over 8.0 hours mean 343.85W, min 213.6W, max 1026.0W, std dev 96.43W, divergence 14.02%
2026-08-16 06:35:04.331249: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:35:04.331408: LoadML is_calculating True
2026-08-16 06:35:04.331447: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:35:04.406302: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 393.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.82kWh, PV 0.0kWh
2026-08-16 06:35:04.589319: Battery has 12.75 hours left - now at 8.16kWh
2026-08-16 06:35:04.657745: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.62kWh, PV 0.0kWh
2026-08-16 06:35:04.795788: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 273.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.62kWh, PV 0.0kWh
2026-08-16 06:35:05.029106: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 238.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.82kWh, PV 0.0kWh
2026-08-16 06:35:05.029204: Saving plan best values to HA entities
2026-08-16 06:35:05.380751: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:35:05.390967: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:35:05.403826: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.87kWh, house 1.62kWh, export 0.0kWh, metric 238.06p, metric10 273.06p
2026-08-16 06:35:05.643426: Marginal costs baseline metric (no standing charge): 188.0745
2026-08-16 06:35:06.069809: Marginal energy costs matrix computed: min=10.07 max=32.53
2026-08-16 06:35:06.239537: Rate array import [{'start': 395, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 395, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:35:06.240241: - Your estimated bill for today is £1.36 and tomorrow is £7.31
2026-08-16 06:35:06.240319: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:35:06.240452: - The battery is currently at 51% and is in eco mode for the next 4 and a half hours.
2026-08-16 06:35:06.240499: - For the next 48 hours there will be no solar generation.
2026-08-16 06:35:06.240520: - You will run out of battery in 25 hours.
2026-08-16 06:35:06.240646: - Your next charge slot will be in 4 and a half hours where import rates will be free (0.0p).
2026-08-16 06:35:06.240691: 
2026-08-16 06:35:06.329466: Plan calculation took 2.07 seconds
2026-08-16 06:35:06.332756: No high rate period found
2026-08-16 06:35:06.503323: Import threshold used for optimisation was 23.43p
2026-08-16 06:35:06.655261: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 94: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 06:35:06.671412: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:35:06.671720: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:35:06.671826: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:35:06.672068: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:35:06.672166: No export window planned
2026-08-16 06:35:06.672296: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:35:06.672364: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:35:06.672540: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:35:06.672724: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:35:06.672783: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:35:06.672843: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:35:06.672935: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673410: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:35:06.673583: Inverter 0 count register writes 0
2026-08-16 06:35:06.706465: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:35:06.714882: Total inverter register writes now 826
2026-08-16 06:35:06.794007: Info: Completed run status Demand
2026-08-16 06:35:06.811780: Info: record_status Demand
2026-08-16 06:35:06.823582: Saved current settings to /config/predbat_config.json
2026-08-16 06:35:06.823818: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:35:11.815883: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0034 kWh val_bias=-0.0016 kWh (-2.0%) combined=0.0028 kWh ema_combined=0.0025 kWh
2026-08-16 06:35:42.067794: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:35:42.068319: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:35:42.068491: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:35:42.068811: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:35:42.068991: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:35:42.069151: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:35:42.069311: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:35:44.155478: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0064 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-16 06:36:18.728509: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 06:36:53.367789: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 06:37:26.759549: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-16 06:37:56.642105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:37:56.642409: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:37:56.642463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:37:56.642631: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:37:56.642676: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:37:56.642703: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:37:56.642733: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:37:58.717510: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-16 06:38:30.507259: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0025 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 06:39:04.172903: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 06:39:34.720541: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 06:39:57.072868: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:39:57.074759: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:39:57.075026: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:39:57.077320: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:39:57.077580: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:39:57.078081: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:39:57.078161: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:40:00.359070: --------------- PredBat - update at 2026-08-16 06:40:00+01:00 with clock skew 0 minutes, minutes now 400
2026-08-16 06:40:00.360038: Saved current settings to /config/predbat_config.json
2026-08-16 06:40:00.360204: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-16 06:40:00.360318: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:40:00.360405: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:40:00.393845: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:40:00.394075: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:40:00.394318: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:40:00.395128: Cars 1 charging from battery False 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-16 06:40:00.395632: Predbat mode is set to Control charge & discharge
2026-08-16 06:40:00.651295: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:40:00.651495: Using load_power data to fill gaps in load_today data
2026-08-16 06:40:01.893333: Processing 721 30-minute periods for power integration
2026-08-16 06:40:02.196925: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:40:02.200768: Car charging hold False, threshold 6.0kWh
2026-08-16 06:40:02.201097: Current data so far today: load 4.0kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:40:02.244845: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:40:02.245519: Standing charge is set to 49.98p
2026-08-16 06:40:02.350088: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:40:02.350384: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:40:02.350746: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 400.0 minutes
2026-08-16 06:40:02.351385: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 399.8 minutes
2026-08-16 06:40:02.354879: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:40:02.620662: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:40:02.674618: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:40:02.674991: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:40:02.711186: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:40:02.711305: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:40:02.712408: High export rate found rates in range 99p to -99p
2026-08-16 06:40:02.791895: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:40:02.792091: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:40:02.810909: Battery level now 8.16kWh, -1hr ago 8.64kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -4.05p, rate_forward 1.0p
2026-08-16 06:40:02.811495: 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-16 06:40:02.961236: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:40:02.961460: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:40:03.239110: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:40:03.275143: Today's load divergence 96.63%, in-day adjustment 86.81%, damping 0.95x, yesterday 82.97% today 96.8% blend 72.22%
2026-08-16 06:40:03.276190: Today's predicted so far 4.55kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.55kWh forecast extra.
2026-08-16 06:40:03.276239: Today's actual load so far 4.04kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:40:03.323886: Inverter 0: Type SK Sunsynk
2026-08-16 06:40:03.323994: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:40:03.324252: Reserve min: 7%, battery_min: 7%
2026-08-16 06:40:03.324355: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:40:03.324716: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 483W, current battery voltage 51.2V, grid power -54W, load power 528W, PV Power 0W
2026-08-16 06:40:03.324926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:40:03.325094: Inverter 0 scheduled charge enable is False
2026-08-16 06:40:03.325149: Inverter 0 charge windows currently []
2026-08-16 06:40:03.325191: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:40:03.325344: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:40:03.325393: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:40:03.325445: Inverter 0 scheduled discharge enable is False
2026-08-16 06:40:03.325633: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:40:03.325684: Inverter 0 discharge windows currently []
2026-08-16 06:40:03.325721: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:40:03.325747: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:40:03.325864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:40:03.416491: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:40:03.416626: Plan was last updated on 2026-08-16 06:30:00+01:00 and is now 10.0 minutes old
2026-08-16 06:40:03.417188: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:40:03.417364: Best export window [  ]
2026-08-16 06:40:03.418794: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:40:03.423688: Load divergence over 8.0 hours mean 343.76W, min 222.6W, max 708.0W, std dev 77.84W, divergence 11.32%
2026-08-16 06:40:03.452828: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:40:03.453144: LoadML is_calculating True
2026-08-16 06:40:03.453200: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:40:03.509844: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 392.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.72kWh, PV 0.0kWh
2026-08-16 06:40:03.797023: Battery has 12.75 hours left - now at 8.16kWh
2026-08-16 06:40:03.855643: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 418.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.51kWh, PV 0.0kWh
2026-08-16 06:40:04.029779: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 281.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.51kWh, PV 0.0kWh
2026-08-16 06:40:04.272303: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 248.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.72kWh, PV 0.0kWh
2026-08-16 06:40:04.272484: Saving plan best values to HA entities
2026-08-16 06:40:04.750294: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:40:04.758665: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:40:04.777991: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.3kWh, house 1.61kWh, export 0.0kWh, metric 248.3p, metric10 281.4p
2026-08-16 06:40:05.003213: Marginal costs baseline metric (no standing charge): 198.3204
2026-08-16 06:40:05.446551: Marginal energy costs matrix computed: min=7.84 max=32.78
2026-08-16 06:40:05.650989: Rate array import [{'start': 400, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 400, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:40:05.651822: - Your estimated bill for today is £1.35 and tomorrow is £7.32
2026-08-16 06:40:05.651985: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:40:05.652129: - The battery is currently at 51% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 06:40:05.652221: - For the next 48 hours there will be no solar generation.
2026-08-16 06:40:05.652355: - You will run out of battery in 25 hours.
2026-08-16 06:40:05.652476: - Your next charge slot will be in 4 and a quarter hours where import rates will be free (0.0p).
2026-08-16 06:40:05.652589: 
2026-08-16 06:40:05.691245: Plan calculation took 2.27 seconds
2026-08-16 06:40:05.694587: No high rate period found
2026-08-16 06:40:05.790769: Import threshold used for optimisation was 23.43p
2026-08-16 06:40:05.964214: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 94: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 06:40:05.985702: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:40:05.985896: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:40:05.985986: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:40:05.986241: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:40:05.986335: No export window planned
2026-08-16 06:40:05.986468: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:40:05.986512: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:40:05.986680: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:40:05.986858: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:40:05.986919: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:40:05.986976: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:40:05.987094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987186: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987368: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:40:05.987717: Inverter 0 count register writes 0
2026-08-16 06:40:06.028865: 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-16 06:40:06.029133: Recompute is saving previous plan...
2026-08-16 06:40:06.033899: Best charge window [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0% ]
2026-08-16 06:40:06.036599: Best export window [  ]
2026-08-16 06:40:06.037991: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:40:06.062939: Load divergence over 8.0 hours mean 343.76W, min 222.6W, max 708.0W, std dev 77.84W, divergence 11.32%
2026-08-16 06:40:06.107033: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:40:06.107289: LoadML is_calculating True
2026-08-16 06:40:06.107409: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:40:06.118252: 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(0.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-16 06:40:06.119978: Optimise levels pass started at 2026-08-16 06:40:06
2026-08-16 06:40:06.120074: Optimise all windows, total charge 94 export 1
2026-08-16 06:40:15.154638: >> Region optimisation pass width 960 gives best_metric 509.18p, best_cost 521.47p, best_cycle 40.3kWh, best_import 26.21kWh
2026-08-16 06:40:17.109142: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 06:40:18.543911: >> Region optimisation pass width 480 gives best_metric 509.12p, best_cost 521.46p, best_cycle 44.96kWh, best_import 26.54kWh
2026-08-16 06:40:22.379030: >> Region optimisation pass width 240 gives best_metric 509.12p, best_cost 521.46p, best_cycle 44.96kWh, best_import 26.54kWh
2026-08-16 06:40:26.157902: >> Region optimisation pass width 120 gives best_metric 509.12p, best_cost 521.46p, best_cycle 44.96kWh, best_import 26.54kWh
2026-08-16 06:40:26.158424: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 56
2026-08-16 06:40:26.158496: Optimise levels pass ended at 2026-08-16 06:40:26, duration 20.0 seconds tried 374 combinations
2026-08-16 06:40:26.158542: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 509.12p, best_keep 0kWh, best_cycle 44.96kWh, best_carbon 0kg, best_import 26.54kWh
2026-08-16 06:40:26.182830: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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-16 06:40:54.438535: Tweak plan optimisation started metric 159.84p, cost 175.14p
2026-08-16 06:40:56.523756: Tweak optimisation finished metric 159.84p, cost 175.14p, metric_keep 0kWh, cycle 20.07kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 06:40:56.546900: Swap charge optimisation started metric 159.84p, cost 175.14p, min_improvement_swap 0.1p
2026-08-16 06:41:06.625729: Swap charge optimisation finished metric 159.84p, cost 175.14p
2026-08-16 06:41:06.731964: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 154.54p -> 154.54p, plan now metric 159.97p, cost 175.14p, cycle 20.07kWh, import 10.98kWh
2026-08-16 06:41:06.743641: Raw charge windows [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 06:41:06.744343: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:41:06.744702: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:41:06.745046: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:41:06.776779: Previous plan best metric is 159.79 (cost 174.96) and new plan best metric is 159.84 (cost 175.14)
2026-08-16 06:41:06.777220: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:41:06.777447: Plan valid is now true after recompute was False
2026-08-16 06:41:06.799459: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 389.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.59kWh, PV 0.0kWh
2026-08-16 06:41:07.093402: Battery has 12.75 hours left - now at 8.16kWh
2026-08-16 06:41:07.197454: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 414.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.38kWh, PV 0.0kWh
2026-08-16 06:41:07.461784: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 261.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.38kWh, PV 0.0kWh
2026-08-16 06:41:07.699667: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 224.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.59kWh, PV 0.0kWh
2026-08-16 06:41:07.699900: Saving plan best values to HA entities
2026-08-16 06:41:08.050103: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:41:08.073241: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:41:08.110863: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.34kWh, house 1.61kWh, export 0.0kWh, metric 224.95p, metric10 261.26p
2026-08-16 06:41:08.300268: Marginal costs baseline metric (no standing charge): 174.9645
2026-08-16 06:41:08.591853: Marginal energy costs matrix computed: min=7.84 max=32.78
2026-08-16 06:41:08.674617: Rate array import [{'start': 400, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 400, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:41:08.675456: - Your estimated bill for today is £1.35 and tomorrow is £7.32
2026-08-16 06:41:08.675581: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:41:08.675624: - The battery is currently at 51% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 06:41:08.675696: - For the next 48 hours there will be no solar generation.
2026-08-16 06:41:08.675730: - You will run out of battery in 25 hours.
2026-08-16 06:41:08.675751: - Your next charge slot will be in 4 and a quarter hours where import rates will be free (0.0p).
2026-08-16 06:41:08.675813: 
2026-08-16 06:41:08.721131: Plan calculation took 62.69 seconds
2026-08-16 06:41:08.721435: Inverter 0: Type SK Sunsynk
2026-08-16 06:41:08.721488: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:41:08.721731: Reserve min: 7%, battery_min: 7%
2026-08-16 06:41:08.721839: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:41:08.722238: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 465W, current battery voltage 51.2V, grid power -55W, load power 509W, PV Power 0W
2026-08-16 06:41:08.722475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:41:08.722597: Inverter 0 scheduled charge enable is False
2026-08-16 06:41:08.722650: Inverter 0 charge windows currently []
2026-08-16 06:41:08.722686: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:41:08.737325: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:41:08.737597: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:41:08.737845: Inverter 0 scheduled discharge enable is False
2026-08-16 06:41:08.738201: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:41:08.738348: Inverter 0 discharge windows currently []
2026-08-16 06:41:08.738573: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:41:08.738830: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:41:08.739048: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:41:08.898209: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:41:08.898612: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:41:08.898858: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:41:08.899276: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:41:08.899530: No export window planned
2026-08-16 06:41:08.899836: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:41:08.900028: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:41:08.900413: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:41:08.900781: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:41:08.901039: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:41:08.901289: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:41:08.901558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.901792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.902023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.919381: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.919624: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.919792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.919933: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.920210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.920349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.920475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.922006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.922186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.922312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.922431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:41:08.922540: Inverter 0 count register writes 0
2026-08-16 06:41:08.964785: Total inverter register writes now 826
2026-08-16 06:41:09.017804: Info: Completed run status Demand
2026-08-16 06:41:09.026959: Info: record_status Demand
2026-08-16 06:41:09.037131: Saved current settings to /config/predbat_config.json
2026-08-16 06:41:09.047937: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:41:18.260048: ML Predictor: Epoch 28/30: lr=0.00011 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-16 06:41:42.200537: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:41:42.201046: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:41:42.201213: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:41:42.201503: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:41:42.201637: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:41:42.201788: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:41:42.201957: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:41:51.866188: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 06:42:26.630371: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 06:42:26.638421: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-16 06:42:26.638594: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-16 06:42:35.680975: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0004 kWh (-0.4%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 06:42:35.691274: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-16 06:42:35.691545: ML Predictor: Curriculum final pass 5/5: full dataset (57.7 days)
2026-08-16 06:42:35.691691: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 06:42:36.493324: ML Predictor: Creating dataset with 1384 hours of training data, 48 hours validation
2026-08-16 06:42:41.913743: ML Predictor: Created 16329 training samples, 576 validation samples
2026-08-16 06:42:41.971047: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0590 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.5693 std=4.4620) import_rate(mean=26.1590 std=2.9087) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1905 std=0.5256)
2026-08-16 06:42:42.053147: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 06:42:42.068616: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 06:42:42.129617: ML Predictor: Baseline (pre-finetune) val_mae=0.0044 kWh val_bias=+0.0013 kWh
2026-08-16 06:43:16.969032: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0091 val_mae=0.0041 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 06:43:49.654156: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0095 val_mae=0.0042 kWh val_bias=-0.0011 kWh (-1.7%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 06:43:56.994624: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:43:56.995191: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:43:56.995343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:43:56.995737: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:43:56.995878: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:43:56.996250: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:43:56.996395: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:44:24.676147: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0105 val_mae=0.0041 kWh val_bias=+0.0007 kWh (+1.1%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-16 06:44:57.704015: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0112 val_mae=0.0041 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 06:45:00.294601: --------------- PredBat - update at 2026-08-16 06:45:00+01:00 with clock skew 0 minutes, minutes now 405
2026-08-16 06:45:00.295456: Saved current settings to /config/predbat_config.json
2026-08-16 06:45:01.046826: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:45:01.046973: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:45:01.080337: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:45:01.080481: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:45:01.080647: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:45:01.081345: Cars 1 charging from battery False 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-16 06:45:01.081478: Predbat mode is set to Control charge & discharge
2026-08-16 06:45:01.429673: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:45:01.430214: Using load_power data to fill gaps in load_today data
2026-08-16 06:45:02.976983: Processing 721 30-minute periods for power integration
2026-08-16 06:45:03.251684: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:45:03.254175: Car charging hold False, threshold 6.0kWh
2026-08-16 06:45:03.254407: Current data so far today: load 4.0kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:45:03.287639: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:45:03.288190: Standing charge is set to 49.98p
2026-08-16 06:45:03.454817: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:45:03.454943: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:45:03.455220: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 405.0 minutes
2026-08-16 06:45:03.455825: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 404.8 minutes
2026-08-16 06:45:03.467862: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:45:03.566536: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:45:03.636520: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:45:03.637194: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:45:03.687209: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:45:03.687442: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:45:03.688773: High export rate found rates in range 99p to -99p
2026-08-16 06:45:03.779292: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:45:03.779606: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:45:03.798475: Battery level now 8.16kWh, -1hr ago 8.64kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -4.05p, rate_forward 1.0p
2026-08-16 06:45:03.799058: 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-16 06:45:03.909793: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:45:03.910162: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:45:04.168715: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:45:04.193597: Today's load divergence 96.16%, in-day adjustment 86.73%, damping 0.95x, yesterday 82.97% today 96.35% blend 71.88%
2026-08-16 06:45:04.193815: Today's predicted so far 4.55kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.55kWh forecast extra.
2026-08-16 06:45:04.193901: Today's actual load so far 3.97kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:45:04.245047: Inverter 0: Type SK Sunsynk
2026-08-16 06:45:04.245389: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:45:04.245789: Reserve min: 7%, battery_min: 7%
2026-08-16 06:45:04.245938: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:45:04.246428: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -54W, load power 525W, PV Power 0W
2026-08-16 06:45:04.246739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:45:04.246945: Inverter 0 scheduled charge enable is False
2026-08-16 06:45:04.247003: Inverter 0 charge windows currently []
2026-08-16 06:45:04.247079: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:45:04.247385: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:45:04.247443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:45:04.247585: Inverter 0 scheduled discharge enable is False
2026-08-16 06:45:04.247869: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:45:04.247927: Inverter 0 discharge windows currently []
2026-08-16 06:45:04.248009: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:45:04.248087: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:45:04.248165: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:45:04.349994: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:45:04.350154: Plan was last updated on 2026-08-16 06:40:00+01:00 and is now 5.0 minutes old
2026-08-16 06:45:04.350485: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:45:04.350537: Best export window [  ]
2026-08-16 06:45:04.351832: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:45:04.356768: Load divergence over 8.0 hours mean 343.67W, min 244.8W, max 864.0W, std dev 89.33W, divergence 13.0%
2026-08-16 06:45:04.390185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:45:04.390357: LoadML is_calculating True
2026-08-16 06:45:04.390391: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 06:45:04.463814: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 389.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.6kWh, PV 0.0kWh
2026-08-16 06:45:04.721294: Battery has 12.75 hours left - now at 8.16kWh
2026-08-16 06:45:04.777444: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 413.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.39kWh, PV 0.0kWh
2026-08-16 06:45:04.932030: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 269.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.39kWh, PV 0.0kWh
2026-08-16 06:45:05.073352: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 235.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.6kWh, PV 0.0kWh
2026-08-16 06:45:05.073469: Saving plan best values to HA entities
2026-08-16 06:45:05.395741: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:45:05.403364: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:45:05.413258: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.78kWh, house 1.6kWh, export 0.0kWh, metric 235.37p, metric10 269.81p
2026-08-16 06:45:05.572617: Marginal costs baseline metric (no standing charge): 185.3863
2026-08-16 06:45:05.808993: Marginal energy costs matrix computed: min=5.64 max=33.03
2026-08-16 06:45:06.019936: Rate array import [{'start': 405, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 405, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:45:06.029433: - Your estimated bill for today is £1.34 and tomorrow is £7.34
2026-08-16 06:45:06.033775: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:45:06.033849: - The battery is currently at 51% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 06:45:06.033873: - For the next 48 hours there will be no solar generation.
2026-08-16 06:45:06.033893: - You will run out of battery in 25 hours.
2026-08-16 06:45:06.033910: - Your next charge slot will be in 4 and a quarter hours where import rates will be free (0.0p).
2026-08-16 06:45:06.033927: 
2026-08-16 06:45:06.122915: Plan calculation took 1.77 seconds
2026-08-16 06:45:06.127165: No high rate period found
2026-08-16 06:45:06.252605: Import threshold used for optimisation was 24.06p
2026-08-16 06:45:06.388046: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 94: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 06:45:06.418159: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:45:06.418488: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:45:06.418720: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:45:06.419118: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:45:06.419306: No export window planned
2026-08-16 06:45:06.419582: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:45:06.419754: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:45:06.420039: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:45:06.420322: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:45:06.420491: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:45:06.420644: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:45:06.420823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421002: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.421938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.422891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.423058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:45:06.423191: Inverter 0 count register writes 0
2026-08-16 06:45:06.471308: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:45:06.478804: Total inverter register writes now 826
2026-08-16 06:45:06.557977: Info: Completed run status Demand
2026-08-16 06:45:06.568348: Info: record_status Demand
2026-08-16 06:45:06.579927: Saved current settings to /config/predbat_config.json
2026-08-16 06:45:06.580228: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:45:35.967526: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0117 val_mae=0.0049 kWh val_bias=-0.0010 kWh (-1.6%) combined=0.0029 kWh ema_combined=0.0024 kWh
2026-08-16 06:45:41.777314: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:45:41.777748: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:45:41.777910: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:45:41.778227: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:45:41.778371: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:45:41.778488: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:45:41.778618: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:46:10.943833: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0107 val_mae=0.0041 kWh val_bias=+0.0013 kWh (+2.1%) combined=0.0032 kWh ema_combined=0.0027 kWh
2026-08-16 06:46:43.499414: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0109 val_mae=0.0038 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 06:47:27.268087: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0107 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-16 06:47:42.335713: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:47:42.336181: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:47:42.336354: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:47:42.336664: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:47:42.336816: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:47:42.336975: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:47:42.337133: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:48:01.284880: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0095 val_mae=0.0034 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 06:48:35.262134: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0089 val_mae=0.0038 kWh val_bias=+0.0014 kWh (+2.4%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-16 06:49:07.561603: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0082 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 06:49:07.561839: ML Predictor: Early stopping at epoch 11
2026-08-16 06:49:07.562714: ML Predictor: Restored best weights from epoch with val_mae=0.0041 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-16 06:49:07.562948: ML Predictor: Training complete, final val_mae=0.0041 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-16 06:49:17.541847: ML Predictor: AR rollout over holdout: ar_mae=0.0046 kWh ar_bias=+0.0005 kWh (+0.8%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-16 06:49:17.549845: ML Predictor: Curriculum training complete, final val_mae=0.0041 kWh
2026-08-16 06:49:17.558726: ML Component: Training successful, val_mae=0.0041 kWh
2026-08-16 06:49:17.707618: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 06:49:17.713253: ML Component: Generating predictions load data age 57.0 days, 16618 data points
2026-08-16 06:49:17.857897: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0249 max_dow {0: 0.10083437496256083, 1: 0.1061437498660758, 2: 0.11734374983347953, 3: 0.11331874963529408, 4: 0.16154374989941717, 5: 0.09819444440429409, 6: 0.10706875132601708}
2026-08-16 06:49:24.399541: ML Component: Generated 576 predictions (total 31.00 kWh over 48h)
2026-08-16 06:49:24.443045: ML Component: Prediction cycle completed
2026-08-16 06:49:24.581599: ML Component: Saved 16618 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 06:49:42.392663: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:49:42.392917: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:49:42.392991: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:49:42.393186: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:49:42.393230: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:49:42.393252: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:49:42.393270: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:50:00.507853: --------------- PredBat - update at 2026-08-16 06:50:00+01:00 with clock skew 0 minutes, minutes now 410
2026-08-16 06:50:00.508654: Saved current settings to /config/predbat_config.json
2026-08-16 06:50:00.508789: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 06:50:00.508878: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:50:00.509020: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:50:00.531081: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:50:00.531242: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:50:00.531459: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:50:00.531992: Cars 1 charging from battery False 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-16 06:50:00.532108: Predbat mode is set to Control charge & discharge
2026-08-16 06:50:00.739750: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:50:00.739904: Using load_power data to fill gaps in load_today data
2026-08-16 06:50:01.582086: Processing 721 30-minute periods for power integration
2026-08-16 06:50:01.752280: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:50:01.752409: Car charging hold False, threshold 6.0kWh
2026-08-16 06:50:01.752452: Current data so far today: load 4.12kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:50:01.765014: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:50:01.765485: Standing charge is set to 49.98p
2026-08-16 06:50:01.792219: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:50:01.792315: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:50:01.792480: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 410.0 minutes
2026-08-16 06:50:01.792792: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 409.8 minutes
2026-08-16 06:50:01.795424: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:50:01.867489: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:50:01.927055: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:50:01.927357: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:50:01.967846: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:50:01.967960: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:50:01.969022: High export rate found rates in range 99p to -99p
2026-08-16 06:50:02.043786: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:50:02.043932: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:50:02.073895: Battery level now 8.16kWh, -1hr ago 8.55kWh, at midnight 12.21kWh, battery value change in the last hour -0.39p, change today -4.05p, rate_forward 1.0p
2026-08-16 06:50:02.074313: 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-16 06:50:02.135223: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:50:02.135367: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:50:02.210814: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:50:02.231521: Today's load divergence 96.87%, in-day adjustment 86.97%, damping 0.95x, yesterday 82.97% today 97.03% blend 71.53%
2026-08-16 06:50:02.231612: Today's predicted so far 4.56kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.56kWh forecast extra.
2026-08-16 06:50:02.231638: Today's actual load so far 4.09kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:50:02.273346: Inverter 0: Type SK Sunsynk
2026-08-16 06:50:02.273469: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:50:02.273742: Reserve min: 7%, battery_min: 7%
2026-08-16 06:50:02.273847: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:50:02.274229: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 444W, current battery voltage 51.2V, grid power -54W, load power 491W, PV Power 0W
2026-08-16 06:50:02.274446: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:50:02.274590: Inverter 0 scheduled charge enable is False
2026-08-16 06:50:02.274644: Inverter 0 charge windows currently []
2026-08-16 06:50:02.274693: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:50:02.274860: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:50:02.274902: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:50:02.274942: Inverter 0 scheduled discharge enable is False
2026-08-16 06:50:02.275083: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:50:02.275119: Inverter 0 discharge windows currently []
2026-08-16 06:50:02.275164: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:50:02.275185: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:50:02.275202: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:50:02.350245: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:50:02.350354: Plan was last updated on 2026-08-16 06:40:00+01:00 and is now 10.0 minutes old
2026-08-16 06:50:02.350601: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:50:02.350643: Best export window [  ]
2026-08-16 06:50:02.351398: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:50:02.354611: Load divergence over 8.0 hours mean 342.13W, min 244.2W, max 891.6W, std dev 88.81W, divergence 12.98%
2026-08-16 06:50:02.373889: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:50:02.374053: LoadML is_calculating False
2026-08-16 06:50:02.374171: Creating pool of 12 processes to match your CPU count
2026-08-16 06:50:02.508114: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 390.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.78kWh, PV 0.0kWh
2026-08-16 06:50:02.656704: Battery has 12.67 hours left - now at 8.16kWh
2026-08-16 06:50:02.710083: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 415.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.57kWh, PV 0.0kWh
2026-08-16 06:50:02.787781: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 279.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.57kWh, PV 0.0kWh
2026-08-16 06:50:02.867716: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 246.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.78kWh, PV 0.0kWh
2026-08-16 06:50:02.867807: Saving plan best values to HA entities
2026-08-16 06:50:03.083457: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:50:03.089314: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:50:03.095313: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.24kWh, house 1.6kWh, export 0.0kWh, metric 246.72p, metric10 279.53p
2026-08-16 06:50:03.173394: Marginal costs baseline metric (no standing charge): 196.7328
2026-08-16 06:50:03.437683: Marginal energy costs matrix computed: min=3.71 max=33.28
2026-08-16 06:50:03.542323: Rate array import [{'start': 410, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 410, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:50:03.543025: - Your estimated bill for today is £1.34 and tomorrow is £7.34
2026-08-16 06:50:03.543098: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:50:03.543148: - The battery is currently at 51% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 06:50:03.543249: - For the next 48 hours there will be no solar generation.
2026-08-16 06:50:03.543294: - You will run out of battery in 25 hours.
2026-08-16 06:50:03.543339: - Your next charge slot will be in 4 and a quarter hours where import rates will be free (0.0p).
2026-08-16 06:50:03.543375: 
2026-08-16 06:50:03.613696: Plan calculation took 1.26 seconds
2026-08-16 06:50:03.618917: No high rate period found
2026-08-16 06:50:03.678414: Import threshold used for optimisation was 24.06p
2026-08-16 06:50:03.730170: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 94: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 06:50:03.738122: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 06:50:03.738318: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:50:03.738468: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:50:03.738897: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:50:03.739037: No export window planned
2026-08-16 06:50:03.739228: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:50:03.739273: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:50:03.739448: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:50:03.739664: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:50:03.739736: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:50:03.739816: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:50:03.739915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.739979: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740059: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:03.740513: Inverter 0 count register writes 0
2026-08-16 06:50:03.755361: 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-16 06:50:03.755523: Recompute is saving previous plan...
2026-08-16 06:50:03.758098: Best charge window [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0% ]
2026-08-16 06:50:03.758191: Best export window [  ]
2026-08-16 06:50:03.758845: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:50:03.761294: Load divergence over 8.0 hours mean 342.13W, min 244.2W, max 891.6W, std dev 88.81W, divergence 12.98%
2026-08-16 06:50:03.775320: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:50:03.775410: LoadML is_calculating False
2026-08-16 06:50:03.775466: Creating pool of 12 processes to match your CPU count
2026-08-16 06:50:03.851714: 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(0.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-16 06:50:03.853843: Optimise levels pass started at 2026-08-16 06:50:03
2026-08-16 06:50:03.853910: Optimise all windows, total charge 94 export 1
2026-08-16 06:50:04.475265: >> Region optimisation pass width 960 gives best_metric 510.69p, best_cost 522.74p, best_cycle 38.36kWh, best_import 26.08kWh
2026-08-16 06:50:04.836522: >> Region optimisation pass width 480 gives best_metric 510.69p, best_cost 522.74p, best_cycle 38.36kWh, best_import 26.08kWh
2026-08-16 06:50:05.404611: >> Region optimisation pass width 240 gives best_metric 510.69p, best_cost 522.74p, best_cycle 38.36kWh, best_import 26.08kWh
2026-08-16 06:50:06.739959: >> Region optimisation pass width 120 gives best_metric 510.25p, best_cost 522.4p, best_cycle 40.17kWh, best_import 26.21kWh
2026-08-16 06:50:06.741445: Calculated end_record as 08-17 11:00:00 based on best_price 22.33p, next_charge_start 08-16 11:00:00, max_windows 56
2026-08-16 06:50:06.741660: Optimise levels pass ended at 2026-08-16 06:50:06, duration 2.9 seconds tried 337 combinations
2026-08-16 06:50:06.741815: Set best_price_charge_level 24.0p, best_price_export_level 0p, best_price_charge 22.33p, best_cost_export 0p, best_metric 510.25p, best_keep 0kWh, best_cycle 40.17kWh, best_carbon 0kg, best_import 26.21kWh
2026-08-16 06:50:06.763237: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.33p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 12.25, 12.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, 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-16 06:50:11.623631: Tweak plan optimisation started metric 158.16p, cost 173.49p
2026-08-16 06:50:12.008555: Tweak optimisation finished metric 158.16p, cost 173.49p, metric_keep 0kWh, cycle 20.8kWh, carbon 0kg, import 10.96kWh, changed 8 window(s)
2026-08-16 06:50:12.030771: Swap charge optimisation started metric 158.16p, cost 173.49p, min_improvement_swap 0.1p
2026-08-16 06:50:17.051413: Swap charge optimisation finished metric 158.16p, cost 173.49p
2026-08-16 06:50:17.176997: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 152.89p -> 152.89p, plan now metric 158.28p, cost 173.49p, cycle 20.8kWh, import 10.96kWh
2026-08-16 06:50:17.187260: Raw charge windows [ 16-08 06:30:00 - 16-08 07:00:00 @ 26.1p 0%, 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 75%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 06:50:17.187840: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:50:17.188074: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:50:17.188279: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 06:50:17.220062: Previous plan best metric is 158.12 (cost 173.31) and new plan best metric is 158.16 (cost 173.49)
2026-08-16 06:50:17.220333: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 06:50:17.220560: Plan valid is now true after recompute was False
2026-08-16 06:50:17.247161: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 387.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.65kWh, PV 0.0kWh
2026-08-16 06:50:17.368545: Battery has 12.67 hours left - now at 8.16kWh
2026-08-16 06:50:17.406719: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 411.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.43kWh, PV 0.0kWh
2026-08-16 06:50:17.483017: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 259.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.43kWh, PV 0.0kWh
2026-08-16 06:50:17.560736: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 223.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.65kWh, PV 0.0kWh
2026-08-16 06:50:17.560818: Saving plan best values to HA entities
2026-08-16 06:50:17.713384: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:50:17.718843: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 06:50:17.724412: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.27kWh, house 1.6kWh, export 0.0kWh, metric 223.29p, metric10 259.32p
2026-08-16 06:50:17.792910: Marginal costs baseline metric (no standing charge): 173.3113
2026-08-16 06:50:18.039977: Marginal energy costs matrix computed: min=3.71 max=33.28
2026-08-16 06:50:18.116234: Rate array import [{'start': 410, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 410, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:50:18.116866: - Your estimated bill for today is £1.34 and tomorrow is £7.34
2026-08-16 06:50:18.116918: - Import rates are expensive (24.1p - 26.1p) for the next 4 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:50:18.116938: - The battery is currently at 51% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 06:50:18.117010: - For the next 48 hours there will be no solar generation.
2026-08-16 06:50:18.117052: - You will run out of battery in 25 hours.
2026-08-16 06:50:18.117083: - Your next charge slot will be in 4 and a quarter hours where import rates will be free (0.0p).
2026-08-16 06:50:18.117116: 
2026-08-16 06:50:18.171105: Plan calculation took 14.42 seconds
2026-08-16 06:50:18.171477: Inverter 0: Type SK Sunsynk
2026-08-16 06:50:18.171525: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:50:18.171760: Reserve min: 7%, battery_min: 7%
2026-08-16 06:50:18.171843: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:50:18.172215: Inverter 0 SoC: 8.02kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 437W, current battery voltage 51.2V, grid power -54W, load power 485W, PV Power 0W
2026-08-16 06:50:18.172455: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:50:18.172566: Inverter 0 scheduled charge enable is False
2026-08-16 06:50:18.172630: Inverter 0 charge windows currently []
2026-08-16 06:50:18.172662: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:50:18.172781: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:50:18.172818: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:50:18.172854: Inverter 0 scheduled discharge enable is False
2026-08-16 06:50:18.173033: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:50:18.173084: Inverter 0 discharge windows currently []
2026-08-16 06:50:18.173108: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:50:18.173131: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:50:18.173165: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:50:18.224353: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 06:50:18.224483: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:50:18.224546: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:50:18.224724: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:50:18.224798: No export window planned
2026-08-16 06:50:18.224890: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:50:18.224926: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:50:18.225201: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:50:18.225358: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:50:18.225402: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:50:18.225453: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:50:18.225544: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225583: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225607: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225652: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:50:18.225933: Inverter 0 count register writes 0
2026-08-16 06:50:18.246565: Total inverter register writes now 826
2026-08-16 06:50:18.281586: Info: Completed run status Demand
2026-08-16 06:50:18.287497: Info: record_status Demand
2026-08-16 06:50:18.294160: Saved current settings to /config/predbat_config.json
2026-08-16 06:50:18.294508: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:50:57.410767: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:50:57.411010: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:50:57.411081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:50:57.411266: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:50:57.411326: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:50:57.411347: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:50:57.411365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:53:11.646815: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:53:11.647082: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:53:11.647118: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:53:11.647297: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:53:11.647357: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:53:11.647379: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:53:11.647397: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:55:00.851607: --------------- PredBat - update at 2026-08-16 06:55:00+01:00 with clock skew 0 minutes, minutes now 415
2026-08-16 06:55:00.852420: Saved current settings to /config/predbat_config.json
2026-08-16 06:55:00.852566: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 06:55:00.852694: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 06:55:00.852803: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 06:55:00.872344: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 06:55:00.872476: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 06:55:00.872669: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 06:55:00.873377: Cars 1 charging from battery False 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-16 06:55:00.873518: Predbat mode is set to Control charge & discharge
2026-08-16 06:55:01.038764: Found 21602 load_today datapoints going back 28 days
2026-08-16 06:55:01.038902: Using load_power data to fill gaps in load_today data
2026-08-16 06:55:01.755559: Processing 721 30-minute periods for power integration
2026-08-16 06:55:01.901094: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 06:55:01.901286: Car charging hold False, threshold 6.0kWh
2026-08-16 06:55:01.901326: Current data so far today: load 4.15kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 06:55:01.914005: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 06:55:01.914483: Standing charge is set to 49.98p
2026-08-16 06:55:01.937272: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 06:55:01.937360: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 06:55:01.937530: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 415.0 minutes
2026-08-16 06:55:01.937843: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 414.8 minutes
2026-08-16 06:55:01.940300: Loaded 47 datapoints of futurerate analysis
2026-08-16 06:55:02.010302: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 06:55:02.063479: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 06:55:02.064002: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 06:55:02.099535: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 06:55:02.099645: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 06:55:02.100784: High export rate found rates in range 99p to -99p
2026-08-16 06:55:02.170365: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 06:55:02.170494: Car 0 charging is not planned as it is not plugged in
2026-08-16 06:55:02.181954: Battery level now 8.16kWh, -1hr ago 8.48kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.05p, rate_forward 1.0p
2026-08-16 06:55:02.182294: 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-16 06:55:02.232430: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 06:55:02.232597: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 06:55:02.298757: Using weighted-bucket historical load forecast over 14 days
2026-08-16 06:55:02.321059: Today's load divergence 96.93%, in-day adjustment 87.04%, damping 0.95x, yesterday 82.97% today 97.08% blend 71.18%
2026-08-16 06:55:02.321188: Today's predicted so far 4.58kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.58kWh forecast extra.
2026-08-16 06:55:02.321220: Today's actual load so far 4.12kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 06:55:02.356364: Inverter 0: Type SK Sunsynk
2026-08-16 06:55:02.356445: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 06:55:02.356607: Reserve min: 7%, battery_min: 7%
2026-08-16 06:55:02.356665: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 06:55:02.356907: Inverter 0 SoC: 8.02kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -56W, load power 523W, PV Power 0W
2026-08-16 06:55:02.357121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:55:02.357247: Inverter 0 scheduled charge enable is False
2026-08-16 06:55:02.357274: Inverter 0 charge windows currently []
2026-08-16 06:55:02.357296: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 06:55:02.357387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:55:02.357419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:55:02.357449: Inverter 0 scheduled discharge enable is False
2026-08-16 06:55:02.357552: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:55:02.357576: Inverter 0 discharge windows currently []
2026-08-16 06:55:02.357593: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:55:02.357614: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:55:02.357639: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:55:02.410317: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 06:55:02.410459: Plan was last updated on 2026-08-16 06:50:00+01:00 and is now 5.0 minutes old
2026-08-16 06:55:02.410756: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 06:55:02.410833: Best export window [  ]
2026-08-16 06:55:02.411561: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 06:55:02.414186: Load divergence over 8.0 hours mean 340.61W, min 240.6W, max 912.0W, std dev 89.44W, divergence 13.13%
2026-08-16 06:55:02.429495: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 06:55:02.429584: LoadML is_calculating False
2026-08-16 06:55:02.429671: Creating pool of 12 processes to match your CPU count
2026-08-16 06:55:02.539637: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 392.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.71kWh, PV 0.0kWh
2026-08-16 06:55:02.665346: Battery has 12.42 hours left - now at 8.02kWh
2026-08-16 06:55:02.703889: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 417.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.49kWh, PV 0.0kWh
2026-08-16 06:55:02.777580: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 271.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.49kWh, PV 0.0kWh
2026-08-16 06:55:02.854500: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 237.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 20.71kWh, PV 0.0kWh
2026-08-16 06:55:02.854587: Saving plan best values to HA entities
2026-08-16 06:55:03.051112: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 06:55:03.057736: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 06:55:03.064292: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.86kWh, house 1.6kWh, export 0.0kWh, metric 237.35p, metric10 271.96p
2026-08-16 06:55:03.136296: Marginal costs baseline metric (no standing charge): 187.3675
2026-08-16 06:55:03.361343: Marginal energy costs matrix computed: min=1.78 max=33.51
2026-08-16 06:55:03.435125: Rate array import [{'start': 415, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 26.1p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 415, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 06:55:03.435816: - Your estimated bill for today is £1.36 and tomorrow is £7.35
2026-08-16 06:55:03.435862: - Import rates are expensive (24.1p - 26.1p) for the next 4 hours and then free (0.0p) for the next 1 hour.
2026-08-16 06:55:03.435885: - The battery is currently at 50% and is in eco mode for the next 4 hours.
2026-08-16 06:55:03.435903: - For the next 48 hours there will be no solar generation.
2026-08-16 06:55:03.435919: - You will run out of battery in 25 hours.
2026-08-16 06:55:03.435936: - Your next charge slot will be in 4 hours where import rates will be free (0.0p).
2026-08-16 06:55:03.435954: 
2026-08-16 06:55:03.491927: Plan calculation took 1.08 seconds
2026-08-16 06:55:03.495628: No high rate period found
2026-08-16 06:55:03.572773: Import threshold used for optimisation was 23.43p
2026-08-16 06:55:03.627427: Low import rate windows [0: 08-16 06:30:00 - 08-16 07:00:00 @ 26.1, 1: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 2: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 3: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 4: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 5: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 6: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 7: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 8: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 9: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 10: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 11: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 12: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 13: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 14: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 15: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 16: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 17: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 18: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 19: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 20: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 21: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 22: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 23: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 24: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 25: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 26: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 27: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 28: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 29: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 30: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 31: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 32: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 33: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 34: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 35: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 36: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 37: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 38: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 39: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 40: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 41: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 42: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 43: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 44: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 45: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 46: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 47: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 48: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 49: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 50: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 51: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 52: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 53: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 54: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 55: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 56: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 57: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 58: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 59: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 60: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 61: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 62: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 63: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 64: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 65: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 66: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 67: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 68: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 69: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 70: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 71: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 72: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 73: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 74: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 75: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 76: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 77: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 78: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 79: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 80: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 81: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 82: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 83: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 84: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 85: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 86: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 87: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 88: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 89: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 90: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 91: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 92: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 93: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 94: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 06:55:03.636127: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 06:55:03.636276: Inverter 0 disabled charge window while waiting for schedule (now 08-16 06:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 06:55:03.636384: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:55:03.636612: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:55:03.636695: No export window planned
2026-08-16 06:55:03.636795: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 06:55:03.636825: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 06:55:03.636937: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 06:55:03.637160: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 06:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 06:55:03.637231: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 06:55:03.637289: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 06:55:03.637379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637481: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637503: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637523: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 06:55:03.637754: Inverter 0 count register writes 0
2026-08-16 06:55:03.653839: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 06:55:03.658648: Total inverter register writes now 826
2026-08-16 06:55:03.688047: Info: Completed run status Demand
2026-08-16 06:55:03.694335: Info: record_status Demand
2026-08-16 06:55:03.700675: Saved current settings to /config/predbat_config.json
2026-08-16 06:55:03.700989: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 06:55:41.817409: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:55:41.817768: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:55:41.817897: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:55:41.818203: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:55:41.818274: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:55:41.818303: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:55:41.818322: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:57:42.048281: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:57:42.048493: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:57:42.048522: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:57:42.048629: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:57:42.048662: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:57:42.048679: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:57:42.048693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:59:42.261426: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 06:59:42.261671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 06:59:42.261712: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 06:59:42.261842: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 06:59:42.261882: Note: Inverter does not support discharge freeze - disabled
2026-08-16 06:59:42.261902: Note: Inverter does not support charge freeze - disabled
2026-08-16 06:59:42.261920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 06:59:46.541109: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 06:59:46.712037: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 07:00:00.359475: --------------- PredBat - update at 2026-08-16 07:00:00+01:00 with clock skew 0 minutes, minutes now 420
2026-08-16 07:00:00.360318: Saved current settings to /config/predbat_config.json
2026-08-16 07:00:00.360453: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 07:00:00.360579: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:00:00.360740: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:00:00.381625: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:00:00.381763: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:00:00.381933: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:00:00.382512: Cars 1 charging from battery False 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-16 07:00:00.382634: Predbat mode is set to Control charge & discharge
2026-08-16 07:00:00.571853: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:00:00.572013: Using load_power data to fill gaps in load_today data
2026-08-16 07:00:01.395631: Processing 721 30-minute periods for power integration
2026-08-16 07:00:01.598079: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:00:01.598240: Car charging hold False, threshold 6.0kWh
2026-08-16 07:00:01.598291: Current data so far today: load 4.25kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:00:01.613754: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:00:01.615060: Standing charge is set to 49.98p
2026-08-16 07:00:01.650934: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:00:01.651085: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:00:01.651427: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 419.9 minutes
2026-08-16 07:00:01.652133: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 419.8 minutes
2026-08-16 07:00:01.658241: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:00:01.768317: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:00:01.837434: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:00:01.837948: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:00:01.876393: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:00:01.876578: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:00:01.877779: High export rate found rates in range 99p to -99p
2026-08-16 07:00:01.954523: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:00:01.955659: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:00:01.983989: Battery level now 8.02kWh, -1hr ago 8.48kWh, at midnight 12.21kWh, battery value change in the last hour -0.46p, change today -4.18p, rate_forward 1.0p
2026-08-16 07:00:01.984410: 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-16 07:00:02.104391: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:00:02.104591: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:00:02.198482: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:00:02.221166: Today's load divergence 97.1%, in-day adjustment 87.13%, damping 0.95x, yesterday 82.97% today 97.24% blend 70.83%
2026-08-16 07:00:02.221647: Today's predicted so far 4.7kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.7kWh forecast extra.
2026-08-16 07:00:02.223443: Today's actual load so far 4.26kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:00:02.292721: Inverter 0: Type SK Sunsynk
2026-08-16 07:00:02.293412: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:00:02.293721: Reserve min: 7%, battery_min: 7%
2026-08-16 07:00:02.293829: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:00:02.294350: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 435W, current battery voltage 51.2V, grid power -55W, load power 483W, PV Power 0W
2026-08-16 07:00:02.294794: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:00:02.294954: Inverter 0 scheduled charge enable is False
2026-08-16 07:00:02.295291: Inverter 0 charge windows currently []
2026-08-16 07:00:02.295371: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:00:02.295575: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:00:02.295631: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:00:02.295693: Inverter 0 scheduled discharge enable is False
2026-08-16 07:00:02.295862: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:00:02.295904: Inverter 0 discharge windows currently []
2026-08-16 07:00:02.295929: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:00:02.295952: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:00:02.295971: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:00:02.383647: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:00:02.383763: Plan was last updated on 2026-08-16 06:50:00+01:00 and is now 10.0 minutes old
2026-08-16 07:00:02.384023: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:00:02.384068: Best export window [  ]
2026-08-16 07:00:02.384890: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:00:02.388062: Load divergence over 8.0 hours mean 340.66W, min 223.8W, max 1097.4W, std dev 98.52W, divergence 14.46%
2026-08-16 07:00:02.405681: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:00:02.405831: LoadML is_calculating False
2026-08-16 07:00:02.405920: Creating pool of 12 processes to match your CPU count
2026-08-16 07:00:02.523564: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 394.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.86kWh, PV 0.0kWh
2026-08-16 07:00:02.688813: Battery has 12.33 hours left - now at 8.0kWh
2026-08-16 07:00:02.739623: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 419.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.65kWh, PV 0.0kWh
2026-08-16 07:00:02.830931: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 282.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.65kWh, PV 0.0kWh
2026-08-16 07:00:02.929440: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 249.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.86kWh, PV 0.0kWh
2026-08-16 07:00:02.929538: Saving plan best values to HA entities
2026-08-16 07:00:03.129957: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:00:03.137082: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:00:03.143266: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.32kWh, house 1.62kWh, export 0.0kWh, metric 249.2p, metric10 282.18p
2026-08-16 07:00:03.209892: Marginal costs baseline metric (no standing charge): 199.2156
2026-08-16 07:00:03.439510: Marginal energy costs matrix computed: min=0.0 max=33.76
2026-08-16 07:00:03.507776: Rate array import [{'start': 420, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 420, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:00:03.508336: - Your estimated bill for today is £1.36 and tomorrow is £7.33
2026-08-16 07:00:03.508376: - Import rates are expensive (24.1p - 25.5p) for the next 4 hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:00:03.508395: - The battery is currently at 50% and is in eco mode for the next 4 hours.
2026-08-16 07:00:03.508410: - For the next 48 hours there will be no solar generation.
2026-08-16 07:00:03.508423: - You will run out of battery in 24 hours.
2026-08-16 07:00:03.508437: - Your next charge slot will be in 4 hours where import rates will be free (0.0p).
2026-08-16 07:00:03.508452: 
2026-08-16 07:00:03.564228: Plan calculation took 1.18 seconds
2026-08-16 07:00:03.567629: No high rate period found
2026-08-16 07:00:03.654691: Import threshold used for optimisation was 23.43p
2026-08-16 07:00:03.712931: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1]
2026-08-16 07:00:03.724612: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:00:03.724808: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:00:03.724997: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:00:03.725374: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:00:03.725488: No export window planned
2026-08-16 07:00:03.725642: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:00:03.725688: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:00:03.725853: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:00:03.726073: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:00:03.726158: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:00:03.726277: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:00:03.726461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726566: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726625: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.726962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.727024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.727074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.727119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.727162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:03.727199: Inverter 0 count register writes 0
2026-08-16 07:00:03.752758: 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-16 07:00:03.753090: Recompute is saving previous plan...
2026-08-16 07:00:03.757996: Best charge window [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0% ]
2026-08-16 07:00:03.758125: Best export window [  ]
2026-08-16 07:00:03.759051: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:00:03.762979: Load divergence over 8.0 hours mean 340.66W, min 223.8W, max 1097.4W, std dev 98.52W, divergence 14.46%
2026-08-16 07:00:03.785701: Calculating data from yesterday for savings calculation
2026-08-16 07:00:03.798143: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 07:00:03.844665: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 07:00:03.858857: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 07:00:03.878586: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 07:00:03.915259: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 07:00:03.984886: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 07:00:03.985121: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 07:00:03.998745: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:00:03.998902: LoadML is_calculating False
2026-08-16 07:00:03.998992: Creating pool of 12 processes to match your CPU count
2026-08-16 07:00:04.099493: 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(0.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-16 07:00:04.101845: Optimise levels pass started at 2026-08-16 07:00:04
2026-08-16 07:00:04.101921: Optimise all windows, total charge 94 export 1
2026-08-16 07:00:05.595867: >> Region optimisation pass width 960 gives best_metric 514.48p, best_cost 526.8p, best_cycle 44.85kWh, best_import 26.75kWh
2026-08-16 07:00:06.291631: >> Region optimisation pass width 480 gives best_metric 514.48p, best_cost 526.8p, best_cycle 44.85kWh, best_import 26.75kWh
2026-08-16 07:00:06.817009: >> Region optimisation pass width 240 gives best_metric 514.48p, best_cost 526.8p, best_cycle 44.85kWh, best_import 26.75kWh
2026-08-16 07:00:08.077238: >> Region optimisation pass width 120 gives best_metric 514.48p, best_cost 526.8p, best_cycle 44.85kWh, best_import 26.75kWh
2026-08-16 07:00:08.077626: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 55
2026-08-16 07:00:08.077718: Optimise levels pass ended at 2026-08-16 07:00:08, duration 4.0 seconds tried 337 combinations
2026-08-16 07:00:08.077793: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 514.48p, best_keep 0kWh, best_cycle 44.85kWh, best_carbon 0kg, best_import 26.75kWh
2026-08-16 07:00:08.095420: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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-16 07:00:13.491330: Tweak plan optimisation started metric 160.58p, cost 175.9p
2026-08-16 07:00:13.855436: Tweak optimisation finished metric 160.58p, cost 175.9p, metric_keep 0kWh, cycle 19.95kWh, carbon 0kg, import 11.01kWh, changed 8 window(s)
2026-08-16 07:00:13.876570: Swap charge optimisation started metric 160.58p, cost 175.9p, min_improvement_swap 0.1p
2026-08-16 07:00:19.278934: Swap charge optimisation finished metric 160.58p, cost 175.9p
2026-08-16 07:00:19.408720: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 155.3p -> 155.3p, plan now metric 160.71p, cost 175.9p, cycle 19.95kWh, import 11.01kWh
2026-08-16 07:00:19.421149: Raw charge windows [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100% ] reserve 1.12
2026-08-16 07:00:19.421856: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 07:00:19.422146: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 07:00:19.422398: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:00:00 @ 26.08p 100% ] reserve 1.12
2026-08-16 07:00:19.462625: Previous plan best metric is 160.55 (cost 175.74) and new plan best metric is 160.58 (cost 175.9)
2026-08-16 07:00:19.462903: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:00:19.463108: Plan valid is now true after recompute was False
2026-08-16 07:00:19.493143: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 390.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.72kWh, PV 0.0kWh
2026-08-16 07:00:19.619190: Battery has 12.33 hours left - now at 8.0kWh
2026-08-16 07:00:19.663319: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 415.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.51kWh, PV 0.0kWh
2026-08-16 07:00:19.746515: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 261.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.51kWh, PV 0.0kWh
2026-08-16 07:00:19.822372: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 225.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.72kWh, PV 0.0kWh
2026-08-16 07:00:19.822464: Saving plan best values to HA entities
2026-08-16 07:00:19.990548: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:00:19.998000: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:00:20.005375: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.36kWh, house 1.62kWh, export 0.0kWh, metric 225.73p, metric10 261.92p
2026-08-16 07:00:20.091784: Marginal costs baseline metric (no standing charge): 175.7432
2026-08-16 07:00:20.370021: Marginal energy costs matrix computed: min=0.0 max=33.76
2026-08-16 07:00:20.442955: Rate array import [{'start': 420, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 420, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:00:20.443662: - Your estimated bill for today is £1.36 and tomorrow is £7.33
2026-08-16 07:00:20.443710: - Import rates are expensive (24.1p - 25.5p) for the next 4 hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:00:20.443733: - The battery is currently at 50% and is in eco mode for the next 4 hours.
2026-08-16 07:00:20.443751: - For the next 48 hours there will be no solar generation.
2026-08-16 07:00:20.443768: - You will run out of battery in 24 hours.
2026-08-16 07:00:20.443786: - Your next charge slot will be in 4 hours where import rates will be free (0.0p).
2026-08-16 07:00:20.443803: 
2026-08-16 07:00:20.502709: Plan calculation took 16.75 seconds
2026-08-16 07:00:20.503123: Inverter 0: Type SK Sunsynk
2026-08-16 07:00:20.503174: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:00:20.503424: Reserve min: 7%, battery_min: 7%
2026-08-16 07:00:20.503511: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:00:20.503854: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 293W, current battery voltage 51.2V, grid power -55W, load power 339W, PV Power 0W
2026-08-16 07:00:20.504106: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:00:20.504238: Inverter 0 scheduled charge enable is False
2026-08-16 07:00:20.504282: Inverter 0 charge windows currently []
2026-08-16 07:00:20.504313: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:00:20.504426: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:00:20.504463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:00:20.504500: Inverter 0 scheduled discharge enable is False
2026-08-16 07:00:20.504634: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:00:20.504673: Inverter 0 discharge windows currently []
2026-08-16 07:00:20.504695: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:00:20.504718: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:00:20.504736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:00:20.579046: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:00:20.579207: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:00:20.579314: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:00:20.579511: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:00:20.579595: No export window planned
2026-08-16 07:00:20.579699: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:00:20.579735: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:00:20.579870: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:00:20.580036: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:00:20.580091: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:00:20.580143: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:00:20.580252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:00:20.580690: Inverter 0 count register writes 0
2026-08-16 07:00:20.610364: Total inverter register writes now 826
2026-08-16 07:00:20.651870: Info: Completed run status Demand
2026-08-16 07:00:20.658193: Info: record_status Demand
2026-08-16 07:00:20.665254: Saved current settings to /config/predbat_config.json
2026-08-16 07:00:20.665573: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:00:56.777416: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:00:56.777653: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:00:56.777697: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:00:56.777829: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:00:56.777867: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:00:56.777888: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:00:56.777905: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:02:57.007019: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:02:57.007294: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:02:57.007339: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:02:57.007516: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:02:57.007583: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:02:57.007604: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:02:57.007622: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:04:57.247461: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:04:57.247695: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:04:57.247731: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:04:57.247904: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:04:57.247943: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:04:57.247964: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:04:57.247982: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:05:00.328449: --------------- PredBat - update at 2026-08-16 07:05:00+01:00 with clock skew 0 minutes, minutes now 425
2026-08-16 07:05:00.329313: Saved current settings to /config/predbat_config.json
2026-08-16 07:05:00.329486: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 07:05:00.329604: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:05:00.329737: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:05:00.349323: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:05:00.349469: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:05:00.349690: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:05:00.350298: Cars 1 charging from battery False 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-16 07:05:00.350438: Predbat mode is set to Control charge & discharge
2026-08-16 07:05:00.557919: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:05:00.558075: Using load_power data to fill gaps in load_today data
2026-08-16 07:05:01.316528: Processing 721 30-minute periods for power integration
2026-08-16 07:05:01.549016: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:05:01.549164: Car charging hold False, threshold 6.0kWh
2026-08-16 07:05:01.549213: Current data so far today: load 4.3kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:05:01.563885: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:05:01.564300: Standing charge is set to 49.98p
2026-08-16 07:05:01.591785: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:05:01.591896: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:05:01.592106: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 424.9 minutes
2026-08-16 07:05:01.592559: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 424.8 minutes
2026-08-16 07:05:01.595513: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:05:01.684874: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:05:01.747725: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:05:01.748118: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:05:01.792011: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:05:01.792153: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:05:01.793943: High export rate found rates in range 99p to -99p
2026-08-16 07:05:01.881590: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:05:01.881741: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:05:01.895775: Battery level now 8.0kWh, -1hr ago 8.48kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -4.21p, rate_forward 1.0p
2026-08-16 07:05:01.896183: 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-16 07:05:01.959798: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:05:01.959925: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:05:02.042188: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:05:02.072378: Today's load divergence 97.29%, in-day adjustment 87.24%, damping 0.95x, yesterday 82.97% today 97.42% blend 70.49%
2026-08-16 07:05:02.072492: Today's predicted so far 4.79kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.79kWh forecast extra.
2026-08-16 07:05:02.072524: Today's actual load so far 4.38kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:05:02.116933: Inverter 0: Type SK Sunsynk
2026-08-16 07:05:02.117055: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:05:02.117258: Reserve min: 7%, battery_min: 7%
2026-08-16 07:05:02.117333: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:05:02.117597: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 325W, current battery voltage 51.2V, grid power -55W, load power 375W, PV Power 0W
2026-08-16 07:05:02.117754: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:05:02.117846: Inverter 0 scheduled charge enable is False
2026-08-16 07:05:02.117875: Inverter 0 charge windows currently []
2026-08-16 07:05:02.117901: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:05:02.118003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:05:02.118039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:05:02.118075: Inverter 0 scheduled discharge enable is False
2026-08-16 07:05:02.118196: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:05:02.118252: Inverter 0 discharge windows currently []
2026-08-16 07:05:02.118276: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:05:02.118295: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:05:02.118312: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:05:02.182470: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:05:02.182613: Plan was last updated on 2026-08-16 07:00:00+01:00 and is now 5.0 minutes old
2026-08-16 07:05:02.182861: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:05:02.182904: Best export window [  ]
2026-08-16 07:05:02.183748: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:05:02.186984: Load divergence over 8.0 hours mean 340.66W, min 213.6W, max 1026.0W, std dev 95.47W, divergence 14.01%
2026-08-16 07:05:02.206181: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:05:02.206327: LoadML is_calculating False
2026-08-16 07:05:02.206413: Creating pool of 12 processes to match your CPU count
2026-08-16 07:05:02.335413: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 392.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.83kWh, PV 0.0kWh
2026-08-16 07:05:02.479970: Battery has 12.33 hours left - now at 8.0kWh
2026-08-16 07:05:02.535382: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 417.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:05:02.620476: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 271.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:05:02.715795: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 237.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.83kWh, PV 0.0kWh
2026-08-16 07:05:02.715897: Saving plan best values to HA entities
2026-08-16 07:05:02.953190: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:05:02.961187: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:05:02.969414: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.82kWh, house 1.63kWh, export 0.0kWh, metric 237.14p, metric10 271.69p
2026-08-16 07:05:03.086946: Marginal costs baseline metric (no standing charge): 187.1545
2026-08-16 07:05:03.385943: Marginal energy costs matrix computed: min=1.86 max=33.86
2026-08-16 07:05:03.483951: Rate array import [{'start': 425, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 425, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:05:03.484678: - Your estimated bill for today is £1.35 and tomorrow is £7.32
2026-08-16 07:05:03.484733: - Import rates are expensive (24.1p - 25.5p) for the next 3  hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:05:03.484754: - The battery is currently at 50% and is in eco mode for the next 3  hours.
2026-08-16 07:05:03.484769: - For the next 48 hours there will be no solar generation.
2026-08-16 07:05:03.484783: - You will run out of battery in 24 hours.
2026-08-16 07:05:03.484797: - Your next charge slot will be in 3  hours where import rates will be free (0.0p).
2026-08-16 07:05:03.484811: 
2026-08-16 07:05:03.540453: Plan calculation took 1.36 seconds
2026-08-16 07:05:03.543278: No high rate period found
2026-08-16 07:05:03.613701: Import threshold used for optimisation was 24.06p
2026-08-16 07:05:03.719925: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 94: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:05:03.731576: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:05:03.731740: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:05:03.731865: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:05:03.732140: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:05:03.732262: No export window planned
2026-08-16 07:05:03.732387: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:05:03.732425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:05:03.732568: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:05:03.732752: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:05:03.732838: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:05:03.732905: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:05:03.733071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733168: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733302: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:05:03.733568: Inverter 0 count register writes 0
2026-08-16 07:05:03.758979: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:05:03.765263: Total inverter register writes now 826
2026-08-16 07:05:03.808191: Info: Completed run status Demand
2026-08-16 07:05:03.814921: Info: record_status Demand
2026-08-16 07:05:03.823357: Saved current settings to /config/predbat_config.json
2026-08-16 07:05:03.823782: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:05:41.946428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:05:41.946700: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:05:41.946777: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:05:41.946973: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:05:41.947009: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:05:41.947054: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:05:41.947074: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:06:03.646880: Info: HAHistory: Pruning history data started.
2026-08-16 07:06:03.650584: Info: HAHistory: Pruning history data completed.
2026-08-16 07:06:25.514077: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 07:06:26.553534: Processing 1297 30-minute periods for power integration
2026-08-16 07:06:26.661635: ML Component: Car charging hold False, car energy reported load False
2026-08-16 07:06:26.759848: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:06:26.857172: ML Temperature data points: 48536
2026-08-16 07:06:27.122112: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 07:06:27.166260: ML Component: Data fetch completed, load data age 57.0 days, 16637 data points
2026-08-16 07:06:27.166402: ML Component: No training needed, model age is 0.26 hours
2026-08-16 07:06:27.166482: ML Component: Generating predictions load data age 57.0 days, 16637 data points
2026-08-16 07:06:27.306394: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0306 max_dow {0: 0.09864374996256083, 1: 0.10396562554407864, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.0976194444042941, 6: 0.10666250073947013}
2026-08-16 07:06:27.805484: ML Component: Generated 576 predictions (total 31.14 kWh over 48h)
2026-08-16 07:06:27.839369: ML Component: Prediction cycle completed
2026-08-16 07:06:27.971363: ML Component: Saved 16637 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 07:07:42.194925: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:07:42.195189: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:07:42.195226: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:07:42.195405: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:07:42.195465: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:07:42.195486: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:07:42.195503: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:09:42.418051: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:09:42.418334: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:09:42.418384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:09:42.418560: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:09:42.418605: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:09:42.418626: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:09:42.418643: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:10:00.510015: --------------- PredBat - update at 2026-08-16 07:10:00+01:00 with clock skew 0 minutes, minutes now 430
2026-08-16 07:10:00.510819: Saved current settings to /config/predbat_config.json
2026-08-16 07:10:00.510940: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 07:10:00.511077: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:10:00.511167: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:10:00.530570: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:10:00.530698: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:10:00.530865: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:10:00.531493: Cars 1 charging from battery False 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-16 07:10:00.531632: Predbat mode is set to Control charge & discharge
2026-08-16 07:10:00.691403: Found 21602 load_today datapoints going back 27 days
2026-08-16 07:10:00.691598: Using load_power data to fill gaps in load_today data
2026-08-16 07:10:01.413097: Processing 721 30-minute periods for power integration
2026-08-16 07:10:01.571732: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:10:01.571865: Car charging hold False, threshold 6.0kWh
2026-08-16 07:10:01.571905: Current data so far today: load 4.35kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:10:01.583865: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:10:01.584491: Standing charge is set to 49.98p
2026-08-16 07:10:01.606348: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:10:01.606515: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:10:01.606702: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 429.9 minutes
2026-08-16 07:10:01.607009: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 429.8 minutes
2026-08-16 07:10:01.609523: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:10:01.680767: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:10:01.735059: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:10:01.735450: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:10:01.776936: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:10:01.777076: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:10:01.778199: High export rate found rates in range 99p to -99p
2026-08-16 07:10:01.855134: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:10:01.855307: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:10:01.867468: Battery level now 8.0kWh, -1hr ago 8.39kWh, at midnight 12.21kWh, battery value change in the last hour -0.39p, change today -4.21p, rate_forward 1.0p
2026-08-16 07:10:01.867810: 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-16 07:10:01.915196: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:10:01.915380: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:10:01.980609: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:10:02.001087: Today's load divergence 97.44%, in-day adjustment 87.33%, damping 0.95x, yesterday 82.97% today 97.57% blend 70.14%
2026-08-16 07:10:02.001184: Today's predicted so far 4.78kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.78kWh forecast extra.
2026-08-16 07:10:02.001211: Today's actual load so far 4.38kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:10:02.042441: Inverter 0: Type SK Sunsynk
2026-08-16 07:10:02.042556: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:10:02.042748: Reserve min: 7%, battery_min: 7%
2026-08-16 07:10:02.042822: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:10:02.043094: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 283W, current battery voltage 51.2V, grid power -55W, load power 330W, PV Power 0W
2026-08-16 07:10:02.043251: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:10:02.043341: Inverter 0 scheduled charge enable is False
2026-08-16 07:10:02.043395: Inverter 0 charge windows currently []
2026-08-16 07:10:02.043424: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:10:02.043533: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:10:02.043569: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:10:02.043603: Inverter 0 scheduled discharge enable is False
2026-08-16 07:10:02.043729: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:10:02.043766: Inverter 0 discharge windows currently []
2026-08-16 07:10:02.043788: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:10:02.043807: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:10:02.043825: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:10:02.118039: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:10:02.118148: Plan was last updated on 2026-08-16 07:00:00+01:00 and is now 10.0 minutes old
2026-08-16 07:10:02.118408: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:10:02.118454: Best export window [  ]
2026-08-16 07:10:02.119243: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:10:02.121840: Load divergence over 8.0 hours mean 342.19W, min 222.6W, max 708.0W, std dev 77.47W, divergence 11.32%
2026-08-16 07:10:02.136964: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:10:02.137091: LoadML is_calculating False
2026-08-16 07:10:02.137148: Creating pool of 12 processes to match your CPU count
2026-08-16 07:10:02.251195: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 392.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.92kWh, PV 0.0kWh
2026-08-16 07:10:02.384238: Battery has 12.25 hours left - now at 8.0kWh
2026-08-16 07:10:02.433382: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 417.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.71kWh, PV 0.0kWh
2026-08-16 07:10:02.522401: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 281.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.71kWh, PV 0.0kWh
2026-08-16 07:10:02.607356: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 248.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.92kWh, PV 0.0kWh
2026-08-16 07:10:02.607468: Saving plan best values to HA entities
2026-08-16 07:10:02.793980: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:10:02.799789: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:10:02.805229: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.27kWh, house 1.63kWh, export 0.0kWh, metric 248.35p, metric10 281.1p
2026-08-16 07:10:02.884293: Marginal costs baseline metric (no standing charge): 198.3689
2026-08-16 07:10:03.167206: Marginal energy costs matrix computed: min=3.71 max=33.97
2026-08-16 07:10:03.238004: Rate array import [{'start': 430, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 430, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:10:03.238592: - Your estimated bill for today is £1.35 and tomorrow is £7.33
2026-08-16 07:10:03.238630: - Import rates are expensive (24.1p - 25.5p) for the next 3 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:10:03.238650: - The battery is currently at 50% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 07:10:03.238665: - For the next 48 hours there will be no solar generation.
2026-08-16 07:10:03.238679: - You will run out of battery in 24 hours.
2026-08-16 07:10:03.238693: - Your next charge slot will be in 3 and three quarters hours where import rates will be free (0.0p).
2026-08-16 07:10:03.238707: 
2026-08-16 07:10:03.284411: Plan calculation took 1.17 seconds
2026-08-16 07:10:03.287743: No high rate period found
2026-08-16 07:10:03.337317: Import threshold used for optimisation was 24.06p
2026-08-16 07:10:03.385894: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 94: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:10:03.391599: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:10:03.391711: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:10:03.391815: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:10:03.392154: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:10:03.392260: No export window planned
2026-08-16 07:10:03.392389: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:10:03.392453: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:10:03.392573: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:10:03.392748: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:10:03.392825: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:10:03.392894: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:10:03.393001: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393075: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:03.393435: Inverter 0 count register writes 0
2026-08-16 07:10:03.409683: 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-16 07:10:03.409953: Recompute is saving previous plan...
2026-08-16 07:10:03.412601: Best charge window [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0% ]
2026-08-16 07:10:03.412671: Best export window [  ]
2026-08-16 07:10:03.413355: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:10:03.415916: Load divergence over 8.0 hours mean 342.19W, min 222.6W, max 708.0W, std dev 77.47W, divergence 11.32%
2026-08-16 07:10:03.430990: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:10:03.431083: LoadML is_calculating False
2026-08-16 07:10:03.431143: Creating pool of 12 processes to match your CPU count
2026-08-16 07:10:03.509719: 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(0.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-16 07:10:03.511561: Optimise levels pass started at 2026-08-16 07:10:03
2026-08-16 07:10:03.511610: Optimise all windows, total charge 94 export 1
2026-08-16 07:10:04.790995: >> Region optimisation pass width 960 gives best_metric 515.03p, best_cost 527.35p, best_cycle 44.73kWh, best_import 26.77kWh
2026-08-16 07:10:05.204991: >> Region optimisation pass width 480 gives best_metric 515.03p, best_cost 527.35p, best_cycle 44.73kWh, best_import 26.77kWh
2026-08-16 07:10:05.970545: >> Region optimisation pass width 240 gives best_metric 515.03p, best_cost 527.35p, best_cycle 44.73kWh, best_import 26.77kWh
2026-08-16 07:10:07.214135: >> Region optimisation pass width 120 gives best_metric 515.03p, best_cost 527.35p, best_cycle 44.73kWh, best_import 26.77kWh
2026-08-16 07:10:07.214643: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 55
2026-08-16 07:10:07.214712: Optimise levels pass ended at 2026-08-16 07:10:07, duration 3.7 seconds tried 359 combinations
2026-08-16 07:10:07.214786: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 515.03p, best_keep 0kWh, best_cycle 44.73kWh, best_carbon 0kg, best_import 26.77kWh
2026-08-16 07:10:07.230619: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 16.0, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0]kWh and export limits []kWh
2026-08-16 07:10:11.106085: Tweak plan optimisation started metric 159.81p, cost 175.16p
2026-08-16 07:10:11.415007: Tweak optimisation finished metric 159.81p, cost 175.16p, metric_keep 0kWh, cycle 19.95kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 07:10:11.430567: Swap charge optimisation started metric 159.81p, cost 175.16p, min_improvement_swap 0.1p
2026-08-16 07:10:16.032318: Swap charge optimisation finished metric 159.81p, cost 175.16p
2026-08-16 07:10:16.154687: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 154.56p -> 154.56p, plan now metric 159.93p, cost 175.16p, cycle 19.95kWh, import 10.98kWh
2026-08-16 07:10:16.166613: Raw charge windows [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100% ] reserve 1.12
2026-08-16 07:10:16.167267: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:10:16.167599: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:10:16.167854: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:10:16.205413: Previous plan best metric is 159.81 (cost 175.01) and new plan best metric is 159.81 (cost 175.16)
2026-08-16 07:10:16.205714: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:10:16.205985: Plan valid is now true after recompute was False
2026-08-16 07:10:16.233672: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 389.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.79kWh, PV 0.0kWh
2026-08-16 07:10:16.348631: Battery has 12.25 hours left - now at 8.0kWh
2026-08-16 07:10:16.395259: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 414.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.57kWh, PV 0.0kWh
2026-08-16 07:10:16.471964: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 260.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.57kWh, PV 0.0kWh
2026-08-16 07:10:16.551688: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 225.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.79kWh, PV 0.0kWh
2026-08-16 07:10:16.551790: Saving plan best values to HA entities
2026-08-16 07:10:16.714556: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:10:16.719953: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:10:16.725363: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.31kWh, house 1.63kWh, export 0.0kWh, metric 225.0p, metric10 260.96p
2026-08-16 07:10:16.796053: Marginal costs baseline metric (no standing charge): 175.013
2026-08-16 07:10:17.062131: Marginal energy costs matrix computed: min=3.71 max=33.97
2026-08-16 07:10:17.136434: Rate array import [{'start': 430, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 430, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:10:17.137146: - Your estimated bill for today is £1.35 and tomorrow is £7.33
2026-08-16 07:10:17.137195: - Import rates are expensive (24.1p - 25.5p) for the next 3 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:10:17.137219: - The battery is currently at 50% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 07:10:17.137238: - For the next 48 hours there will be no solar generation.
2026-08-16 07:10:17.137256: - You will run out of battery in 24 hours.
2026-08-16 07:10:17.137274: - Your next charge slot will be in 3 and three quarters hours where import rates will be free (0.0p).
2026-08-16 07:10:17.137291: 
2026-08-16 07:10:17.192642: Plan calculation took 13.78 seconds
2026-08-16 07:10:17.193089: Inverter 0: Type SK Sunsynk
2026-08-16 07:10:17.193150: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:10:17.193391: Reserve min: 7%, battery_min: 7%
2026-08-16 07:10:17.193496: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:10:17.193850: Inverter 0 SoC: 7.95kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -55W, load power 328W, PV Power 0W
2026-08-16 07:10:17.194112: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:10:17.194220: Inverter 0 scheduled charge enable is False
2026-08-16 07:10:17.194262: Inverter 0 charge windows currently []
2026-08-16 07:10:17.194293: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:10:17.194403: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:10:17.194459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:10:17.194498: Inverter 0 scheduled discharge enable is False
2026-08-16 07:10:17.194640: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:10:17.194678: Inverter 0 discharge windows currently []
2026-08-16 07:10:17.194701: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:10:17.194721: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:10:17.194739: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:10:17.253830: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:10:17.253985: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:10:17.254085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:10:17.254325: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:10:17.254448: No export window planned
2026-08-16 07:10:17.254628: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:10:17.254690: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:10:17.254895: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:10:17.255112: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:10:17.255176: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:10:17.255271: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:10:17.255409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255801: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.255975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:10:17.256276: Inverter 0 count register writes 0
2026-08-16 07:10:17.278939: Total inverter register writes now 826
2026-08-16 07:10:17.315614: Info: Completed run status Demand
2026-08-16 07:10:17.323000: Info: record_status Demand
2026-08-16 07:10:17.331013: Saved current settings to /config/predbat_config.json
2026-08-16 07:10:17.331394: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:10:57.453561: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:10:57.453820: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:10:57.453863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:10:57.454002: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:10:57.454041: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:10:57.454062: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:10:57.454108: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:13:11.692084: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:13:11.692333: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:13:11.692369: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:13:11.692519: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:13:11.692559: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:13:11.692579: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:13:11.692597: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:15:00.902439: --------------- PredBat - update at 2026-08-16 07:15:00+01:00 with clock skew 0 minutes, minutes now 435
2026-08-16 07:15:00.903218: Saved current settings to /config/predbat_config.json
2026-08-16 07:15:00.903385: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 07:15:00.903471: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:15:00.903572: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:15:00.922852: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:15:00.922977: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:15:00.923142: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:15:00.923679: Cars 1 charging from battery False 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-16 07:15:00.923818: Predbat mode is set to Control charge & discharge
2026-08-16 07:15:01.098876: Found 21602 load_today datapoints going back 27 days
2026-08-16 07:15:01.099013: Using load_power data to fill gaps in load_today data
2026-08-16 07:15:01.787704: Processing 721 30-minute periods for power integration
2026-08-16 07:15:01.937921: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:15:01.938037: Car charging hold False, threshold 6.0kWh
2026-08-16 07:15:01.938100: Current data so far today: load 4.4kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:15:01.950028: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:15:01.950449: Standing charge is set to 49.98p
2026-08-16 07:15:01.980533: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:15:01.980624: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:15:01.980800: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 435.0 minutes
2026-08-16 07:15:01.981197: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 434.8 minutes
2026-08-16 07:15:01.983616: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:15:02.054099: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:15:02.102558: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:15:02.103069: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:15:02.137208: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:15:02.137346: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:15:02.138384: High export rate found rates in range 99p to -99p
2026-08-16 07:15:02.206957: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:15:02.207100: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:15:02.217531: Battery level now 8.0kWh, -1hr ago 8.32kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.21p, rate_forward 1.0p
2026-08-16 07:15:02.217933: 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-16 07:15:02.263104: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:15:02.263249: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:15:02.326977: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:15:02.346962: Today's load divergence 97.35%, in-day adjustment 87.36%, damping 0.95x, yesterday 82.97% today 97.49% blend 69.79%
2026-08-16 07:15:02.347059: Today's predicted so far 4.75kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.75kWh forecast extra.
2026-08-16 07:15:02.347102: Today's actual load so far 4.35kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:15:02.378997: Inverter 0: Type SK Sunsynk
2026-08-16 07:15:02.379083: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:15:02.379340: Reserve min: 7%, battery_min: 7%
2026-08-16 07:15:02.379437: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:15:02.379730: Inverter 0 SoC: 7.95kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 286W, current battery voltage 51.2V, grid power -55W, load power 336W, PV Power 0W
2026-08-16 07:15:02.379925: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:15:02.380039: Inverter 0 scheduled charge enable is False
2026-08-16 07:15:02.380080: Inverter 0 charge windows currently []
2026-08-16 07:15:02.380120: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:15:02.380275: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:15:02.380319: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:15:02.380393: Inverter 0 scheduled discharge enable is False
2026-08-16 07:15:02.380565: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:15:02.380609: Inverter 0 discharge windows currently []
2026-08-16 07:15:02.380643: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:15:02.380672: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:15:02.380709: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:15:02.432516: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:15:02.432619: Plan was last updated on 2026-08-16 07:10:00+01:00 and is now 5.0 minutes old
2026-08-16 07:15:02.432894: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:15:02.432984: Best export window [  ]
2026-08-16 07:15:02.433718: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:15:02.436351: Load divergence over 8.0 hours mean 343.72W, min 244.8W, max 864.0W, std dev 89.27W, divergence 12.99%
2026-08-16 07:15:02.453622: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:15:02.453723: LoadML is_calculating False
2026-08-16 07:15:02.453797: Creating pool of 12 processes to match your CPU count
2026-08-16 07:15:02.556782: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 392.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.89kWh, PV 0.0kWh
2026-08-16 07:15:02.671636: Battery has 12.17 hours left - now at 7.95kWh
2026-08-16 07:15:02.708105: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 416.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.67kWh, PV 0.0kWh
2026-08-16 07:15:02.778248: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 271.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.67kWh, PV 0.0kWh
2026-08-16 07:15:02.860406: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 237.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.89kWh, PV 0.0kWh
2026-08-16 07:15:02.860488: Saving plan best values to HA entities
2026-08-16 07:15:03.041113: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:15:03.061052: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:15:03.066053: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.81kWh, house 1.63kWh, export 0.0kWh, metric 237.0p, metric10 271.45p
2026-08-16 07:15:03.134690: Marginal costs baseline metric (no standing charge): 187.0177
2026-08-16 07:15:03.349683: Marginal energy costs matrix computed: min=5.77 max=34.09
2026-08-16 07:15:03.419107: Rate array import [{'start': 435, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 435, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:15:03.419730: - Your estimated bill for today is £1.35 and tomorrow is £7.35
2026-08-16 07:15:03.419775: - Import rates are expensive (24.1p - 25.5p) for the next 3 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:15:03.419807: - The battery is currently at 50% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 07:15:03.419836: - For the next 48 hours there will be no solar generation.
2026-08-16 07:15:03.419858: - You will run out of battery in 24 hours.
2026-08-16 07:15:03.419873: - Your next charge slot will be in 3 and three quarters hours where import rates will be free (0.0p).
2026-08-16 07:15:03.419888: 
2026-08-16 07:15:03.473412: Plan calculation took 1.04 seconds
2026-08-16 07:15:03.476865: No high rate period found
2026-08-16 07:15:03.528490: Import threshold used for optimisation was 23.43p
2026-08-16 07:15:03.579700: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 94: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:15:03.588728: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 50%, target 100%
2026-08-16 07:15:03.588858: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:15:03.589007: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:15:03.589280: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:15:03.589368: No export window planned
2026-08-16 07:15:03.589470: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:15:03.589500: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:15:03.589611: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:15:03.589770: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:15:03.589825: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:15:03.589876: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:15:03.589956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.589992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:15:03.590327: Inverter 0 count register writes 0
2026-08-16 07:15:03.611002: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:15:03.617356: Total inverter register writes now 826
2026-08-16 07:15:03.663607: Info: Completed run status Demand
2026-08-16 07:15:03.670313: Info: record_status Demand
2026-08-16 07:15:03.677886: Saved current settings to /config/predbat_config.json
2026-08-16 07:15:03.678282: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:15:41.801193: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:15:41.801491: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:15:41.801540: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:15:41.801682: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:15:41.801725: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:15:41.801748: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:15:41.801767: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:17:42.015730: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:17:42.016103: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:17:42.016170: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:17:42.016420: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:17:42.016481: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:17:42.016519: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:17:42.016552: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:19:42.259670: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:19:42.259931: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:19:42.259976: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:19:42.260121: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:19:42.260161: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:19:42.260182: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:19:42.260200: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:20:00.353250: --------------- PredBat - update at 2026-08-16 07:20:00+01:00 with clock skew 0 minutes, minutes now 440
2026-08-16 07:20:00.354104: Saved current settings to /config/predbat_config.json
2026-08-16 07:20:00.354263: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 07:20:00.354386: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:20:00.354500: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:20:00.373604: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:20:00.373747: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:20:00.373951: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:20:00.374605: Cars 1 charging from battery False 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-16 07:20:00.374738: Predbat mode is set to Control charge & discharge
2026-08-16 07:20:00.573280: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:20:00.573460: Using load_power data to fill gaps in load_today data
2026-08-16 07:20:01.347788: Processing 721 30-minute periods for power integration
2026-08-16 07:20:01.499008: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:20:01.499138: Car charging hold False, threshold 6.0kWh
2026-08-16 07:20:01.499214: Current data so far today: load 4.45kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:20:01.511344: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:20:01.511744: Standing charge is set to 49.98p
2026-08-16 07:20:01.535169: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:20:01.535278: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:20:01.535493: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 439.9 minutes
2026-08-16 07:20:01.535905: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 439.8 minutes
2026-08-16 07:20:01.539170: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:20:01.623582: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:20:01.685144: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:20:01.685606: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:20:01.728731: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:20:01.728871: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:20:01.730146: High export rate found rates in range 99p to -99p
2026-08-16 07:20:01.822087: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:20:01.822231: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:20:01.836118: Battery level now 7.95kWh, -1hr ago 8.32kWh, at midnight 12.21kWh, battery value change in the last hour -0.37p, change today -4.26p, rate_forward 1.0p
2026-08-16 07:20:01.836493: 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-16 07:20:01.889257: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:20:01.889399: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:20:01.960618: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:20:01.981153: Today's load divergence 97.6%, in-day adjustment 87.48%, damping 0.95x, yesterday 82.97% today 97.72% blend 69.44%
2026-08-16 07:20:01.981238: Today's predicted so far 4.77kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.77kWh forecast extra.
2026-08-16 07:20:01.981263: Today's actual load so far 4.4kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:20:02.015157: Inverter 0: Type SK Sunsynk
2026-08-16 07:20:02.015257: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:20:02.015459: Reserve min: 7%, battery_min: 7%
2026-08-16 07:20:02.015530: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:20:02.015889: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 282W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 07:20:02.016062: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:20:02.016153: Inverter 0 scheduled charge enable is False
2026-08-16 07:20:02.016187: Inverter 0 charge windows currently []
2026-08-16 07:20:02.016214: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:20:02.016318: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:20:02.016353: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:20:02.016389: Inverter 0 scheduled discharge enable is False
2026-08-16 07:20:02.016511: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:20:02.016548: Inverter 0 discharge windows currently []
2026-08-16 07:20:02.016571: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:20:02.016589: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:20:02.016627: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:20:02.097457: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:20:02.097572: Plan was last updated on 2026-08-16 07:10:00+01:00 and is now 10.0 minutes old
2026-08-16 07:20:02.097883: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:20:02.097929: Best export window [  ]
2026-08-16 07:20:02.098714: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:20:02.101875: Load divergence over 8.0 hours mean 343.69W, min 244.2W, max 891.6W, std dev 88.68W, divergence 12.9%
2026-08-16 07:20:02.120285: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:20:02.120463: LoadML is_calculating False
2026-08-16 07:20:02.120575: Creating pool of 12 processes to match your CPU count
2026-08-16 07:20:02.249554: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 396.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.97kWh, PV 0.0kWh
2026-08-16 07:20:02.415038: Battery has 11.92 hours left - now at 7.84kWh
2026-08-16 07:20:02.464080: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 422.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:40:00, load 21.76kWh, PV 0.0kWh
2026-08-16 07:20:02.546975: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 283.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.76kWh, PV 0.0kWh
2026-08-16 07:20:02.628255: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 250.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.97kWh, PV 0.0kWh
2026-08-16 07:20:02.628352: Saving plan best values to HA entities
2026-08-16 07:20:02.801271: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:20:02.807195: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:20:02.813078: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.38kWh, house 1.63kWh, export 0.0kWh, metric 250.43p, metric10 283.48p
2026-08-16 07:20:02.896430: Marginal costs baseline metric (no standing charge): 200.4489
2026-08-16 07:20:03.127674: Marginal energy costs matrix computed: min=7.97 max=34.22
2026-08-16 07:20:03.199101: Rate array import [{'start': 440, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 440, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:20:03.199738: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 07:20:03.199783: - Import rates are expensive (24.1p - 25.5p) for the next 3 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:20:03.199807: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 07:20:03.199850: - For the next 48 hours there will be no solar generation.
2026-08-16 07:20:03.199883: - You will run out of battery in 24 hours.
2026-08-16 07:20:03.199902: - Your next charge slot will be in 3 and three quarters hours where import rates will be free (0.0p).
2026-08-16 07:20:03.199922: 
2026-08-16 07:20:03.251468: Plan calculation took 1.15 seconds
2026-08-16 07:20:03.254927: No high rate period found
2026-08-16 07:20:03.308732: Import threshold used for optimisation was 23.43p
2026-08-16 07:20:03.363193: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 94: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:20:03.369209: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:20:03.369327: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:20:03.369430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:20:03.369671: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:20:03.369755: No export window planned
2026-08-16 07:20:03.369869: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:20:03.369932: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:20:03.370046: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:20:03.370224: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:20:03.370278: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:20:03.370343: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:20:03.370438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370471: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370520: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370566: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370589: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:03.370958: Inverter 0 count register writes 0
2026-08-16 07:20:03.386408: 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-16 07:20:03.386585: Recompute is saving previous plan...
2026-08-16 07:20:03.389851: Best charge window [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0% ]
2026-08-16 07:20:03.389947: Best export window [  ]
2026-08-16 07:20:03.390612: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:20:03.393434: Load divergence over 8.0 hours mean 343.69W, min 244.2W, max 891.6W, std dev 88.68W, divergence 12.9%
2026-08-16 07:20:03.408614: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:20:03.408714: LoadML is_calculating False
2026-08-16 07:20:03.408778: Creating pool of 12 processes to match your CPU count
2026-08-16 07:20:03.495362: 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(0.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-16 07:20:03.497429: Optimise levels pass started at 2026-08-16 07:20:03
2026-08-16 07:20:03.497496: Optimise all windows, total charge 94 export 1
2026-08-16 07:20:04.351597: >> Region optimisation pass width 960 gives best_metric 519.12p, best_cost 531.36p, best_cycle 42.98kWh, best_import 26.81kWh
2026-08-16 07:20:04.736823: >> Region optimisation pass width 480 gives best_metric 519.12p, best_cost 531.36p, best_cycle 42.98kWh, best_import 26.81kWh
2026-08-16 07:20:05.256232: >> Region optimisation pass width 240 gives best_metric 519.12p, best_cost 531.36p, best_cycle 42.98kWh, best_import 26.81kWh
2026-08-16 07:20:06.517774: >> Region optimisation pass width 120 gives best_metric 519.12p, best_cost 531.36p, best_cycle 42.98kWh, best_import 26.81kWh
2026-08-16 07:20:06.518165: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 55
2026-08-16 07:20:06.518361: Optimise levels pass ended at 2026-08-16 07:20:06, duration 3.0 seconds tried 336 combinations
2026-08-16 07:20:06.520442: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 519.12p, best_keep 0kWh, best_cycle 42.98kWh, best_carbon 0kg, best_import 26.81kWh
2026-08-16 07:20:06.541805: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 12.0, 0, 12.0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16.0]kWh and export limits []kWh
2026-08-16 07:20:11.311606: Tweak plan optimisation started metric 161.44p, cost 176.52p
2026-08-16 07:20:11.610657: Tweak optimisation finished metric 161.44p, cost 176.52p, metric_keep 0kWh, cycle 19.31kWh, carbon 0kg, import 11.05kWh, changed 8 window(s)
2026-08-16 07:20:11.627091: Swap charge optimisation started metric 161.44p, cost 176.52p, min_improvement_swap 0.1p
2026-08-16 07:20:15.891742: Swap charge optimisation finished metric 161.44p, cost 176.52p
2026-08-16 07:20:15.994335: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 155.92p -> 155.92p, plan now metric 161.48p, cost 176.52p, cycle 19.31kWh, import 11.05kWh
2026-08-16 07:20:16.003897: Raw charge windows [ 16-08 07:00:00 - 16-08 07:30:00 @ 24.28p 0%, 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 78%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100% ] reserve 1.12
2026-08-16 07:20:16.004396: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:20:16.004611: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:20:16.004774: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:20:16.035106: Previous plan best metric is 161.83 (cost 177.03) and new plan best metric is 161.44 (cost 176.52)
2026-08-16 07:20:16.035397: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:20:16.035565: Plan valid is now true after recompute was False
2026-08-16 07:20:16.058864: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 393.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.84kWh, PV 0.0kWh
2026-08-16 07:20:16.155466: Battery has 11.92 hours left - now at 7.84kWh
2026-08-16 07:20:16.196458: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:40:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:20:16.263839: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 263.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:20:16.345599: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 227.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.84kWh, PV 0.0kWh
2026-08-16 07:20:16.345687: Saving plan best values to HA entities
2026-08-16 07:20:16.481858: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:20:16.487421: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:20:16.492600: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.41kWh, house 1.63kWh, export 0.0kWh, metric 227.01p, metric10 263.28p
2026-08-16 07:20:16.559875: Marginal costs baseline metric (no standing charge): 177.0275
2026-08-16 07:20:16.793343: Marginal energy costs matrix computed: min=7.97 max=34.22
2026-08-16 07:20:16.856402: Rate array import [{'start': 440, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 440, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:20:16.856998: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 07:20:16.857048: - Import rates are expensive (24.1p - 25.5p) for the next 3 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:20:16.857067: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 07:20:16.857081: - For the next 48 hours there will be no solar generation.
2026-08-16 07:20:16.857096: - You will run out of battery in 24 hours.
2026-08-16 07:20:16.857109: - Your next charge slot will be in 3 and three quarters hours where import rates will be free (0.0p).
2026-08-16 07:20:16.857123: 
2026-08-16 07:20:16.909302: Plan calculation took 13.52 seconds
2026-08-16 07:20:16.909796: Inverter 0: Type SK Sunsynk
2026-08-16 07:20:16.909879: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:20:16.910193: Reserve min: 7%, battery_min: 7%
2026-08-16 07:20:16.910304: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:20:16.910757: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 282W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 07:20:16.911090: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:20:16.911235: Inverter 0 scheduled charge enable is False
2026-08-16 07:20:16.911295: Inverter 0 charge windows currently []
2026-08-16 07:20:16.911345: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:20:16.911510: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:20:16.911563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:20:16.911614: Inverter 0 scheduled discharge enable is False
2026-08-16 07:20:16.911797: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:20:16.911874: Inverter 0 discharge windows currently []
2026-08-16 07:20:16.911920: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:20:16.911949: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:20:16.911975: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:20:16.962284: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:20:16.962490: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:20:16.962583: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:20:16.962941: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:20:16.963035: No export window planned
2026-08-16 07:20:16.963194: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:20:16.963268: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:20:16.963462: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:20:16.963703: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:20:16.963776: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:20:16.963879: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:20:16.964015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964301: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964756: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:20:16.964882: Inverter 0 count register writes 0
2026-08-16 07:20:16.985557: Total inverter register writes now 826
2026-08-16 07:20:17.017804: Info: Completed run status Demand
2026-08-16 07:20:17.025241: Info: record_status Demand
2026-08-16 07:20:17.032524: Saved current settings to /config/predbat_config.json
2026-08-16 07:20:17.032941: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:20:57.153160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:20:57.153402: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:20:57.153437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:20:57.153595: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:20:57.153662: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:20:57.153684: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:20:57.153702: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:22:57.373520: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:22:57.373791: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:22:57.373848: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:22:57.374039: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:22:57.374143: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:22:57.374168: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:22:57.374193: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:25:00.617763: --------------- PredBat - update at 2026-08-16 07:25:00+01:00 with clock skew 0 minutes, minutes now 445
2026-08-16 07:25:00.618753: Saved current settings to /config/predbat_config.json
2026-08-16 07:25:00.618987: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 07:25:00.619118: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:25:00.619281: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:25:00.636666: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:25:00.636778: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:25:00.636915: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:25:00.637429: Cars 1 charging from battery False 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-16 07:25:00.637534: Predbat mode is set to Control charge & discharge
2026-08-16 07:25:00.807565: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:25:00.807732: Using load_power data to fill gaps in load_today data
2026-08-16 07:25:01.504159: Processing 721 30-minute periods for power integration
2026-08-16 07:25:01.668421: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:25:01.668550: Car charging hold False, threshold 6.0kWh
2026-08-16 07:25:01.668592: Current data so far today: load 4.5kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:25:01.681571: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:25:01.681940: Standing charge is set to 49.98p
2026-08-16 07:25:01.705105: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:25:01.705240: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:25:01.705485: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 445.0 minutes
2026-08-16 07:25:01.706009: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 444.8 minutes
2026-08-16 07:25:01.710189: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:25:01.779855: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:25:01.830409: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:25:01.830800: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:25:01.865472: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:25:01.865589: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:25:01.866719: High export rate found rates in range 99p to -99p
2026-08-16 07:25:01.937923: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:25:01.938275: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:25:01.950636: Battery level now 7.84kWh, -1hr ago 8.32kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -4.37p, rate_forward 1.0p
2026-08-16 07:25:01.951007: 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-16 07:25:01.999570: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 57.94p, import 7.95p, export 0.0p, carbon 0.0kg
2026-08-16 07:25:01.999694: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:25:02.064433: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:25:02.086326: Today's load divergence 97.88%, in-day adjustment 87.61%, damping 0.95x, yesterday 82.97% today 97.98% blend 69.1%
2026-08-16 07:25:02.086409: Today's predicted so far 4.77kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.77kWh forecast extra.
2026-08-16 07:25:02.086435: Today's actual load so far 4.45kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:25:02.121078: Inverter 0: Type SK Sunsynk
2026-08-16 07:25:02.121158: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:25:02.121332: Reserve min: 7%, battery_min: 7%
2026-08-16 07:25:02.121385: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:25:02.121737: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 335W, current battery voltage 51.2V, grid power -55W, load power 383W, PV Power 0W
2026-08-16 07:25:02.121919: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:25:02.122014: Inverter 0 scheduled charge enable is False
2026-08-16 07:25:02.122056: Inverter 0 charge windows currently []
2026-08-16 07:25:02.122096: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:25:02.122258: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:25:02.122296: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:25:02.122335: Inverter 0 scheduled discharge enable is False
2026-08-16 07:25:02.122508: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:25:02.122545: Inverter 0 discharge windows currently []
2026-08-16 07:25:02.122566: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:25:02.122618: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:25:02.122651: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:25:02.175186: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:25:02.175301: Plan was last updated on 2026-08-16 07:20:00+01:00 and is now 5.0 minutes old
2026-08-16 07:25:02.175508: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:25:02.175596: Best export window [  ]
2026-08-16 07:25:02.176389: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:25:02.178903: Load divergence over 8.0 hours mean 343.66W, min 240.6W, max 912.0W, std dev 88.91W, divergence 12.94%
2026-08-16 07:25:02.194087: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:25:02.194189: LoadML is_calculating False
2026-08-16 07:25:02.194260: Creating pool of 12 processes to match your CPU count
2026-08-16 07:25:02.300084: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 394.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.95kWh, PV 0.0kWh
2026-08-16 07:25:02.418148: Battery has 11.92 hours left - now at 7.84kWh
2026-08-16 07:25:02.456354: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.73kWh, PV 0.0kWh
2026-08-16 07:25:02.532860: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 273.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.73kWh, PV 0.0kWh
2026-08-16 07:25:02.630940: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 238.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.95kWh, PV 0.0kWh
2026-08-16 07:25:02.631036: Saving plan best values to HA entities
2026-08-16 07:25:02.785733: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:25:02.790702: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:25:02.795545: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.88kWh, house 1.63kWh, export 0.0kWh, metric 238.6p, metric10 273.24p
2026-08-16 07:25:02.883642: Marginal costs baseline metric (no standing charge): 188.6185
2026-08-16 07:25:03.109449: Marginal energy costs matrix computed: min=10.05 max=34.34
2026-08-16 07:25:03.183386: Rate array import [{'start': 445, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 445, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:25:03.183956: - Your estimated bill for today is £1.36 and tomorrow is £7.36
2026-08-16 07:25:03.184030: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:25:03.184049: - The battery is currently at 49% and is in eco mode for the next 3 and a half hours.
2026-08-16 07:25:03.184064: - For the next 48 hours there will be no solar generation.
2026-08-16 07:25:03.184077: - You will run out of battery in 24 hours.
2026-08-16 07:25:03.184091: - Your next charge slot will be in 3 and a half hours where import rates will be free (0.0p).
2026-08-16 07:25:03.184105: 
2026-08-16 07:25:03.237444: Plan calculation took 1.06 seconds
2026-08-16 07:25:03.240771: No high rate period found
2026-08-16 07:25:03.292673: Import threshold used for optimisation was 24.06p
2026-08-16 07:25:03.343955: Low import rate windows [0: 08-16 07:00:00 - 08-16 07:30:00 @ 24.28, 1: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 2: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 3: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 4: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 5: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 6: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 7: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 8: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 9: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 10: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 11: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 12: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 13: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 14: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 15: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 16: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 17: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 18: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 19: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 20: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 21: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 22: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 23: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 24: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 25: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 26: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 27: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 28: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 29: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 30: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 31: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 32: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 33: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 34: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 35: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 36: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 37: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 38: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 39: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 40: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 41: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 42: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 43: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 44: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 45: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 46: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 47: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 48: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 49: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 50: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 51: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 52: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 53: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 54: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 55: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 56: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 57: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 58: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 59: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 60: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 61: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 62: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 63: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 64: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 65: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 66: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 67: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 68: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 69: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 70: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 71: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 72: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 73: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 74: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 75: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 76: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 77: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 78: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 79: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 80: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 81: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 82: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 83: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 84: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 85: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 86: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 87: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 88: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 89: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 90: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 91: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 92: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 93: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 94: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:25:03.353030: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:25:03.353184: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:25:03.353363: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:25:03.353633: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:25:03.353729: No export window planned
2026-08-16 07:25:03.353848: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:25:03.353889: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:25:03.354024: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:25:03.354240: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:25:03.354316: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:25:03.354386: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:25:03.354485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354556: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354581: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354607: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:25:03.354909: Inverter 0 count register writes 0
2026-08-16 07:25:03.373358: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:25:03.379858: Total inverter register writes now 826
2026-08-16 07:25:03.435246: Info: Completed run status Demand
2026-08-16 07:25:03.441471: Info: record_status Demand
2026-08-16 07:25:03.447747: Saved current settings to /config/predbat_config.json
2026-08-16 07:25:03.448082: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:25:41.554024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:25:41.554330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:25:41.554378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:25:41.554681: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:25:41.554744: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:25:41.554805: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:25:41.554844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:27:41.775241: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:27:41.775551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:27:41.775596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:27:41.775786: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:27:41.775843: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:27:41.775864: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:27:41.775882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:29:42.001023: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:29:42.001332: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:29:42.001399: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:29:42.001659: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:29:42.001707: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:29:42.001732: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:29:42.001767: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:30:00.102626: --------------- PredBat - update at 2026-08-16 07:30:00+01:00 with clock skew 0 minutes, minutes now 450
2026-08-16 07:30:00.103483: Saved current settings to /config/predbat_config.json
2026-08-16 07:30:00.103652: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 07:30:00.103792: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:30:00.103918: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:30:00.123488: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:30:00.123648: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:30:00.123818: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:30:00.124343: Cars 1 charging from battery False 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-16 07:30:00.124468: Predbat mode is set to Control charge & discharge
2026-08-16 07:30:00.319262: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:30:00.319402: Using load_power data to fill gaps in load_today data
2026-08-16 07:30:01.178661: Processing 721 30-minute periods for power integration
2026-08-16 07:30:01.370077: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:30:01.370206: Car charging hold False, threshold 6.0kWh
2026-08-16 07:30:01.370248: Current data so far today: load 4.4kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:30:01.382808: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:30:01.383261: Standing charge is set to 49.98p
2026-08-16 07:30:01.410750: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:30:01.410860: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:30:01.411178: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 449.9 minutes
2026-08-16 07:30:01.411603: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 449.8 minutes
2026-08-16 07:30:01.414615: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:30:01.503239: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:30:01.570258: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:30:01.570762: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:30:01.613360: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:30:01.613496: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:30:01.614724: High export rate found rates in range 99p to -99p
2026-08-16 07:30:01.700500: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:30:01.700646: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:30:01.713833: Battery level now 7.84kWh, -1hr ago 8.32kWh, at midnight 12.21kWh, battery value change in the last hour -0.48p, change today -4.37p, rate_forward 1.0p
2026-08-16 07:30:01.714206: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.26p, import 1.26p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:30:01.769569: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:30:01.769690: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:30:01.836268: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:30:01.859283: Today's load divergence 96.93%, in-day adjustment 87.38%, damping 0.95x, yesterday 82.97% today 97.09% blend 68.75%
2026-08-16 07:30:01.859774: Today's predicted so far 4.89kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.89kWh forecast extra.
2026-08-16 07:30:01.859934: Today's actual load so far 4.42kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:30:01.911633: Inverter 0: Type SK Sunsynk
2026-08-16 07:30:01.911732: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:30:01.911928: Reserve min: 7%, battery_min: 7%
2026-08-16 07:30:01.911999: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:30:01.912285: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 326W, PV Power 0W
2026-08-16 07:30:01.912448: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:30:01.912579: Inverter 0 scheduled charge enable is False
2026-08-16 07:30:01.912628: Inverter 0 charge windows currently []
2026-08-16 07:30:01.912685: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:30:01.912806: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:30:01.912842: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:30:01.912879: Inverter 0 scheduled discharge enable is False
2026-08-16 07:30:01.913040: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:30:01.913082: Inverter 0 discharge windows currently []
2026-08-16 07:30:01.913105: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:30:01.913124: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:30:01.913141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:30:01.999856: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:30:02.000025: Plan was last updated on 2026-08-16 07:20:00+01:00 and is now 10.0 minutes old
2026-08-16 07:30:02.000326: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:30:02.000378: Best export window [  ]
2026-08-16 07:30:02.001317: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:30:02.007756: Load divergence over 8.0 hours mean 343.69W, min 223.8W, max 1097.4W, std dev 98.11W, divergence 14.27%
2026-08-16 07:30:02.026409: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:30:02.026575: LoadML is_calculating False
2026-08-16 07:30:02.026650: Creating pool of 12 processes to match your CPU count
2026-08-16 07:30:02.157764: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 396.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.87kWh, PV 0.0kWh
2026-08-16 07:30:02.307457: Battery has 11.92 hours left - now at 7.84kWh
2026-08-16 07:30:02.354676: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 421.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.65kWh, PV 0.0kWh
2026-08-16 07:30:02.438468: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.65kWh, PV 0.0kWh
2026-08-16 07:30:02.527892: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.87kWh, PV 0.0kWh
2026-08-16 07:30:02.527987: Saving plan best values to HA entities
2026-08-16 07:30:02.762442: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:30:02.770813: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:30:02.776895: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.32kWh, house 1.64kWh, export 0.0kWh, metric 251.86p, metric10 284.68p
2026-08-16 07:30:02.867526: Marginal costs baseline metric (no standing charge): 201.8782
2026-08-16 07:30:03.153754: Marginal energy costs matrix computed: min=12.0 max=34.48
2026-08-16 07:30:03.252650: Rate array import [{'start': 450, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 450, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:30:03.253535: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 07:30:03.253622: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:30:03.253667: - The battery is currently at 49% and is in eco mode for the next 3 and a half hours.
2026-08-16 07:30:03.253703: - For the next 48 hours there will be no solar generation.
2026-08-16 07:30:03.253744: - You will run out of battery in 24 hours.
2026-08-16 07:30:03.253779: - Your next charge slot will be in 3 and a half hours where import rates will be free (0.0p).
2026-08-16 07:30:03.253820: 
2026-08-16 07:30:03.317482: Plan calculation took 1.32 seconds
2026-08-16 07:30:03.322783: No high rate period found
2026-08-16 07:30:03.370773: Import threshold used for optimisation was 24.06p
2026-08-16 07:30:03.423904: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28]
2026-08-16 07:30:03.432478: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:30:03.432638: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:30:03.432745: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:30:03.433054: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:30:03.433148: No export window planned
2026-08-16 07:30:03.433248: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:30:03.433279: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:30:03.433395: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:30:03.433584: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:30:03.433641: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:30:03.433694: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:30:03.433777: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.433931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:03.434217: Inverter 0 count register writes 0
2026-08-16 07:30:03.452013: 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-16 07:30:03.452186: Recompute is saving previous plan...
2026-08-16 07:30:03.455084: Best charge window [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0% ]
2026-08-16 07:30:03.455169: Best export window [  ]
2026-08-16 07:30:03.455849: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:30:03.458577: Load divergence over 8.0 hours mean 343.69W, min 223.8W, max 1097.4W, std dev 98.11W, divergence 14.27%
2026-08-16 07:30:03.473070: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:30:03.473202: LoadML is_calculating False
2026-08-16 07:30:03.473262: Creating pool of 12 processes to match your CPU count
2026-08-16 07:30:03.555305: 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(0.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-16 07:30:03.557221: Optimise levels pass started at 2026-08-16 07:30:03
2026-08-16 07:30:03.557287: Optimise all windows, total charge 94 export 1
2026-08-16 07:30:04.973622: >> Region optimisation pass width 960 gives best_metric 521.85p, best_cost 534.16p, best_cycle 44.67kWh, best_import 26.95kWh
2026-08-16 07:30:05.383442: >> Region optimisation pass width 480 gives best_metric 521.85p, best_cost 534.16p, best_cycle 44.67kWh, best_import 26.95kWh
2026-08-16 07:30:06.160712: >> Region optimisation pass width 240 gives best_metric 521.85p, best_cost 534.16p, best_cycle 44.67kWh, best_import 26.95kWh
2026-08-16 07:30:07.577871: >> Region optimisation pass width 120 gives best_metric 521.85p, best_cost 534.16p, best_cycle 44.67kWh, best_import 26.95kWh
2026-08-16 07:30:07.578239: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 54
2026-08-16 07:30:07.578353: Optimise levels pass ended at 2026-08-16 07:30:07, duration 4.0 seconds tried 358 combinations
2026-08-16 07:30:07.578449: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 521.85p, best_keep 0kWh, best_cycle 44.67kWh, best_carbon 0kg, best_import 26.95kWh
2026-08-16 07:30:07.598076: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 16.0, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0]kWh and export limits []kWh
2026-08-16 07:30:12.612141: Tweak plan optimisation started metric 163.22p, cost 178.55p
2026-08-16 07:30:13.022272: Tweak optimisation finished metric 163.22p, cost 178.55p, metric_keep 0kWh, cycle 19.77kWh, carbon 0kg, import 11.02kWh, changed 8 window(s)
2026-08-16 07:30:13.041892: Swap charge optimisation started metric 163.22p, cost 178.55p, min_improvement_swap 0.1p
2026-08-16 07:30:17.889765: Swap charge optimisation finished metric 163.22p, cost 178.55p
2026-08-16 07:30:17.990283: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 157.95p -> 157.95p, plan now metric 163.33p, cost 178.55p, cycle 19.77kWh, import 11.02kWh
2026-08-16 07:30:18.006304: Raw charge windows [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100% ] reserve 1.12
2026-08-16 07:30:18.007358: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:30:18.007842: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:30:18.008430: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 07:30:00 @ 25.18p 100% ] reserve 1.12
2026-08-16 07:30:18.041747: Previous plan best metric is 163.19 (cost 178.41) and new plan best metric is 163.22 (cost 178.55)
2026-08-16 07:30:18.042127: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:30:18.042384: Plan valid is now true after recompute was False
2026-08-16 07:30:18.067310: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 393.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.73kWh, PV 0.0kWh
2026-08-16 07:30:18.187986: Battery has 11.92 hours left - now at 7.84kWh
2026-08-16 07:30:18.225882: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.51kWh, PV 0.0kWh
2026-08-16 07:30:18.291281: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.51kWh, PV 0.0kWh
2026-08-16 07:30:18.360248: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.73kWh, PV 0.0kWh
2026-08-16 07:30:18.360332: Saving plan best values to HA entities
2026-08-16 07:30:18.516490: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:30:18.523055: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:30:18.529095: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.35kWh, house 1.64kWh, export 0.0kWh, metric 228.39p, metric10 264.43p
2026-08-16 07:30:18.608072: Marginal costs baseline metric (no standing charge): 178.4059
2026-08-16 07:30:18.892211: Marginal energy costs matrix computed: min=12.0 max=34.48
2026-08-16 07:30:18.961410: Rate array import [{'start': 450, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 450, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:30:18.962051: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 07:30:18.962098: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:30:18.962117: - The battery is currently at 49% and is in eco mode for the next 3 and a half hours.
2026-08-16 07:30:18.962132: - For the next 48 hours there will be no solar generation.
2026-08-16 07:30:18.962145: - You will run out of battery in 24 hours.
2026-08-16 07:30:18.962159: - Your next charge slot will be in 3 and a half hours where import rates will be free (0.0p).
2026-08-16 07:30:18.962173: 
2026-08-16 07:30:19.014187: Plan calculation took 15.56 seconds
2026-08-16 07:30:19.014559: Inverter 0: Type SK Sunsynk
2026-08-16 07:30:19.014608: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:30:19.014834: Reserve min: 7%, battery_min: 7%
2026-08-16 07:30:19.014918: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:30:19.015273: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 326W, PV Power 0W
2026-08-16 07:30:19.015507: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:30:19.015638: Inverter 0 scheduled charge enable is False
2026-08-16 07:30:19.015680: Inverter 0 charge windows currently []
2026-08-16 07:30:19.015714: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:30:19.015877: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:30:19.015913: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:30:19.015953: Inverter 0 scheduled discharge enable is False
2026-08-16 07:30:19.016107: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:30:19.016144: Inverter 0 discharge windows currently []
2026-08-16 07:30:19.016165: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:30:19.016200: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:30:19.016231: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:30:19.072424: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:30:19.072667: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:30:19.072768: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:30:19.073109: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:30:19.073238: No export window planned
2026-08-16 07:30:19.073424: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:30:19.073477: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:30:19.073707: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:30:19.073960: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:30:19.074027: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:30:19.074097: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:30:19.074188: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074285: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074343: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074367: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:30:19.074672: Inverter 0 count register writes 0
2026-08-16 07:30:19.100244: Total inverter register writes now 826
2026-08-16 07:30:19.135145: Info: Completed run status Demand
2026-08-16 07:30:19.142221: Info: record_status Demand
2026-08-16 07:30:19.149829: Saved current settings to /config/predbat_config.json
2026-08-16 07:30:19.150227: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:30:57.268579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:30:57.268872: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:30:57.268909: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:30:57.269112: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:30:57.269183: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:30:57.269204: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:30:57.269222: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:33:11.510045: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:33:11.510300: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:33:11.510339: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:33:11.510487: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:33:11.510526: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:33:11.510547: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:33:11.510564: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:35:00.714296: --------------- PredBat - update at 2026-08-16 07:35:00+01:00 with clock skew 0 minutes, minutes now 455
2026-08-16 07:35:00.714967: Saved current settings to /config/predbat_config.json
2026-08-16 07:35:00.715080: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 07:35:00.715172: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:35:00.715301: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:35:00.732512: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:35:00.732621: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:35:00.732833: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:35:00.733375: Cars 1 charging from battery False 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-16 07:35:00.733507: Predbat mode is set to Control charge & discharge
2026-08-16 07:35:00.897348: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:35:00.897498: Using load_power data to fill gaps in load_today data
2026-08-16 07:35:01.619498: Processing 721 30-minute periods for power integration
2026-08-16 07:35:01.778293: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:35:01.779025: Car charging hold False, threshold 6.0kWh
2026-08-16 07:35:01.779104: Current data so far today: load 4.4kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:35:01.791688: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:35:01.792080: Standing charge is set to 49.98p
2026-08-16 07:35:01.813893: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:35:01.813987: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:35:01.814163: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 455.0 minutes
2026-08-16 07:35:01.814477: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 454.8 minutes
2026-08-16 07:35:01.817079: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:35:01.888600: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:35:01.937547: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:35:01.937883: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:35:01.971956: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:35:01.972398: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:35:01.973509: High export rate found rates in range 99p to -99p
2026-08-16 07:35:02.043892: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:35:02.044051: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:35:02.055559: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.37p, rate_forward 1.0p
2026-08-16 07:35:02.055909: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.14p, import 1.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:35:02.099787: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:35:02.099907: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:35:02.163215: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:35:02.184281: Today's load divergence 96.85%, in-day adjustment 87.4%, damping 0.95x, yesterday 82.97% today 97.0% blend 68.4%
2026-08-16 07:35:02.184391: Today's predicted so far 4.97kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.97kWh forecast extra.
2026-08-16 07:35:02.184417: Today's actual load so far 4.49kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:35:02.224571: Inverter 0: Type SK Sunsynk
2026-08-16 07:35:02.225080: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:35:02.225279: Reserve min: 7%, battery_min: 7%
2026-08-16 07:35:02.225344: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:35:02.225569: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 322W, current battery voltage 51.2V, grid power -55W, load power 370W, PV Power 0W
2026-08-16 07:35:02.225709: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:35:02.225804: Inverter 0 scheduled charge enable is False
2026-08-16 07:35:02.225830: Inverter 0 charge windows currently []
2026-08-16 07:35:02.225852: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:35:02.225939: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:35:02.225969: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:35:02.225999: Inverter 0 scheduled discharge enable is False
2026-08-16 07:35:02.226110: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:35:02.226141: Inverter 0 discharge windows currently []
2026-08-16 07:35:02.226160: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:35:02.226176: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:35:02.226189: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:35:02.276217: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:35:02.276337: Plan was last updated on 2026-08-16 07:30:00+01:00 and is now 5.0 minutes old
2026-08-16 07:35:02.276539: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:35:02.276574: Best export window [  ]
2026-08-16 07:35:02.277240: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:35:02.279687: Load divergence over 8.0 hours mean 343.7W, min 213.6W, max 1026.0W, std dev 95.05W, divergence 13.83%
2026-08-16 07:35:02.294636: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:35:02.294773: LoadML is_calculating False
2026-08-16 07:35:02.294833: Creating pool of 12 processes to match your CPU count
2026-08-16 07:35:02.400007: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 394.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.79kWh, PV 0.0kWh
2026-08-16 07:35:02.523379: Battery has 11.83 hours left - now at 7.84kWh
2026-08-16 07:35:02.566463: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.57kWh, PV 0.0kWh
2026-08-16 07:35:02.640352: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.57kWh, PV 0.0kWh
2026-08-16 07:35:02.717649: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 239.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.79kWh, PV 0.0kWh
2026-08-16 07:35:02.717734: Saving plan best values to HA entities
2026-08-16 07:35:02.878346: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:35:02.883964: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:35:02.889695: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.81kWh, house 1.64kWh, export 0.0kWh, metric 239.82p, metric10 274.16p
2026-08-16 07:35:02.959120: Marginal costs baseline metric (no standing charge): 189.833
2026-08-16 07:35:03.226940: Marginal energy costs matrix computed: min=13.84 max=34.61
2026-08-16 07:35:03.296068: Rate array import [{'start': 455, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 455, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:35:03.296651: - Your estimated bill for today is £1.38 and tomorrow is £7.32
2026-08-16 07:35:03.296693: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:35:03.296712: - The battery is currently at 49% and is in eco mode for the next 3 and a half hours.
2026-08-16 07:35:03.296727: - For the next 48 hours there will be no solar generation.
2026-08-16 07:35:03.296740: - You will run out of battery in 24 hours.
2026-08-16 07:35:03.296769: - Your next charge slot will be in 3 and a half hours where import rates will be free (0.0p).
2026-08-16 07:35:03.296786: 
2026-08-16 07:35:03.347934: Plan calculation took 1.07 seconds
2026-08-16 07:35:03.351403: No high rate period found
2026-08-16 07:35:03.404382: Import threshold used for optimisation was 23.43p
2026-08-16 07:35:03.454794: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 94: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 07:35:03.463362: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:35:03.463518: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:35:03.463635: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:35:03.463942: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:35:03.464040: No export window planned
2026-08-16 07:35:03.464153: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:35:03.464213: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:35:03.464346: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:35:03.464558: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:35:03.464624: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:35:03.464691: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:35:03.464807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.464855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.464885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.464915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.464940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.464997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:35:03.465268: Inverter 0 count register writes 0
2026-08-16 07:35:03.480355: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:35:03.485527: Total inverter register writes now 826
2026-08-16 07:35:03.517661: Info: Completed run status Demand
2026-08-16 07:35:03.524201: Info: record_status Demand
2026-08-16 07:35:03.531584: Saved current settings to /config/predbat_config.json
2026-08-16 07:35:03.531930: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:35:41.640744: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:35:41.641065: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:35:41.641111: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:35:41.641278: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:35:41.641321: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:35:41.641343: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:35:41.641361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:36:29.631729: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 07:36:30.632067: Processing 1345 30-minute periods for power integration
2026-08-16 07:36:30.741473: ML Component: Car charging hold False, car energy reported load False
2026-08-16 07:36:30.844522: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:36:30.932612: ML Temperature data points: 49946
2026-08-16 07:36:31.163585: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 07:36:31.202563: ML Component: Data fetch completed, load data age 57.0 days, 16643 data points
2026-08-16 07:36:31.202735: ML Component: No training needed, model age is 0.76 hours
2026-08-16 07:36:31.202802: ML Component: Generating predictions load data age 57.0 days, 16643 data points
2026-08-16 07:36:31.318115: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0339 max_dow {0: 0.09880312496256083, 1: 0.10396562554407864, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.0976194444042941, 6: 0.10672812573947013}
2026-08-16 07:36:38.566615: ML Component: Generated 576 predictions (total 31.15 kWh over 48h)
2026-08-16 07:36:38.600928: ML Component: Prediction cycle completed
2026-08-16 07:36:38.693170: ML Component: Saved 16643 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 07:37:42.399732: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:37:42.400457: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:37:42.400513: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:37:42.400658: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:37:42.400698: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:37:42.400720: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:37:42.400738: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:39:56.638728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:39:56.639035: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:39:56.639127: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:39:56.639394: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:39:56.639441: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:39:56.639464: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:39:56.639481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:40:00.728269: --------------- PredBat - update at 2026-08-16 07:40:00+01:00 with clock skew 0 minutes, minutes now 460
2026-08-16 07:40:00.729038: Saved current settings to /config/predbat_config.json
2026-08-16 07:40:00.729184: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 07:40:00.729263: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:40:00.729347: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:40:00.756304: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:40:00.756504: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:40:00.756687: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:40:00.757303: Cars 1 charging from battery False 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-16 07:40:00.757433: Predbat mode is set to Control charge & discharge
2026-08-16 07:40:00.990313: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:40:00.990540: Using load_power data to fill gaps in load_today data
2026-08-16 07:40:01.808158: Processing 721 30-minute periods for power integration
2026-08-16 07:40:01.969859: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:40:01.970017: Car charging hold False, threshold 6.0kWh
2026-08-16 07:40:01.970063: Current data so far today: load 4.53kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:40:01.982833: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:40:01.983237: Standing charge is set to 49.98p
2026-08-16 07:40:02.013458: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:40:02.013555: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:40:02.013738: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 460.0 minutes
2026-08-16 07:40:02.014124: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 459.8 minutes
2026-08-16 07:40:02.016894: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:40:02.089154: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:40:02.140601: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:40:02.140938: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:40:02.177273: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:40:02.177398: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:40:02.178582: High export rate found rates in range 99p to -99p
2026-08-16 07:40:02.249957: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:40:02.250113: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:40:02.262519: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.37p, rate_forward 1.0p
2026-08-16 07:40:02.262883: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.02p, import 1.02p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:40:02.316330: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:40:02.316506: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:40:02.398095: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:40:02.420447: Today's load divergence 97.48%, in-day adjustment 87.65%, damping 0.95x, yesterday 82.97% today 97.61% blend 68.06%
2026-08-16 07:40:02.420566: Today's predicted so far 4.95kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.95kWh forecast extra.
2026-08-16 07:40:02.420609: Today's actual load so far 4.56kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:40:02.459060: Inverter 0: Type SK Sunsynk
2026-08-16 07:40:02.459158: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:40:02.459412: Reserve min: 7%, battery_min: 7%
2026-08-16 07:40:02.459500: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:40:02.459792: Inverter 0 SoC: 7.8kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 285W, current battery voltage 51.2V, grid power -54W, load power 331W, PV Power 0W
2026-08-16 07:40:02.459958: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:40:02.460078: Inverter 0 scheduled charge enable is False
2026-08-16 07:40:02.460113: Inverter 0 charge windows currently []
2026-08-16 07:40:02.460140: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:40:02.460254: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:40:02.460292: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:40:02.460346: Inverter 0 scheduled discharge enable is False
2026-08-16 07:40:02.460515: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:40:02.460555: Inverter 0 discharge windows currently []
2026-08-16 07:40:02.460579: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:40:02.460597: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:40:02.460615: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:40:02.528270: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:40:02.528392: Plan was last updated on 2026-08-16 07:30:00+01:00 and is now 10.0 minutes old
2026-08-16 07:40:02.528649: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:40:02.528693: Best export window [  ]
2026-08-16 07:40:02.529612: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:40:02.532865: Load divergence over 8.0 hours mean 343.73W, min 222.6W, max 708.0W, std dev 77.01W, divergence 11.2%
2026-08-16 07:40:02.553813: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:40:02.553988: LoadML is_calculating False
2026-08-16 07:40:02.554077: Creating pool of 12 processes to match your CPU count
2026-08-16 07:40:02.702769: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.97kWh, PV 0.0kWh
2026-08-16 07:40:02.850467: Battery has 11.67 hours left - now at 7.8kWh
2026-08-16 07:40:02.898809: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 422.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.75kWh, PV 0.0kWh
2026-08-16 07:40:02.979080: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 285.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.75kWh, PV 0.0kWh
2026-08-16 07:40:03.082986: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.97kWh, PV 0.0kWh
2026-08-16 07:40:03.083089: Saving plan best values to HA entities
2026-08-16 07:40:03.297776: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:40:03.305426: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:40:03.314714: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.31kWh, house 1.65kWh, export 0.0kWh, metric 252.2p, metric10 285.01p
2026-08-16 07:40:03.408338: Marginal costs baseline metric (no standing charge): 202.2186
2026-08-16 07:40:03.699421: Marginal energy costs matrix computed: min=15.73 max=34.71
2026-08-16 07:40:03.789277: Rate array import [{'start': 460, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 460, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:40:03.789933: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 07:40:03.789994: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:40:03.790019: - The battery is currently at 49% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 07:40:03.790038: - For the next 48 hours there will be no solar generation.
2026-08-16 07:40:03.790060: - You will run out of battery in 24 hours.
2026-08-16 07:40:03.790077: - Your next charge slot will be in 3 and a quarter hours where import rates will be free (0.0p).
2026-08-16 07:40:03.790097: 
2026-08-16 07:40:03.849188: Plan calculation took 1.32 seconds
2026-08-16 07:40:03.853921: No high rate period found
2026-08-16 07:40:03.921028: Import threshold used for optimisation was 23.43p
2026-08-16 07:40:04.024133: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 94: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 07:40:04.044238: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:40:04.044455: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:40:04.044621: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:40:04.045015: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:40:04.045128: No export window planned
2026-08-16 07:40:04.045241: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:40:04.045279: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:40:04.045480: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:40:04.045700: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:40:04.045768: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:40:04.045835: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:40:04.045939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046190: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046314: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:04.046473: Inverter 0 count register writes 0
2026-08-16 07:40:04.072058: 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-16 07:40:04.072264: Recompute is saving previous plan...
2026-08-16 07:40:04.075568: Best charge window [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0% ]
2026-08-16 07:40:04.075668: Best export window [  ]
2026-08-16 07:40:04.076523: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:40:04.079612: Load divergence over 8.0 hours mean 343.73W, min 222.6W, max 708.0W, std dev 77.01W, divergence 11.2%
2026-08-16 07:40:04.098360: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:40:04.098495: LoadML is_calculating False
2026-08-16 07:40:04.098567: Creating pool of 12 processes to match your CPU count
2026-08-16 07:40:04.193812: 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(0.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-16 07:40:04.195775: Optimise levels pass started at 2026-08-16 07:40:04
2026-08-16 07:40:04.195843: Optimise all windows, total charge 94 export 1
2026-08-16 07:40:05.590021: >> Region optimisation pass width 960 gives best_metric 523.5p, best_cost 535.8p, best_cycle 44.61kWh, best_import 27.02kWh
2026-08-16 07:40:06.014625: >> Region optimisation pass width 480 gives best_metric 523.5p, best_cost 535.8p, best_cycle 44.61kWh, best_import 27.02kWh
2026-08-16 07:40:06.782299: >> Region optimisation pass width 240 gives best_metric 523.5p, best_cost 535.8p, best_cycle 44.61kWh, best_import 27.02kWh
2026-08-16 07:40:08.058039: >> Region optimisation pass width 120 gives best_metric 523.5p, best_cost 535.8p, best_cycle 44.61kWh, best_import 27.02kWh
2026-08-16 07:40:08.058414: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 54
2026-08-16 07:40:08.058506: Optimise levels pass ended at 2026-08-16 07:40:08, duration 3.9 seconds tried 359 combinations
2026-08-16 07:40:08.058620: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 523.5p, best_keep 0kWh, best_cycle 44.61kWh, best_carbon 0kg, best_import 27.02kWh
2026-08-16 07:40:08.075340: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 07:40:11.778280: Tweak plan optimisation started metric 163.65p, cost 178.99p
2026-08-16 07:40:12.049673: Tweak optimisation finished metric 163.65p, cost 178.99p, metric_keep 0kWh, cycle 19.7kWh, carbon 0kg, import 11.04kWh, changed 8 window(s)
2026-08-16 07:40:12.068683: Swap charge optimisation started metric 163.65p, cost 178.99p, min_improvement_swap 0.1p
2026-08-16 07:40:16.335016: Swap charge optimisation finished metric 163.65p, cost 178.99p
2026-08-16 07:40:16.430872: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 158.39p -> 158.39p, plan now metric 163.77p, cost 178.99p, cycle 19.7kWh, import 11.04kWh
2026-08-16 07:40:16.440541: Raw charge windows [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100% ] reserve 1.12
2026-08-16 07:40:16.441123: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:40:16.441377: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:40:16.441593: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:40:16.471939: Previous plan best metric is 163.64 (cost 178.86) and new plan best metric is 163.65 (cost 178.99)
2026-08-16 07:40:16.472174: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:40:16.472370: Plan valid is now true after recompute was False
2026-08-16 07:40:16.495879: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.84kWh, PV 0.0kWh
2026-08-16 07:40:16.595277: Battery has 11.67 hours left - now at 7.8kWh
2026-08-16 07:40:16.631062: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 419.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:40:16.695623: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.62kWh, PV 0.0kWh
2026-08-16 07:40:16.763667: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.84kWh, PV 0.0kWh
2026-08-16 07:40:16.763753: Saving plan best values to HA entities
2026-08-16 07:40:16.893928: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:40:16.898753: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 07:40:16.903820: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.35kWh, house 1.65kWh, export 0.0kWh, metric 228.85p, metric10 264.87p
2026-08-16 07:40:16.965468: Marginal costs baseline metric (no standing charge): 178.8627
2026-08-16 07:40:17.181333: Marginal energy costs matrix computed: min=15.73 max=34.71
2026-08-16 07:40:17.239628: Rate array import [{'start': 460, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 460, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:40:17.240152: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 07:40:17.240190: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:40:17.240210: - The battery is currently at 49% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 07:40:17.240225: - For the next 48 hours there will be no solar generation.
2026-08-16 07:40:17.240239: - You will run out of battery in 24 hours.
2026-08-16 07:40:17.240253: - Your next charge slot will be in 3 and a quarter hours where import rates will be free (0.0p).
2026-08-16 07:40:17.240270: 
2026-08-16 07:40:17.288570: Plan calculation took 13.22 seconds
2026-08-16 07:40:17.288911: Inverter 0: Type SK Sunsynk
2026-08-16 07:40:17.288986: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:40:17.289201: Reserve min: 7%, battery_min: 7%
2026-08-16 07:40:17.289267: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:40:17.289590: Inverter 0 SoC: 7.8kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 285W, current battery voltage 51.2V, grid power -54W, load power 331W, PV Power 0W
2026-08-16 07:40:17.289802: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:40:17.289892: Inverter 0 scheduled charge enable is False
2026-08-16 07:40:17.289926: Inverter 0 charge windows currently []
2026-08-16 07:40:17.289951: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:40:17.290060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:40:17.290093: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:40:17.290124: Inverter 0 scheduled discharge enable is False
2026-08-16 07:40:17.290233: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:40:17.290266: Inverter 0 discharge windows currently []
2026-08-16 07:40:17.290287: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:40:17.290306: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:40:17.290322: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:40:17.344058: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:40:17.344192: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:40:17.344254: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:40:17.344461: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:40:17.344534: No export window planned
2026-08-16 07:40:17.344625: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:40:17.344655: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:40:17.344800: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:40:17.344997: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:40:17.345052: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:40:17.345106: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:40:17.345190: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345222: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345270: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345296: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:40:17.345537: Inverter 0 count register writes 0
2026-08-16 07:40:17.369656: Total inverter register writes now 826
2026-08-16 07:40:17.410093: Info: Completed run status Demand
2026-08-16 07:40:17.417071: Info: record_status Demand
2026-08-16 07:40:17.424006: Saved current settings to /config/predbat_config.json
2026-08-16 07:40:17.424290: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:40:56.537206: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:40:56.537566: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:40:56.537619: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:40:56.537806: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:40:56.537847: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:40:56.537868: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:40:56.537886: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:42:56.751408: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:42:56.751682: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:42:56.751753: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:42:56.751914: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:42:56.751954: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:42:56.751975: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:42:56.751992: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:44:56.983121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:44:56.983413: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:44:56.983474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:44:56.983607: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:44:56.983646: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:44:56.983667: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:44:56.983685: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:45:00.069927: --------------- PredBat - update at 2026-08-16 07:45:00+01:00 with clock skew 0 minutes, minutes now 465
2026-08-16 07:45:00.071688: Saved current settings to /config/predbat_config.json
2026-08-16 07:45:00.071858: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 07:45:00.071950: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:45:00.072038: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:45:00.092189: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:45:00.092331: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:45:00.092574: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:45:00.093262: Cars 1 charging from battery False 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-16 07:45:00.093435: Predbat mode is set to Control charge & discharge
2026-08-16 07:45:00.294869: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:45:00.295031: Using load_power data to fill gaps in load_today data
2026-08-16 07:45:01.080610: Processing 721 30-minute periods for power integration
2026-08-16 07:45:01.236857: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:45:01.236995: Car charging hold False, threshold 6.0kWh
2026-08-16 07:45:01.237038: Current data so far today: load 4.55kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:45:01.249238: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:45:01.249547: Standing charge is set to 49.98p
2026-08-16 07:45:01.271263: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:45:01.271352: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:45:01.271529: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 464.9 minutes
2026-08-16 07:45:01.271899: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 464.8 minutes
2026-08-16 07:45:01.274821: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:45:01.343551: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:45:01.393244: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:45:01.393672: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:45:01.427758: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:45:01.427881: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:45:01.429068: High export rate found rates in range 99p to -99p
2026-08-16 07:45:01.498415: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:45:01.498533: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:45:01.511551: Battery level now 7.8kWh, -1hr ago 8.16kWh, at midnight 12.21kWh, battery value change in the last hour -0.36p, change today -4.41p, rate_forward 1.0p
2026-08-16 07:45:01.511925: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.9p, import 0.9p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:45:01.568008: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:45:01.568146: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:45:01.637119: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:45:01.660902: Today's load divergence 97.26%, in-day adjustment 87.63%, damping 0.95x, yesterday 82.97% today 97.4% blend 67.71%
2026-08-16 07:45:01.661027: Today's predicted so far 4.93kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.93kWh forecast extra.
2026-08-16 07:45:01.661083: Today's actual load so far 4.51kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:45:01.693786: Inverter 0: Type SK Sunsynk
2026-08-16 07:45:01.693864: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:45:01.694017: Reserve min: 7%, battery_min: 7%
2026-08-16 07:45:01.694067: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:45:01.694320: Inverter 0 SoC: 7.8kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 325W, current battery voltage 51.2V, grid power -54W, load power 371W, PV Power 0W
2026-08-16 07:45:01.694454: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:45:01.694527: Inverter 0 scheduled charge enable is False
2026-08-16 07:45:01.694551: Inverter 0 charge windows currently []
2026-08-16 07:45:01.694572: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:45:01.694656: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:45:01.694732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:45:01.694763: Inverter 0 scheduled discharge enable is False
2026-08-16 07:45:01.694867: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:45:01.694922: Inverter 0 discharge windows currently []
2026-08-16 07:45:01.694940: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:45:01.694956: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:45:01.694970: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:45:01.747726: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:45:01.747832: Plan was last updated on 2026-08-16 07:40:00+01:00 and is now 5.0 minutes old
2026-08-16 07:45:01.748083: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:45:01.748126: Best export window [  ]
2026-08-16 07:45:01.748996: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:45:01.752085: Load divergence over 8.0 hours mean 343.77W, min 244.8W, max 864.0W, std dev 89.34W, divergence 12.99%
2026-08-16 07:45:01.770325: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:45:01.770432: LoadML is_calculating False
2026-08-16 07:45:01.770492: Creating pool of 12 processes to match your CPU count
2026-08-16 07:45:01.884580: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 394.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.9kWh, PV 0.0kWh
2026-08-16 07:45:02.024391: Battery has 11.67 hours left - now at 7.8kWh
2026-08-16 07:45:02.067614: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.68kWh, PV 0.0kWh
2026-08-16 07:45:02.145471: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.68kWh, PV 0.0kWh
2026-08-16 07:45:02.221141: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 239.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.9kWh, PV 0.0kWh
2026-08-16 07:45:02.221243: Saving plan best values to HA entities
2026-08-16 07:45:02.393035: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:45:02.398783: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:45:02.404108: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.81kWh, house 1.65kWh, export 0.0kWh, metric 239.81p, metric10 274.0p
2026-08-16 07:45:02.474666: Marginal costs baseline metric (no standing charge): 189.8258
2026-08-16 07:45:02.704465: Marginal energy costs matrix computed: min=17.41 max=34.76
2026-08-16 07:45:02.773236: Rate array import [{'start': 465, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 465, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:45:02.773799: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 07:45:02.773842: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:45:02.773878: - The battery is currently at 49% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 07:45:02.773895: - For the next 48 hours there will be no solar generation.
2026-08-16 07:45:02.773909: - You will run out of battery in 24 hours.
2026-08-16 07:45:02.773923: - Your next charge slot will be in 3 and a quarter hours where import rates will be free (0.0p).
2026-08-16 07:45:02.773937: 
2026-08-16 07:45:02.827819: Plan calculation took 1.08 seconds
2026-08-16 07:45:02.831347: No high rate period found
2026-08-16 07:45:02.879253: Import threshold used for optimisation was 23.43p
2026-08-16 07:45:02.927673: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 94: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 07:45:02.934400: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 49%, target 100%
2026-08-16 07:45:02.934537: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:45:02.934656: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:45:02.934926: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:45:02.935023: No export window planned
2026-08-16 07:45:02.935143: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:45:02.935197: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:45:02.935341: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:45:02.935530: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:45:02.935593: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:45:02.935664: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:45:02.935765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935810: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.935971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:45:02.936276: Inverter 0 count register writes 0
2026-08-16 07:45:02.951244: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:45:02.956339: Total inverter register writes now 826
2026-08-16 07:45:02.989105: Info: Completed run status Demand
2026-08-16 07:45:02.996629: Info: record_status Demand
2026-08-16 07:45:03.005553: Saved current settings to /config/predbat_config.json
2026-08-16 07:45:03.006042: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:45:42.108452: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:45:42.108679: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:45:42.108744: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:45:42.108994: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:45:42.109044: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:45:42.109064: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:45:42.109079: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:47:42.329828: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:47:42.330101: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:47:42.330144: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:47:42.330318: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:47:42.330388: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:47:42.330409: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:47:42.330426: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:49:56.579176: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:49:56.579447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:49:56.579496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:49:56.579647: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:49:56.579707: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:49:56.579751: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:49:56.579769: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:50:00.665279: --------------- PredBat - update at 2026-08-16 07:50:00+01:00 with clock skew 0 minutes, minutes now 470
2026-08-16 07:50:00.666178: Saved current settings to /config/predbat_config.json
2026-08-16 07:50:00.666299: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 07:50:00.666466: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:50:00.666570: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:50:00.685860: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:50:00.685994: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:50:00.686182: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:50:00.686739: Cars 1 charging from battery False 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-16 07:50:00.686887: Predbat mode is set to Control charge & discharge
2026-08-16 07:50:00.892512: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:50:00.893054: Using load_power data to fill gaps in load_today data
2026-08-16 07:50:01.763975: Processing 721 30-minute periods for power integration
2026-08-16 07:50:01.947888: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:50:01.948026: Car charging hold False, threshold 6.0kWh
2026-08-16 07:50:01.948073: Current data so far today: load 4.5kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:50:01.963030: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:50:01.963448: Standing charge is set to 49.98p
2026-08-16 07:50:01.990531: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:50:01.990640: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:50:01.990845: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 470.0 minutes
2026-08-16 07:50:01.991222: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 469.8 minutes
2026-08-16 07:50:01.994163: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:50:02.079885: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:50:02.141089: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:50:02.141503: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:50:02.184804: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:50:02.184943: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:50:02.186207: High export rate found rates in range 99p to -99p
2026-08-16 07:50:02.279995: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:50:02.280145: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:50:02.295306: Battery level now 7.8kWh, -1hr ago 8.16kWh, at midnight 12.21kWh, battery value change in the last hour -0.36p, change today -4.41p, rate_forward 1.0p
2026-08-16 07:50:02.295774: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.79p, import 0.79p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:50:02.352674: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:50:02.352870: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:50:02.431834: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:50:02.465259: Today's load divergence 96.84%, in-day adjustment 87.55%, damping 0.95x, yesterday 82.97% today 97.0% blend 67.36%
2026-08-16 07:50:02.465387: Today's predicted so far 4.95kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.95kWh forecast extra.
2026-08-16 07:50:02.465467: Today's actual load so far 4.47kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:50:02.518569: Inverter 0: Type SK Sunsynk
2026-08-16 07:50:02.518673: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:50:02.518927: Reserve min: 7%, battery_min: 7%
2026-08-16 07:50:02.519069: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:50:02.519597: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 269W, current battery voltage 51.2V, grid power -55W, load power 320W, PV Power 0W
2026-08-16 07:50:02.519887: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:50:02.520050: Inverter 0 scheduled charge enable is False
2026-08-16 07:50:02.520098: Inverter 0 charge windows currently []
2026-08-16 07:50:02.520129: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:50:02.520311: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:50:02.520426: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:50:02.520634: Inverter 0 scheduled discharge enable is False
2026-08-16 07:50:02.520861: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:50:02.521356: Inverter 0 discharge windows currently []
2026-08-16 07:50:02.521754: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:50:02.521781: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:50:02.521804: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:50:02.591569: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:50:02.591681: Plan was last updated on 2026-08-16 07:40:00+01:00 and is now 10.0 minutes old
2026-08-16 07:50:02.591953: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:50:02.591997: Best export window [  ]
2026-08-16 07:50:02.592896: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:50:02.596176: Load divergence over 8.0 hours mean 343.71W, min 244.2W, max 891.6W, std dev 88.73W, divergence 12.91%
2026-08-16 07:50:02.614633: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:50:02.614743: LoadML is_calculating False
2026-08-16 07:50:02.614806: Creating pool of 12 processes to match your CPU count
2026-08-16 07:50:02.736021: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 398.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.86kWh, PV 0.0kWh
2026-08-16 07:50:02.876010: Battery has 11.42 hours left - now at 7.68kWh
2026-08-16 07:50:02.921248: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 423.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.64kWh, PV 0.0kWh
2026-08-16 07:50:03.009750: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 285.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.64kWh, PV 0.0kWh
2026-08-16 07:50:03.095581: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.86kWh, PV 0.0kWh
2026-08-16 07:50:03.095682: Saving plan best values to HA entities
2026-08-16 07:50:03.262888: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:50:03.268443: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:50:03.273959: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.35kWh, house 1.63kWh, export 0.0kWh, metric 252.56p, metric10 285.42p
2026-08-16 07:50:03.347978: Marginal costs baseline metric (no standing charge): 202.5793
2026-08-16 07:50:03.613209: Marginal energy costs matrix computed: min=19.64 max=34.83
2026-08-16 07:50:03.693023: Rate array import [{'start': 470, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 470, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:50:03.693714: - Your estimated bill for today is £1.39 and tomorrow is £7.35
2026-08-16 07:50:03.693764: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:50:03.693787: - The battery is currently at 48% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 07:50:03.693805: - For the next 48 hours there will be no solar generation.
2026-08-16 07:50:03.693823: - You will run out of battery in 24 hours.
2026-08-16 07:50:03.693839: - Your next charge slot will be in 3 and a quarter hours where import rates will be free (0.0p).
2026-08-16 07:50:03.693856: 
2026-08-16 07:50:03.749249: Plan calculation took 1.16 seconds
2026-08-16 07:50:03.752600: No high rate period found
2026-08-16 07:50:03.805137: Import threshold used for optimisation was 23.43p
2026-08-16 07:50:03.862459: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 94: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 07:50:03.869041: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 07:50:03.869177: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:50:03.869297: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:50:03.869586: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:50:03.869685: No export window planned
2026-08-16 07:50:03.869806: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:50:03.869844: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:50:03.869981: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:50:03.870173: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:50:03.870237: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:50:03.870306: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:50:03.870429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870480: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870510: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870542: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870595: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870805: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:03.870909: Inverter 0 count register writes 0
2026-08-16 07:50:03.885434: 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-16 07:50:03.885642: Recompute is saving previous plan...
2026-08-16 07:50:03.888206: Best charge window [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0% ]
2026-08-16 07:50:03.888272: Best export window [  ]
2026-08-16 07:50:03.888938: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:50:03.891533: Load divergence over 8.0 hours mean 343.71W, min 244.2W, max 891.6W, std dev 88.73W, divergence 12.91%
2026-08-16 07:50:03.905642: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:50:03.905737: LoadML is_calculating False
2026-08-16 07:50:03.905797: Creating pool of 12 processes to match your CPU count
2026-08-16 07:50:03.990790: 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(0.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-16 07:50:03.992836: Optimise levels pass started at 2026-08-16 07:50:03
2026-08-16 07:50:03.993014: Optimise all windows, total charge 94 export 1
2026-08-16 07:50:04.893883: >> Region optimisation pass width 960 gives best_metric 526.11p, best_cost 538.34p, best_cycle 42.78kWh, best_import 26.99kWh
2026-08-16 07:50:05.246212: >> Region optimisation pass width 480 gives best_metric 526.11p, best_cost 538.34p, best_cycle 42.78kWh, best_import 26.99kWh
2026-08-16 07:50:05.743790: >> Region optimisation pass width 240 gives best_metric 526.11p, best_cost 538.34p, best_cycle 42.78kWh, best_import 26.99kWh
2026-08-16 07:50:07.053030: >> Region optimisation pass width 120 gives best_metric 525.67p, best_cost 537.97p, best_cycle 44.09kWh, best_import 27.08kWh
2026-08-16 07:50:07.053848: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 54
2026-08-16 07:50:07.054005: Optimise levels pass ended at 2026-08-16 07:50:07, duration 3.1 seconds tried 346 combinations
2026-08-16 07:50:07.054245: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 525.67p, best_keep 0kWh, best_cycle 44.09kWh, best_carbon 0kg, best_import 27.08kWh
2026-08-16 07:50:07.076252: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 12.0, 16.0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 07:50:11.758500: Tweak plan optimisation started metric 163.99p, cost 179.33p
2026-08-16 07:50:12.062618: Tweak optimisation finished metric 163.99p, cost 179.33p, metric_keep 0kWh, cycle 20.34kWh, carbon 0kg, import 11.11kWh, changed 8 window(s)
2026-08-16 07:50:12.082498: Swap charge optimisation started metric 163.99p, cost 179.33p, min_improvement_swap 0.1p
2026-08-16 07:50:17.307083: Swap charge optimisation finished metric 163.99p, cost 179.33p
2026-08-16 07:50:17.414654: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 158.73p -> 158.73p, plan now metric 164.12p, cost 179.33p, cycle 20.34kWh, import 11.11kWh
2026-08-16 07:50:17.424569: Raw charge windows [ 16-08 07:30:00 - 16-08 08:00:00 @ 24.94p 0%, 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100% ] reserve 1.12
2026-08-16 07:50:17.425144: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:50:17.425441: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:50:17.425656: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 07:50:17.458547: Previous plan best metric is 163.95 (cost 179.16) and new plan best metric is 163.99 (cost 179.33)
2026-08-16 07:50:17.458808: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 07:50:17.459069: Plan valid is now true after recompute was False
2026-08-16 07:50:17.483068: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 395.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.73kWh, PV 0.0kWh
2026-08-16 07:50:17.599402: Battery has 11.42 hours left - now at 7.68kWh
2026-08-16 07:50:17.644937: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 420.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.5kWh, PV 0.0kWh
2026-08-16 07:50:17.719470: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 265.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 21.5kWh, PV 0.0kWh
2026-08-16 07:50:17.795879: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 229.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.73kWh, PV 0.0kWh
2026-08-16 07:50:17.795972: Saving plan best values to HA entities
2026-08-16 07:50:17.941563: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:50:17.947464: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:50:17.953334: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.39kWh, house 1.63kWh, export 0.0kWh, metric 229.14p, metric10 265.21p
2026-08-16 07:50:18.019765: Marginal costs baseline metric (no standing charge): 179.1579
2026-08-16 07:50:18.266670: Marginal energy costs matrix computed: min=19.64 max=34.83
2026-08-16 07:50:18.337575: Rate array import [{'start': 470, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 470, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:50:18.338215: - Your estimated bill for today is £1.39 and tomorrow is £7.35
2026-08-16 07:50:18.338267: - Import rates are expensive (24.1p - 25.5p) for the next 3 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:50:18.338289: - The battery is currently at 48% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 07:50:18.338307: - For the next 48 hours there will be no solar generation.
2026-08-16 07:50:18.338325: - You will run out of battery in 24 hours.
2026-08-16 07:50:18.338380: - Your next charge slot will be in 3 and a quarter hours where import rates will be free (0.0p).
2026-08-16 07:50:18.338421: 
2026-08-16 07:50:18.395054: Plan calculation took 14.51 seconds
2026-08-16 07:50:18.395515: Inverter 0: Type SK Sunsynk
2026-08-16 07:50:18.395573: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:50:18.395841: Reserve min: 7%, battery_min: 7%
2026-08-16 07:50:18.395953: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:50:18.396360: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -55W, load power 321W, PV Power 0W
2026-08-16 07:50:18.396665: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:50:18.396808: Inverter 0 scheduled charge enable is False
2026-08-16 07:50:18.396855: Inverter 0 charge windows currently []
2026-08-16 07:50:18.396901: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:50:18.397099: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:50:18.397147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:50:18.397200: Inverter 0 scheduled discharge enable is False
2026-08-16 07:50:18.397406: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:50:18.397450: Inverter 0 discharge windows currently []
2026-08-16 07:50:18.397479: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:50:18.397522: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:50:18.397559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:50:18.452751: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 07:50:18.452923: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:50:18.453030: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:50:18.453259: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:50:18.453392: No export window planned
2026-08-16 07:50:18.453510: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:50:18.453576: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:50:18.453716: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:50:18.453913: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:50:18.453974: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:50:18.454035: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:50:18.454159: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454258: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454307: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:50:18.454633: Inverter 0 count register writes 0
2026-08-16 07:50:18.475406: Total inverter register writes now 826
2026-08-16 07:50:18.506827: Info: Completed run status Demand
2026-08-16 07:50:18.513259: Info: record_status Demand
2026-08-16 07:50:18.520281: Saved current settings to /config/predbat_config.json
2026-08-16 07:50:18.520681: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:50:56.635508: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:50:56.635761: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:50:56.635798: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:50:56.635985: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:50:56.636138: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:50:56.636176: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:50:56.636196: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:52:56.876664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:52:56.876901: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:52:56.876982: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:52:56.877198: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:52:56.877238: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:52:56.877260: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:52:56.877293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:54:57.097268: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:54:57.097511: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:54:57.097702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:54:57.097939: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:54:57.097983: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:54:57.098005: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:54:57.098022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:55:00.183401: --------------- PredBat - update at 2026-08-16 07:55:00+01:00 with clock skew 0 minutes, minutes now 475
2026-08-16 07:55:00.184250: Saved current settings to /config/predbat_config.json
2026-08-16 07:55:00.184444: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 07:55:00.184586: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 07:55:00.184680: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 07:55:00.203800: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 07:55:00.203930: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 07:55:00.204094: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 07:55:00.204631: Cars 1 charging from battery False 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-16 07:55:00.204806: Predbat mode is set to Control charge & discharge
2026-08-16 07:55:00.409770: Found 21602 load_today datapoints going back 28 days
2026-08-16 07:55:00.409934: Using load_power data to fill gaps in load_today data
2026-08-16 07:55:01.276901: Processing 721 30-minute periods for power integration
2026-08-16 07:55:01.468341: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 07:55:01.468555: Car charging hold False, threshold 6.0kWh
2026-08-16 07:55:01.468638: Current data so far today: load 4.5kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 07:55:01.483731: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 07:55:01.484400: Standing charge is set to 49.98p
2026-08-16 07:55:01.511543: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 07:55:01.511713: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 07:55:01.512033: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 474.9 minutes
2026-08-16 07:55:01.512511: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 474.8 minutes
2026-08-16 07:55:01.515712: Loaded 47 datapoints of futurerate analysis
2026-08-16 07:55:01.601925: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 07:55:01.663492: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 07:55:01.664059: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 07:55:01.708780: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 07:55:01.708968: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 07:55:01.710354: High export rate found rates in range 99p to -99p
2026-08-16 07:55:01.799943: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 07:55:01.800093: Car 0 charging is not planned as it is not plugged in
2026-08-16 07:55:01.814669: Battery level now 7.68kWh, -1hr ago 8.02kWh, at midnight 12.21kWh, battery value change in the last hour -0.34p, change today -4.53p, rate_forward 1.0p
2026-08-16 07:55:01.815057: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.67p, import 0.67p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 07:55:01.871435: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 07:55:01.871618: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 07:55:01.951318: Using weighted-bucket historical load forecast over 14 days
2026-08-16 07:55:01.977897: Today's load divergence 96.76%, in-day adjustment 87.57%, damping 0.95x, yesterday 82.97% today 96.92% blend 67.01%
2026-08-16 07:55:01.977995: Today's predicted so far 4.97kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 4.97kWh forecast extra.
2026-08-16 07:55:01.978027: Today's actual load so far 4.48kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 07:55:02.016512: Inverter 0: Type SK Sunsynk
2026-08-16 07:55:02.016622: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 07:55:02.016892: Reserve min: 7%, battery_min: 7%
2026-08-16 07:55:02.017034: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 07:55:02.017465: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 316W, current battery voltage 51.2V, grid power -55W, load power 366W, PV Power 0W
2026-08-16 07:55:02.017726: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:55:02.017881: Inverter 0 scheduled charge enable is False
2026-08-16 07:55:02.017946: Inverter 0 charge windows currently []
2026-08-16 07:55:02.018013: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 07:55:02.018187: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:55:02.018233: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:55:02.018292: Inverter 0 scheduled discharge enable is False
2026-08-16 07:55:02.018538: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:55:02.018589: Inverter 0 discharge windows currently []
2026-08-16 07:55:02.018620: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:55:02.018664: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:55:02.018687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:55:02.083272: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 07:55:02.083386: Plan was last updated on 2026-08-16 07:50:00+01:00 and is now 5.0 minutes old
2026-08-16 07:55:02.083671: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 07:55:02.083717: Best export window [  ]
2026-08-16 07:55:02.084533: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 07:55:02.087975: Load divergence over 8.0 hours mean 343.72W, min 240.6W, max 912.0W, std dev 88.92W, divergence 12.93%
2026-08-16 07:55:02.106708: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 07:55:02.106824: LoadML is_calculating False
2026-08-16 07:55:02.106888: Creating pool of 12 processes to match your CPU count
2026-08-16 07:55:02.234041: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 395.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.76kWh, PV 0.0kWh
2026-08-16 07:55:02.372754: Battery has 11.42 hours left - now at 7.68kWh
2026-08-16 07:55:02.420656: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 420.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.53kWh, PV 0.0kWh
2026-08-16 07:55:02.510380: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.53kWh, PV 0.0kWh
2026-08-16 07:55:02.601620: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.76kWh, PV 0.0kWh
2026-08-16 07:55:02.601723: Saving plan best values to HA entities
2026-08-16 07:55:02.775391: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 07:55:02.781146: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 07:55:02.787382: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.85kWh, house 1.63kWh, export 0.0kWh, metric 240.39p, metric10 274.62p
2026-08-16 07:55:02.873781: Marginal costs baseline metric (no standing charge): 190.4049
2026-08-16 07:55:03.148790: Marginal energy costs matrix computed: min=21.32 max=34.89
2026-08-16 07:55:03.225864: Rate array import [{'start': 475, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 475, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 07:55:03.226654: - Your estimated bill for today is £1.38 and tomorrow is £7.36
2026-08-16 07:55:03.226717: - Import rates are expensive (24.1p - 25.5p) for the next 3 hours and then free (0.0p) for the next 1 hour.
2026-08-16 07:55:03.226742: - The battery is currently at 48% and is in eco mode for the next 3 hours.
2026-08-16 07:55:03.226767: - For the next 48 hours there will be no solar generation.
2026-08-16 07:55:03.226803: - You will run out of battery in 23 hours.
2026-08-16 07:55:03.226849: - Your next charge slot will be in 3 hours where import rates will be free (0.0p).
2026-08-16 07:55:03.226886: 
2026-08-16 07:55:03.281354: Plan calculation took 1.20 seconds
2026-08-16 07:55:03.284891: No high rate period found
2026-08-16 07:55:03.348620: Import threshold used for optimisation was 24.06p
2026-08-16 07:55:03.423032: Low import rate windows [0: 08-16 07:30:00 - 08-16 08:00:00 @ 24.94, 1: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 2: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 3: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 4: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 5: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 6: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 7: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 8: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 9: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 10: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 11: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 12: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 13: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 14: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 15: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 16: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 17: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 18: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 19: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 20: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 21: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 22: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 23: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 24: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 25: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 26: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 27: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 28: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 29: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 30: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 31: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 32: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 33: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 34: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 35: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 36: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 37: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 38: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 39: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 40: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 41: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 42: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 43: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 44: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 45: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 46: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 47: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 48: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 49: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 50: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 51: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 52: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 53: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 54: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 55: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 56: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 57: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 58: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 59: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 60: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 61: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 62: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 63: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 64: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 65: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 66: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 67: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 68: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 69: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 70: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 71: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 72: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 73: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 74: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 75: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 76: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 77: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 78: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 79: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 80: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 81: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 82: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 83: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 84: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 85: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 86: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 87: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 88: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 89: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 90: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 91: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 92: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 93: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 94: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 07:55:03.431484: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 07:55:03.431653: Inverter 0 disabled charge window while waiting for schedule (now 08-16 07:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 07:55:03.431785: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:55:03.432054: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:55:03.432156: No export window planned
2026-08-16 07:55:03.432282: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 07:55:03.432318: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 07:55:03.432454: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 07:55:03.432664: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 07:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 07:55:03.432729: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 07:55:03.432795: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 07:55:03.432892: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.432937: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433095: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433145: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433169: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433245: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 07:55:03.433467: Inverter 0 count register writes 0
2026-08-16 07:55:03.450476: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 07:55:03.455868: Total inverter register writes now 826
2026-08-16 07:55:03.491058: Info: Completed run status Demand
2026-08-16 07:55:03.497583: Info: record_status Demand
2026-08-16 07:55:03.504747: Saved current settings to /config/predbat_config.json
2026-08-16 07:55:03.505154: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 07:55:41.621862: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:55:41.622082: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:55:41.622129: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:55:41.622279: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:55:41.622322: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:55:41.622340: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:55:41.622355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:57:41.840005: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:57:41.840262: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:57:41.840305: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:57:41.840458: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:57:41.840497: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:57:41.840518: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:57:41.840536: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:59:42.068096: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 07:59:42.068413: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 07:59:42.068470: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 07:59:42.068662: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 07:59:42.068730: Note: Inverter does not support discharge freeze - disabled
2026-08-16 07:59:42.068771: Note: Inverter does not support charge freeze - disabled
2026-08-16 07:59:42.068807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 07:59:50.613432: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 07:59:50.770503: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 08:00:00.183361: --------------- PredBat - update at 2026-08-16 08:00:00+01:00 with clock skew 0 minutes, minutes now 480
2026-08-16 08:00:00.184139: Saved current settings to /config/predbat_config.json
2026-08-16 08:00:00.184273: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 08:00:00.184442: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:00:00.184544: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:00:00.204836: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:00:00.204999: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:00:00.205212: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:00:00.205784: Cars 1 charging from battery False 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-16 08:00:00.205906: Predbat mode is set to Control charge & discharge
2026-08-16 08:00:00.413167: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:00:00.413324: Using load_power data to fill gaps in load_today data
2026-08-16 08:00:01.373934: Processing 721 30-minute periods for power integration
2026-08-16 08:00:01.572667: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:00:01.572826: Car charging hold False, threshold 6.0kWh
2026-08-16 08:00:01.572895: Current data so far today: load 4.62kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:00:01.587958: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:00:01.588513: Standing charge is set to 49.98p
2026-08-16 08:00:01.621538: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:00:01.621648: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:00:01.621884: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 479.9 minutes
2026-08-16 08:00:01.622286: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 479.8 minutes
2026-08-16 08:00:01.625350: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:00:01.710544: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:00:01.772878: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:00:01.773508: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:00:01.817863: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:00:01.817998: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:00:01.819204: High export rate found rates in range 99p to -99p
2026-08-16 08:00:01.906611: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:00:01.906764: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:00:01.919730: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.53p, rate_forward 1.0p
2026-08-16 08:00:01.920108: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.55p, import 0.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:00:01.979853: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:00:01.980024: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:00:02.051802: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:00:02.075811: Today's load divergence 97.11%, in-day adjustment 87.73%, damping 0.95x, yesterday 82.97% today 97.25% blend 66.67%
2026-08-16 08:00:02.075907: Today's predicted so far 5.09kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.09kWh forecast extra.
2026-08-16 08:00:02.075935: Today's actual load so far 4.65kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:00:02.114485: Inverter 0: Type SK Sunsynk
2026-08-16 08:00:02.114585: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:00:02.114798: Reserve min: 7%, battery_min: 7%
2026-08-16 08:00:02.114880: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:00:02.115152: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-16 08:00:02.115313: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:00:02.115404: Inverter 0 scheduled charge enable is False
2026-08-16 08:00:02.115435: Inverter 0 charge windows currently []
2026-08-16 08:00:02.115461: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:00:02.115575: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:00:02.115611: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:00:02.115648: Inverter 0 scheduled discharge enable is False
2026-08-16 08:00:02.115798: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:00:02.115837: Inverter 0 discharge windows currently []
2026-08-16 08:00:02.115860: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:00:02.115880: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:00:02.115897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:00:02.185904: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:00:02.186015: Plan was last updated on 2026-08-16 07:50:00+01:00 and is now 10.0 minutes old
2026-08-16 08:00:02.186269: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:00:02.186313: Best export window [  ]
2026-08-16 08:00:02.187187: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:00:02.190474: Load divergence over 8.0 hours mean 343.74W, min 223.8W, max 1097.4W, std dev 98.1W, divergence 14.27%
2026-08-16 08:00:02.210240: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:00:02.210392: LoadML is_calculating False
2026-08-16 08:00:02.210464: Creating pool of 12 processes to match your CPU count
2026-08-16 08:00:02.332444: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.95kWh, PV 0.0kWh
2026-08-16 08:00:02.493979: Battery has 11.42 hours left - now at 7.68kWh
2026-08-16 08:00:02.544914: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 421.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.72kWh, PV 0.0kWh
2026-08-16 08:00:02.652262: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.72kWh, PV 0.0kWh
2026-08-16 08:00:02.740411: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.95kWh, PV 0.0kWh
2026-08-16 08:00:02.740537: Saving plan best values to HA entities
2026-08-16 08:00:02.936349: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:00:02.941228: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:00:02.946408: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.29kWh, house 1.66kWh, export 0.0kWh, metric 251.84p, metric10 284.48p
2026-08-16 08:00:03.023860: Marginal costs baseline metric (no standing charge): 201.8538
2026-08-16 08:00:03.250016: Marginal energy costs matrix computed: min=21.53 max=34.96
2026-08-16 08:00:03.334878: Rate array import [{'start': 480, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 480, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:00:03.335559: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 08:00:03.335612: - Import rates are expensive (24.1p - 25.5p) for the next 3 hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:00:03.335635: - The battery is currently at 48% and is in eco mode for the next 3 hours.
2026-08-16 08:00:03.335654: - For the next 48 hours there will be no solar generation.
2026-08-16 08:00:03.335670: - You will run out of battery in 23 hours.
2026-08-16 08:00:03.335693: - Your next charge slot will be in 3 hours where import rates will be free (0.0p).
2026-08-16 08:00:03.335726: 
2026-08-16 08:00:03.393541: Plan calculation took 1.21 seconds
2026-08-16 08:00:03.396915: No high rate period found
2026-08-16 08:00:03.457128: Import threshold used for optimisation was 24.06p
2026-08-16 08:00:03.522542: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94]
2026-08-16 08:00:03.529875: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 08:00:03.530013: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:00:03.530123: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:00:03.530341: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:00:03.530425: No export window planned
2026-08-16 08:00:03.530524: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:00:03.530555: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:00:03.530669: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:00:03.530843: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:00:03.530899: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:00:03.530952: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:00:03.531040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531168: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531188: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531207: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531291: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:03.531416: Inverter 0 count register writes 0
2026-08-16 08:00:03.548846: 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-16 08:00:03.549081: Recompute is saving previous plan...
2026-08-16 08:00:03.551587: Best charge window [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0% ]
2026-08-16 08:00:03.551656: Best export window [  ]
2026-08-16 08:00:03.552314: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:00:03.554833: Load divergence over 8.0 hours mean 343.74W, min 223.8W, max 1097.4W, std dev 98.1W, divergence 14.27%
2026-08-16 08:00:03.573002: Calculating data from yesterday for savings calculation
2026-08-16 08:00:03.584785: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 08:00:03.629983: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 08:00:03.644637: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 08:00:03.666113: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 08:00:03.697229: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 08:00:03.758376: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 08:00:03.758523: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 08:00:03.770175: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:00:03.770319: LoadML is_calculating False
2026-08-16 08:00:03.770415: Creating pool of 12 processes to match your CPU count
2026-08-16 08:00:03.873711: 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(0.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-16 08:00:03.875813: Optimise levels pass started at 2026-08-16 08:00:03
2026-08-16 08:00:03.875873: Optimise all windows, total charge 94 export 1
2026-08-16 08:00:05.421122: >> Region optimisation pass width 960 gives best_metric 527.06p, best_cost 539.34p, best_cycle 44.47kWh, best_import 27.16kWh
2026-08-16 08:00:05.845276: >> Region optimisation pass width 480 gives best_metric 527.06p, best_cost 539.34p, best_cycle 44.47kWh, best_import 27.16kWh
2026-08-16 08:00:06.609667: >> Region optimisation pass width 240 gives best_metric 527.06p, best_cost 539.34p, best_cycle 44.47kWh, best_import 27.16kWh
2026-08-16 08:00:07.984744: >> Region optimisation pass width 120 gives best_metric 527.06p, best_cost 539.34p, best_cycle 44.47kWh, best_import 27.16kWh
2026-08-16 08:00:07.985165: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 53
2026-08-16 08:00:07.985250: Optimise levels pass ended at 2026-08-16 08:00:07, duration 4.1 seconds tried 359 combinations
2026-08-16 08:00:07.985316: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 527.06p, best_keep 0kWh, best_cycle 44.47kWh, best_carbon 0kg, best_import 27.16kWh
2026-08-16 08:00:08.011692: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:00:12.211288: Tweak plan optimisation started metric 163.14p, cost 178.51p
2026-08-16 08:00:12.573472: Tweak optimisation finished metric 163.14p, cost 178.51p, metric_keep 0kWh, cycle 19.55kWh, carbon 0kg, import 11.02kWh, changed 8 window(s)
2026-08-16 08:00:12.593971: Swap charge optimisation started metric 163.14p, cost 178.51p, min_improvement_swap 0.1p
2026-08-16 08:00:17.259179: Swap charge optimisation finished metric 163.14p, cost 178.51p
2026-08-16 08:00:17.384368: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 157.91p -> 157.91p, plan now metric 163.26p, cost 178.51p, cycle 19.55kWh, import 11.02kWh
2026-08-16 08:00:17.396448: Raw charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100% ] reserve 1.12
2026-08-16 08:00:17.397151: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 08:00:17.397454: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 08:00:17.397691: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:00:00 @ 25.06p 100% ] reserve 1.12
2026-08-16 08:00:17.435010: Previous plan best metric is 163.16 (cost 178.38) and new plan best metric is 163.14 (cost 178.51)
2026-08-16 08:00:17.435598: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:00:17.435866: Plan valid is now true after recompute was False
2026-08-16 08:00:17.463649: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 393.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.81kWh, PV 0.0kWh
2026-08-16 08:00:17.582033: Battery has 11.42 hours left - now at 7.68kWh
2026-08-16 08:00:17.621262: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.58kWh, PV 0.0kWh
2026-08-16 08:00:17.691896: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.58kWh, PV 0.0kWh
2026-08-16 08:00:17.771834: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.81kWh, PV 0.0kWh
2026-08-16 08:00:17.771930: Saving plan best values to HA entities
2026-08-16 08:00:17.931948: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:00:17.938568: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:00:17.944635: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.33kWh, house 1.66kWh, export 0.0kWh, metric 228.36p, metric10 264.22p
2026-08-16 08:00:18.018925: Marginal costs baseline metric (no standing charge): 178.3815
2026-08-16 08:00:18.284984: Marginal energy costs matrix computed: min=21.53 max=34.96
2026-08-16 08:00:18.352219: Rate array import [{'start': 480, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 480, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:00:18.352882: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 08:00:18.352931: - Import rates are expensive (24.1p - 25.5p) for the next 3 hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:00:18.352989: - The battery is currently at 48% and is in eco mode for the next 3 hours.
2026-08-16 08:00:18.353024: - For the next 48 hours there will be no solar generation.
2026-08-16 08:00:18.353046: - You will run out of battery in 23 hours.
2026-08-16 08:00:18.353072: - Your next charge slot will be in 3 hours where import rates will be free (0.0p).
2026-08-16 08:00:18.353090: 
2026-08-16 08:00:18.409958: Plan calculation took 14.86 seconds
2026-08-16 08:00:18.410372: Inverter 0: Type SK Sunsynk
2026-08-16 08:00:18.410421: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:00:18.410668: Reserve min: 7%, battery_min: 7%
2026-08-16 08:00:18.410798: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:00:18.411167: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-16 08:00:18.411411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:00:18.411516: Inverter 0 scheduled charge enable is False
2026-08-16 08:00:18.411557: Inverter 0 charge windows currently []
2026-08-16 08:00:18.411588: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:00:18.411697: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:00:18.411764: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:00:18.411803: Inverter 0 scheduled discharge enable is False
2026-08-16 08:00:18.411940: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:00:18.411979: Inverter 0 discharge windows currently []
2026-08-16 08:00:18.412001: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:00:18.412021: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:00:18.412040: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:00:18.469633: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 08:00:18.469777: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:00:18.469845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:00:18.470026: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:00:18.470099: No export window planned
2026-08-16 08:00:18.470189: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:00:18.470224: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:00:18.470536: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:00:18.470924: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:00:18.470997: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:00:18.471073: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:00:18.471194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471382: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471425: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471497: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:00:18.471948: Inverter 0 count register writes 0
2026-08-16 08:00:18.497628: Total inverter register writes now 826
2026-08-16 08:00:18.529838: Info: Completed run status Demand
2026-08-16 08:00:18.536124: Info: record_status Demand
2026-08-16 08:00:18.542521: Saved current settings to /config/predbat_config.json
2026-08-16 08:00:18.542825: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:00:56.649668: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:00:56.650052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:00:56.650118: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:00:56.650337: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:00:56.650391: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:00:56.650433: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:00:56.650468: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:02:56.880734: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:02:56.881048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:02:56.881103: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:02:56.881279: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:02:56.881348: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:02:56.881370: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:02:56.881387: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:04:57.108618: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:04:57.108934: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:04:57.109053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:04:57.109293: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:04:57.109340: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:04:57.109363: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:04:57.109389: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:05:00.200629: --------------- PredBat - update at 2026-08-16 08:05:00+01:00 with clock skew 0 minutes, minutes now 485
2026-08-16 08:05:00.201621: Saved current settings to /config/predbat_config.json
2026-08-16 08:05:00.201836: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 08:05:00.202037: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:05:00.202202: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:05:00.222386: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:05:00.222516: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:05:00.222726: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:05:00.223370: Cars 1 charging from battery False 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-16 08:05:00.223501: Predbat mode is set to Control charge & discharge
2026-08-16 08:05:00.405203: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:05:00.405350: Using load_power data to fill gaps in load_today data
2026-08-16 08:05:01.153630: Processing 721 30-minute periods for power integration
2026-08-16 08:05:01.309267: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:05:01.309535: Car charging hold False, threshold 6.0kWh
2026-08-16 08:05:01.309591: Current data so far today: load 4.65kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:05:01.322692: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:05:01.323019: Standing charge is set to 49.98p
2026-08-16 08:05:01.344817: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:05:01.344931: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:05:01.345161: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 484.9 minutes
2026-08-16 08:05:01.345475: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 484.8 minutes
2026-08-16 08:05:01.348005: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:05:01.416159: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:05:01.466397: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:05:01.466739: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:05:01.501694: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:05:01.501819: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:05:01.502934: High export rate found rates in range 99p to -99p
2026-08-16 08:05:01.572680: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:05:01.572804: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:05:01.585633: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.53p, rate_forward 1.0p
2026-08-16 08:05:01.585981: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.44p, import 0.44p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:05:01.637430: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:05:01.637558: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:05:01.703277: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:05:01.724405: Today's load divergence 97.14%, in-day adjustment 87.79%, damping 0.95x, yesterday 82.97% today 97.29% blend 66.32%
2026-08-16 08:05:01.724502: Today's predicted so far 5.17kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.17kWh forecast extra.
2026-08-16 08:05:01.724529: Today's actual load so far 4.73kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:05:01.759228: Inverter 0: Type SK Sunsynk
2026-08-16 08:05:01.759323: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:05:01.759571: Reserve min: 7%, battery_min: 7%
2026-08-16 08:05:01.759671: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:05:01.760004: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 337W, current battery voltage 51.2V, grid power -54W, load power 387W, PV Power 0W
2026-08-16 08:05:01.760215: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:05:01.760354: Inverter 0 scheduled charge enable is False
2026-08-16 08:05:01.760400: Inverter 0 charge windows currently []
2026-08-16 08:05:01.760447: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:05:01.760609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:05:01.760666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:05:01.760726: Inverter 0 scheduled discharge enable is False
2026-08-16 08:05:01.761019: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:05:01.761072: Inverter 0 discharge windows currently []
2026-08-16 08:05:01.761095: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:05:01.761112: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:05:01.761130: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:05:01.817184: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:05:01.817300: Plan was last updated on 2026-08-16 08:00:00+01:00 and is now 5.0 minutes old
2026-08-16 08:05:01.817642: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:05:01.817694: Best export window [  ]
2026-08-16 08:05:01.818631: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:05:01.822049: Load divergence over 8.0 hours mean 343.74W, min 213.6W, max 1026.0W, std dev 95.05W, divergence 13.83%
2026-08-16 08:05:01.841269: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:05:01.841405: LoadML is_calculating False
2026-08-16 08:05:01.841494: Creating pool of 12 processes to match your CPU count
2026-08-16 08:05:02.002318: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 395.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.9kWh, PV 0.0kWh
2026-08-16 08:05:02.158738: Battery has 11.33 hours left - now at 7.68kWh
2026-08-16 08:05:02.209169: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.68kWh, PV 0.0kWh
2026-08-16 08:05:02.323107: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.68kWh, PV 0.0kWh
2026-08-16 08:05:02.412257: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.9kWh, PV 0.0kWh
2026-08-16 08:05:02.412349: Saving plan best values to HA entities
2026-08-16 08:05:02.605485: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:05:02.611331: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:05:02.617263: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.8kWh, house 1.66kWh, export 0.0kWh, metric 240.05p, metric10 274.13p
2026-08-16 08:05:02.696543: Marginal costs baseline metric (no standing charge): 190.0652
2026-08-16 08:05:02.977988: Marginal energy costs matrix computed: min=21.66 max=34.6
2026-08-16 08:05:03.060213: Rate array import [{'start': 485, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 485, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:05:03.060902: - Your estimated bill for today is £1.37 and tomorrow is £7.33
2026-08-16 08:05:03.060971: - Import rates are expensive (24.1p - 25.5p) for the next 2  hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:05:03.060999: - The battery is currently at 48% and is in eco mode for the next 2  hours.
2026-08-16 08:05:03.061018: - For the next 48 hours there will be no solar generation.
2026-08-16 08:05:03.061035: - You will run out of battery in 23 hours.
2026-08-16 08:05:03.061062: - Your next charge slot will be in 2  hours where import rates will be free (0.0p).
2026-08-16 08:05:03.061079: 
2026-08-16 08:05:03.121018: Plan calculation took 1.30 seconds
2026-08-16 08:05:03.124521: No high rate period found
2026-08-16 08:05:03.178495: Import threshold used for optimisation was 23.43p
2026-08-16 08:05:03.238599: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 94: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:05:03.247424: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 08:05:03.247574: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:05:03.247691: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:05:03.248007: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:05:03.248108: No export window planned
2026-08-16 08:05:03.248223: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:05:03.248259: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:05:03.248396: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:05:03.248590: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:05:03.248655: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:05:03.248725: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:05:03.248851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.248914: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.248977: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249245: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:05:03.249399: Inverter 0 count register writes 0
2026-08-16 08:05:03.266928: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:05:03.272391: Total inverter register writes now 826
2026-08-16 08:05:03.310426: Info: Completed run status Demand
2026-08-16 08:05:03.317153: Info: record_status Demand
2026-08-16 08:05:03.325047: Saved current settings to /config/predbat_config.json
2026-08-16 08:05:03.325441: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:05:42.439880: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:05:42.440159: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:05:42.440209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:05:42.440378: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:05:42.440447: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:05:42.440469: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:05:42.440488: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:06:18.019331: Info: HAHistory: Pruning history data started.
2026-08-16 08:06:18.023324: Info: HAHistory: Pruning history data completed.
2026-08-16 08:06:40.329706: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 08:06:41.421240: Processing 1297 30-minute periods for power integration
2026-08-16 08:06:41.528273: ML Component: Car charging hold False, car energy reported load False
2026-08-16 08:06:41.629723: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:06:41.728820: ML Temperature data points: 48476
2026-08-16 08:06:41.997652: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 08:06:42.042893: ML Component: Data fetch completed, load data age 57.0 days, 16649 data points
2026-08-16 08:06:42.043052: ML Component: No training needed, model age is 1.26 hours
2026-08-16 08:06:42.043117: ML Component: Generating predictions load data age 57.0 days, 16649 data points
2026-08-16 08:06:42.185440: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0259 max_dow {0: 0.09880312496256083, 1: 0.10396562554407864, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.0976194444042941, 6: 0.10672812573947013}
2026-08-16 08:06:50.040195: ML Component: Generated 576 predictions (total 31.15 kWh over 48h)
2026-08-16 08:06:50.091040: ML Component: Prediction cycle completed
2026-08-16 08:06:50.212732: ML Component: Saved 16649 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 08:07:56.696567: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:07:56.696819: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:07:56.696861: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:07:56.697049: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:07:56.697095: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:07:56.697118: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:07:56.697136: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:09:56.912394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:09:56.912699: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:09:56.912770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:09:56.913000: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:09:56.913062: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:09:56.913087: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:09:56.913105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:10:00.996246: --------------- PredBat - update at 2026-08-16 08:10:00+01:00 with clock skew 0 minutes, minutes now 490
2026-08-16 08:10:00.997178: Saved current settings to /config/predbat_config.json
2026-08-16 08:10:00.997375: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 08:10:00.997534: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:10:00.997719: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:10:01.017031: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:10:01.017182: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:10:01.017349: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:10:01.017851: Cars 1 charging from battery False 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-16 08:10:01.017971: Predbat mode is set to Control charge & discharge
2026-08-16 08:10:01.215843: Found 21602 load_today datapoints going back 27 days
2026-08-16 08:10:01.216003: Using load_power data to fill gaps in load_today data
2026-08-16 08:10:02.078107: Processing 721 30-minute periods for power integration
2026-08-16 08:10:02.235994: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:10:02.236151: Car charging hold False, threshold 6.0kWh
2026-08-16 08:10:02.236192: Current data so far today: load 4.6kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:10:02.247888: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:10:02.248201: Standing charge is set to 49.98p
2026-08-16 08:10:02.269870: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:10:02.269976: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:10:02.270201: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 490.0 minutes
2026-08-16 08:10:02.270640: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 489.8 minutes
2026-08-16 08:10:02.273746: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:10:02.345893: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:10:02.394403: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:10:02.394712: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:10:02.429214: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:10:02.429329: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:10:02.430418: High export rate found rates in range 99p to -99p
2026-08-16 08:10:02.501080: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:10:02.501200: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:10:02.512415: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.53p, rate_forward 1.0p
2026-08-16 08:10:02.512739: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 0.33p, import 0.33p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:10:02.559588: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:10:02.559733: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:10:02.639468: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:10:02.664299: Today's load divergence 96.71%, in-day adjustment 87.7%, damping 0.95x, yesterday 82.97% today 96.88% blend 65.97%
2026-08-16 08:10:02.664412: Today's predicted so far 5.15kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.15kWh forecast extra.
2026-08-16 08:10:02.664444: Today's actual load so far 4.65kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:10:02.701840: Inverter 0: Type SK Sunsynk
2026-08-16 08:10:02.701936: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:10:02.702183: Reserve min: 7%, battery_min: 7%
2026-08-16 08:10:02.702276: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:10:02.702643: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 257W, current battery voltage 51.2V, grid power -54W, load power 309W, PV Power 0W
2026-08-16 08:10:02.702839: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:10:02.702951: Inverter 0 scheduled charge enable is False
2026-08-16 08:10:02.702999: Inverter 0 charge windows currently []
2026-08-16 08:10:02.703072: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:10:02.703233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:10:02.703277: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:10:02.703315: Inverter 0 scheduled discharge enable is False
2026-08-16 08:10:02.703443: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:10:02.703480: Inverter 0 discharge windows currently []
2026-08-16 08:10:02.703504: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:10:02.703522: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:10:02.703539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:10:02.767611: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:10:02.767722: Plan was last updated on 2026-08-16 08:00:00+01:00 and is now 10.0 minutes old
2026-08-16 08:10:02.767982: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:10:02.768028: Best export window [  ]
2026-08-16 08:10:02.768832: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:10:02.771965: Load divergence over 8.0 hours mean 343.78W, min 222.6W, max 708.0W, std dev 76.99W, divergence 11.2%
2026-08-16 08:10:02.790314: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:10:02.790487: LoadML is_calculating False
2026-08-16 08:10:02.790558: Creating pool of 12 processes to match your CPU count
2026-08-16 08:10:02.913431: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 395.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.87kWh, PV 0.0kWh
2026-08-16 08:10:03.048172: Battery has 11.33 hours left - now at 7.68kWh
2026-08-16 08:10:03.086373: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 418.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.64kWh, PV 0.0kWh
2026-08-16 08:10:03.162937: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 283.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.64kWh, PV 0.0kWh
2026-08-16 08:10:03.236932: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 250.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.87kWh, PV 0.0kWh
2026-08-16 08:10:03.237102: Saving plan best values to HA entities
2026-08-16 08:10:03.402306: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:10:03.407161: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:10:03.412149: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.24kWh, house 1.66kWh, export 0.0kWh, metric 250.66p, metric10 283.01p
2026-08-16 08:10:03.484572: Marginal costs baseline metric (no standing charge): 200.6772
2026-08-16 08:10:03.709398: Marginal energy costs matrix computed: min=20.38 max=34.21
2026-08-16 08:10:03.777922: Rate array import [{'start': 490, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 490, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:10:03.778554: - Your estimated bill for today is £1.36 and tomorrow is £7.34
2026-08-16 08:10:03.778594: - Import rates are expensive (24.1p - 25.5p) for the next 2 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:10:03.778613: - The battery is currently at 48% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 08:10:03.778627: - For the next 48 hours there will be no solar generation.
2026-08-16 08:10:03.778642: - You will run out of battery in 23 hours.
2026-08-16 08:10:03.778655: - Your next charge slot will be in 2 and three quarters hours where import rates will be free (0.0p).
2026-08-16 08:10:03.778669: 
2026-08-16 08:10:03.832129: Plan calculation took 1.06 seconds
2026-08-16 08:10:03.835658: No high rate period found
2026-08-16 08:10:03.894786: Import threshold used for optimisation was 23.43p
2026-08-16 08:10:03.953576: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 94: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:10:03.961431: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 08:10:03.961594: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:10:03.961708: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:10:03.961979: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:10:03.962112: No export window planned
2026-08-16 08:10:03.962248: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:10:03.962287: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:10:03.962428: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:10:03.962645: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:10:03.962711: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:10:03.962784: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:10:03.962886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.962931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.962961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.962987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:03.963368: Inverter 0 count register writes 0
2026-08-16 08:10:03.982811: 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-16 08:10:03.983014: Recompute is saving previous plan...
2026-08-16 08:10:03.986429: Best charge window [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0% ]
2026-08-16 08:10:03.986534: Best export window [  ]
2026-08-16 08:10:03.987493: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:10:03.990694: Load divergence over 8.0 hours mean 343.78W, min 222.6W, max 708.0W, std dev 76.99W, divergence 11.2%
2026-08-16 08:10:04.008724: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:10:04.008866: LoadML is_calculating False
2026-08-16 08:10:04.008936: Creating pool of 12 processes to match your CPU count
2026-08-16 08:10:04.101313: 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(0.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-16 08:10:04.103164: Optimise levels pass started at 2026-08-16 08:10:04
2026-08-16 08:10:04.103224: Optimise all windows, total charge 94 export 1
2026-08-16 08:10:05.205888: >> Region optimisation pass width 960 gives best_metric 526.97p, best_cost 539.27p, best_cycle 44.34kWh, best_import 27.15kWh
2026-08-16 08:10:05.560101: >> Region optimisation pass width 480 gives best_metric 526.97p, best_cost 539.27p, best_cycle 44.34kWh, best_import 27.15kWh
2026-08-16 08:10:06.283540: >> Region optimisation pass width 240 gives best_metric 526.97p, best_cost 539.27p, best_cycle 44.34kWh, best_import 27.15kWh
2026-08-16 08:10:07.575916: >> Region optimisation pass width 120 gives best_metric 526.97p, best_cost 539.27p, best_cycle 44.34kWh, best_import 27.15kWh
2026-08-16 08:10:07.576254: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 53
2026-08-16 08:10:07.576329: Optimise levels pass ended at 2026-08-16 08:10:07, duration 3.5 seconds tried 360 combinations
2026-08-16 08:10:07.576393: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 526.97p, best_keep 0kWh, best_cycle 44.34kWh, best_carbon 0kg, best_import 27.15kWh
2026-08-16 08:10:07.594017: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:10:11.410573: Tweak plan optimisation started metric 162.05p, cost 177.45p
2026-08-16 08:10:11.698946: Tweak optimisation finished metric 162.05p, cost 177.45p, metric_keep 0kWh, cycle 19.56kWh, carbon 0kg, import 10.97kWh, changed 8 window(s)
2026-08-16 08:10:11.718827: Swap charge optimisation started metric 162.05p, cost 177.45p, min_improvement_swap 0.1p
2026-08-16 08:10:15.579451: Swap charge optimisation finished metric 162.05p, cost 177.45p
2026-08-16 08:10:15.675120: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 156.85p -> 156.85p, plan now metric 162.16p, cost 177.45p, cycle 19.56kWh, import 10.97kWh
2026-08-16 08:10:15.684888: Raw charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 08:10:15.685514: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:10:15.685800: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:10:15.686037: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:10:15.716226: Previous plan best metric is 162.06 (cost 177.32) and new plan best metric is 162.05 (cost 177.45)
2026-08-16 08:10:15.716471: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:10:15.716705: Plan valid is now true after recompute was False
2026-08-16 08:10:15.742510: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 392.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.74kWh, PV 0.0kWh
2026-08-16 08:10:15.848114: Battery has 11.33 hours left - now at 7.68kWh
2026-08-16 08:10:15.885478: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 415.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.5kWh, PV 0.0kWh
2026-08-16 08:10:15.949414: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 262.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.5kWh, PV 0.0kWh
2026-08-16 08:10:16.022826: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 227.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.74kWh, PV 0.0kWh
2026-08-16 08:10:16.022923: Saving plan best values to HA entities
2026-08-16 08:10:16.174286: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:10:16.179578: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:10:16.185401: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.28kWh, house 1.66kWh, export 0.0kWh, metric 227.3p, metric10 262.87p
2026-08-16 08:10:16.245865: Marginal costs baseline metric (no standing charge): 177.3212
2026-08-16 08:10:16.460883: Marginal energy costs matrix computed: min=20.38 max=34.21
2026-08-16 08:10:16.519086: Rate array import [{'start': 490, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 490, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:10:16.519644: - Your estimated bill for today is £1.36 and tomorrow is £7.34
2026-08-16 08:10:16.519682: - Import rates are expensive (24.1p - 25.5p) for the next 2 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:10:16.519701: - The battery is currently at 48% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 08:10:16.519716: - For the next 48 hours there will be no solar generation.
2026-08-16 08:10:16.519730: - You will run out of battery in 23 hours.
2026-08-16 08:10:16.519749: - Your next charge slot will be in 2 and three quarters hours where import rates will be free (0.0p).
2026-08-16 08:10:16.519763: 
2026-08-16 08:10:16.570727: Plan calculation took 12.59 seconds
2026-08-16 08:10:16.571071: Inverter 0: Type SK Sunsynk
2026-08-16 08:10:16.571111: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:10:16.571308: Reserve min: 7%, battery_min: 7%
2026-08-16 08:10:16.571377: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:10:16.571673: Inverter 0 SoC: 7.66kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 261W, current battery voltage 51.2V, grid power -53W, load power 309W, PV Power 0W
2026-08-16 08:10:16.571875: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:10:16.571967: Inverter 0 scheduled charge enable is False
2026-08-16 08:10:16.572001: Inverter 0 charge windows currently []
2026-08-16 08:10:16.572026: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:10:16.572134: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:10:16.572168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:10:16.572198: Inverter 0 scheduled discharge enable is False
2026-08-16 08:10:16.572308: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:10:16.572339: Inverter 0 discharge windows currently []
2026-08-16 08:10:16.572358: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:10:16.572373: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:10:16.572390: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:10:16.621464: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 48%, target 100%
2026-08-16 08:10:16.621641: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:10:16.621711: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:10:16.621865: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:10:16.621927: No export window planned
2026-08-16 08:10:16.622040: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:10:16.622088: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:10:16.622206: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:10:16.622348: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:10:16.622393: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:10:16.622436: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:10:16.622516: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622596: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:10:16.622862: Inverter 0 count register writes 0
2026-08-16 08:10:16.643216: Total inverter register writes now 826
2026-08-16 08:10:16.673939: Info: Completed run status Demand
2026-08-16 08:10:16.681494: Info: record_status Demand
2026-08-16 08:10:16.687315: Saved current settings to /config/predbat_config.json
2026-08-16 08:10:16.687595: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:10:56.800579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:10:56.800896: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:10:56.801002: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:10:56.801221: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:10:56.801276: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:10:56.801339: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:10:56.801377: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:12:57.024174: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:12:57.024485: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:12:57.024545: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:12:57.024730: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:12:57.024818: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:12:57.024840: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:12:57.024857: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:14:57.250810: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:14:57.251112: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:14:57.251170: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:14:57.251333: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:14:57.251374: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:14:57.251395: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:14:57.251413: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:15:00.356435: --------------- PredBat - update at 2026-08-16 08:15:00+01:00 with clock skew 0 minutes, minutes now 495
2026-08-16 08:15:00.357303: Saved current settings to /config/predbat_config.json
2026-08-16 08:15:00.357436: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 08:15:00.357550: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:15:00.357669: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:15:00.377365: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:15:00.377507: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:15:00.377697: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:15:00.378285: Cars 1 charging from battery False 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-16 08:15:00.378426: Predbat mode is set to Control charge & discharge
2026-08-16 08:15:00.583208: Found 21602 load_today datapoints going back 27 days
2026-08-16 08:15:00.583377: Using load_power data to fill gaps in load_today data
2026-08-16 08:15:01.455765: Processing 721 30-minute periods for power integration
2026-08-16 08:15:01.650128: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:15:01.650288: Car charging hold False, threshold 6.0kWh
2026-08-16 08:15:01.650339: Current data so far today: load 4.6kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:15:01.668009: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:15:01.668550: Standing charge is set to 49.98p
2026-08-16 08:15:01.691892: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:15:01.691998: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:15:01.692201: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 495.0 minutes
2026-08-16 08:15:01.692650: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 494.8 minutes
2026-08-16 08:15:01.695726: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:15:01.771616: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:15:01.827166: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:15:01.827598: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:15:01.863482: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:15:01.863601: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:15:01.864670: High export rate found rates in range 99p to -99p
2026-08-16 08:15:01.949254: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:15:01.949382: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:15:01.960335: Battery level now 7.68kWh, -1hr ago 7.95kWh, at midnight 12.21kWh, battery value change in the last hour -0.27p, change today -4.53p, rate_forward 1.0p
2026-08-16 08:15:01.960638: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.2kWh, net cost 0.22p, import 0.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:15:02.012444: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:15:02.012583: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:15:02.084602: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:15:02.105066: Today's load divergence 96.33%, in-day adjustment 87.62%, damping 0.95x, yesterday 82.97% today 96.51% blend 65.62%
2026-08-16 08:15:02.105129: Today's predicted so far 5.13kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.13kWh forecast extra.
2026-08-16 08:15:02.105155: Today's actual load so far 4.58kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:15:02.135010: Inverter 0: Type SK Sunsynk
2026-08-16 08:15:02.135084: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:15:02.135252: Reserve min: 7%, battery_min: 7%
2026-08-16 08:15:02.135313: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:15:02.135540: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 286W, current battery voltage 51.2V, grid power -54W, load power 337W, PV Power 0W
2026-08-16 08:15:02.135673: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:15:02.135746: Inverter 0 scheduled charge enable is False
2026-08-16 08:15:02.135775: Inverter 0 charge windows currently []
2026-08-16 08:15:02.135796: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:15:02.135888: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:15:02.135917: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:15:02.135946: Inverter 0 scheduled discharge enable is False
2026-08-16 08:15:02.136069: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:15:02.136102: Inverter 0 discharge windows currently []
2026-08-16 08:15:02.136121: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:15:02.136136: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:15:02.136152: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:15:02.185159: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:15:02.185270: Plan was last updated on 2026-08-16 08:10:00+01:00 and is now 5.0 minutes old
2026-08-16 08:15:02.185471: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:15:02.185506: Best export window [  ]
2026-08-16 08:15:02.186164: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:15:02.188658: Load divergence over 8.0 hours mean 343.77W, min 244.8W, max 864.0W, std dev 89.33W, divergence 12.99%
2026-08-16 08:15:02.203790: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:15:02.203865: LoadML is_calculating False
2026-08-16 08:15:02.203917: Creating pool of 12 processes to match your CPU count
2026-08-16 08:15:02.316478: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 397.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.77kWh, PV 0.0kWh
2026-08-16 08:15:02.434077: Battery has 11.0 hours left - now at 7.52kWh
2026-08-16 08:15:02.474087: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 422.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.54kWh, PV 0.0kWh
2026-08-16 08:15:02.547842: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 275.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.54kWh, PV 0.0kWh
2026-08-16 08:15:02.624812: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 241.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 20.77kWh, PV 0.0kWh
2026-08-16 08:15:02.624901: Saving plan best values to HA entities
2026-08-16 08:15:02.803215: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:15:02.809305: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:15:02.814863: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.88kWh, house 1.65kWh, export 0.0kWh, metric 241.39p, metric10 275.71p
2026-08-16 08:15:02.892907: Marginal costs baseline metric (no standing charge): 191.41
2026-08-16 08:15:03.168257: Marginal energy costs matrix computed: min=18.63 max=33.81
2026-08-16 08:15:03.244378: Rate array import [{'start': 495, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 495, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:15:03.245072: - Your estimated bill for today is £1.39 and tomorrow is £7.35
2026-08-16 08:15:03.245122: - Import rates are expensive (24.1p - 25.5p) for the next 2 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:15:03.245145: - The battery is currently at 47% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 08:15:03.245163: - For the next 48 hours there will be no solar generation.
2026-08-16 08:15:03.245199: - You will run out of battery in 23 hours.
2026-08-16 08:15:03.245217: - Your next charge slot will be in 2 and three quarters hours where import rates will be free (0.0p).
2026-08-16 08:15:03.245251: 
2026-08-16 08:15:03.300900: Plan calculation took 1.12 seconds
2026-08-16 08:15:03.304360: No high rate period found
2026-08-16 08:15:03.359402: Import threshold used for optimisation was 23.43p
2026-08-16 08:15:03.422032: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 94: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:15:03.429072: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:15:03.429211: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:15:03.429367: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:15:03.429649: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:15:03.429748: No export window planned
2026-08-16 08:15:03.429870: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:15:03.429907: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:15:03.430044: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:15:03.430246: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:15:03.430313: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:15:03.430380: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:15:03.430478: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:15:03.430932: Inverter 0 count register writes 0
2026-08-16 08:15:03.447942: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:15:03.453955: Total inverter register writes now 826
2026-08-16 08:15:03.490590: Info: Completed run status Demand
2026-08-16 08:15:03.497151: Info: record_status Demand
2026-08-16 08:15:03.504817: Saved current settings to /config/predbat_config.json
2026-08-16 08:15:03.505268: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:15:41.615886: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:15:41.616228: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:15:41.616334: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:15:41.616550: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:15:41.616616: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:15:41.616648: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:15:41.616720: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:17:41.835741: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:17:41.835991: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:17:41.836073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:17:41.836268: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:17:41.836304: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:17:41.836365: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:17:41.836384: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:19:42.062962: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:19:42.063233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:19:42.063383: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:19:42.063574: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:19:42.063615: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:19:42.063637: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:19:42.063655: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:20:00.177014: --------------- PredBat - update at 2026-08-16 08:20:00+01:00 with clock skew 0 minutes, minutes now 500
2026-08-16 08:20:00.177986: Saved current settings to /config/predbat_config.json
2026-08-16 08:20:00.178169: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 08:20:00.178305: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:20:00.178576: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:20:00.199570: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:20:00.199768: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:20:00.199965: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:20:00.200547: Cars 1 charging from battery False 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-16 08:20:00.200670: Predbat mode is set to Control charge & discharge
2026-08-16 08:20:00.396204: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:20:00.396359: Using load_power data to fill gaps in load_today data
2026-08-16 08:20:01.265249: Processing 721 30-minute periods for power integration
2026-08-16 08:20:01.450803: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:20:01.450948: Car charging hold False, threshold 6.0kWh
2026-08-16 08:20:01.450997: Current data so far today: load 4.72kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:20:01.467421: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:20:01.468145: Standing charge is set to 49.98p
2026-08-16 08:20:01.503910: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:20:01.504048: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:20:01.504349: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 499.9 minutes
2026-08-16 08:20:01.504989: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 499.8 minutes
2026-08-16 08:20:01.509130: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:20:01.601090: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:20:01.673954: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:20:01.674417: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:20:01.717541: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:20:01.717677: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:20:01.718955: High export rate found rates in range 99p to -99p
2026-08-16 08:20:01.810513: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:20:01.810661: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:20:01.823630: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:20:01.824020: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.11p, import 0.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:20:01.874739: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:20:01.874878: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:20:01.956420: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:20:01.983404: Today's load divergence 97.02%, in-day adjustment 87.9%, damping 0.95x, yesterday 82.97% today 97.17% blend 65.28%
2026-08-16 08:20:01.983507: Today's predicted so far 5.14kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.14kWh forecast extra.
2026-08-16 08:20:01.983539: Today's actual load so far 4.69kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:20:02.019562: Inverter 0: Type SK Sunsynk
2026-08-16 08:20:02.019657: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:20:02.019875: Reserve min: 7%, battery_min: 7%
2026-08-16 08:20:02.019954: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:20:02.020284: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -55W, load power 321W, PV Power 0W
2026-08-16 08:20:02.020449: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:20:02.020558: Inverter 0 scheduled charge enable is False
2026-08-16 08:20:02.020589: Inverter 0 charge windows currently []
2026-08-16 08:20:02.020615: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:20:02.020744: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:20:02.020780: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:20:02.020816: Inverter 0 scheduled discharge enable is False
2026-08-16 08:20:02.021000: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:20:02.021044: Inverter 0 discharge windows currently []
2026-08-16 08:20:02.021067: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:20:02.021086: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:20:02.021122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:20:02.082525: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:20:02.082637: Plan was last updated on 2026-08-16 08:10:00+01:00 and is now 10.0 minutes old
2026-08-16 08:20:02.082889: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:20:02.082932: Best export window [  ]
2026-08-16 08:20:02.083762: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:20:02.086958: Load divergence over 8.0 hours mean 343.74W, min 244.2W, max 891.6W, std dev 88.68W, divergence 12.9%
2026-08-16 08:20:02.106288: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:20:02.106802: LoadML is_calculating False
2026-08-16 08:20:02.106900: Creating pool of 12 processes to match your CPU count
2026-08-16 08:20:02.236154: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 398.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.95kWh, PV 0.0kWh
2026-08-16 08:20:02.371234: Battery has 10.92 hours left - now at 7.52kWh
2026-08-16 08:20:02.415097: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 423.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.72kWh, PV 0.0kWh
2026-08-16 08:20:02.506567: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 285.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.72kWh, PV 0.0kWh
2026-08-16 08:20:02.595067: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.95kWh, PV 0.0kWh
2026-08-16 08:20:02.595185: Saving plan best values to HA entities
2026-08-16 08:20:02.773930: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 08:20:02.779215: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:20:02.784922: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.35kWh, house 1.65kWh, export 0.0kWh, metric 252.94p, metric10 285.44p
2026-08-16 08:20:02.858275: Marginal costs baseline metric (no standing charge): 202.9568
2026-08-16 08:20:03.076027: Marginal energy costs matrix computed: min=16.31 max=33.42
2026-08-16 08:20:03.147136: Rate array import [{'start': 500, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 500, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:20:03.147668: - Your estimated bill for today is £1.39 and tomorrow is £7.36
2026-08-16 08:20:03.147707: - Import rates are expensive (24.1p - 25.5p) for the next 2 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:20:03.147726: - The battery is currently at 47% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 08:20:03.147741: - For the next 48 hours there will be no solar generation.
2026-08-16 08:20:03.147758: - You will run out of battery in 23 hours.
2026-08-16 08:20:03.147789: - Your next charge slot will be in 2 and three quarters hours where import rates will be free (0.0p).
2026-08-16 08:20:03.147803: 
2026-08-16 08:20:03.192204: Plan calculation took 1.11 seconds
2026-08-16 08:20:03.194957: No high rate period found
2026-08-16 08:20:03.244039: Import threshold used for optimisation was 23.43p
2026-08-16 08:20:03.296700: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 94: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:20:03.302537: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:20:03.302650: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:20:03.302782: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:20:03.303042: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:20:03.303147: No export window planned
2026-08-16 08:20:03.303258: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:20:03.303288: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:20:03.303402: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:20:03.303561: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:20:03.303614: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:20:03.303667: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:20:03.303753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303790: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.303975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:03.304145: Inverter 0 count register writes 0
2026-08-16 08:20:03.319388: 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-16 08:20:03.319565: Recompute is saving previous plan...
2026-08-16 08:20:03.323027: Best charge window [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0% ]
2026-08-16 08:20:03.323144: Best export window [  ]
2026-08-16 08:20:03.323949: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:20:03.327128: Load divergence over 8.0 hours mean 343.74W, min 244.2W, max 891.6W, std dev 88.68W, divergence 12.9%
2026-08-16 08:20:03.344770: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:20:03.344884: LoadML is_calculating False
2026-08-16 08:20:03.344980: Creating pool of 12 processes to match your CPU count
2026-08-16 08:20:03.428386: 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(0.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-16 08:20:03.430119: Optimise levels pass started at 2026-08-16 08:20:03
2026-08-16 08:20:03.430196: Optimise all windows, total charge 94 export 1
2026-08-16 08:20:04.258288: >> Region optimisation pass width 960 gives best_metric 531.18p, best_cost 543.41p, best_cycle 42.58kWh, best_import 27.19kWh
2026-08-16 08:20:04.636647: >> Region optimisation pass width 480 gives best_metric 531.18p, best_cost 543.41p, best_cycle 42.58kWh, best_import 27.19kWh
2026-08-16 08:20:05.148016: >> Region optimisation pass width 240 gives best_metric 531.18p, best_cost 543.41p, best_cycle 42.58kWh, best_import 27.19kWh
2026-08-16 08:20:06.519448: >> Region optimisation pass width 120 gives best_metric 530.77p, best_cost 543.06p, best_cycle 43.9kWh, best_import 27.29kWh
2026-08-16 08:20:06.519862: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 53
2026-08-16 08:20:06.519970: Optimise levels pass ended at 2026-08-16 08:20:06, duration 3.1 seconds tried 336 combinations
2026-08-16 08:20:06.520044: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 530.77p, best_keep 0kWh, best_cycle 43.9kWh, best_carbon 0kg, best_import 27.29kWh
2026-08-16 08:20:06.540740: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 0, 12.0, 12.0, 0, 0, 0, 0, 16.0, 12.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:20:11.375068: Tweak plan optimisation started metric 164.31p, cost 179.7p
2026-08-16 08:20:11.671122: Tweak optimisation finished metric 164.31p, cost 179.7p, metric_keep 0kWh, cycle 20.18kWh, carbon 0kg, import 11.13kWh, changed 8 window(s)
2026-08-16 08:20:11.691356: Swap charge optimisation started metric 164.31p, cost 179.7p, min_improvement_swap 0.1p
2026-08-16 08:20:15.885863: Swap charge optimisation finished metric 164.31p, cost 179.7p
2026-08-16 08:20:15.990686: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 159.1p -> 159.1p, plan now metric 164.43p, cost 179.7p, cycle 20.18kWh, import 11.13kWh
2026-08-16 08:20:16.000867: Raw charge windows [ 16-08 08:00:00 - 16-08 08:30:00 @ 24.06p 0%, 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 78%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 78%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 78%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 08:20:16.001610: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:20:16.001862: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:20:16.002100: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 78%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:20:16.035479: Previous plan best metric is 164.27 (cost 179.54) and new plan best metric is 164.31 (cost 179.7)
2026-08-16 08:20:16.035780: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:20:16.035975: Plan valid is now true after recompute was False
2026-08-16 08:20:16.059032: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 395.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 20.81kWh, PV 0.0kWh
2026-08-16 08:20:16.162165: Battery has 10.92 hours left - now at 7.52kWh
2026-08-16 08:20:16.199883: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 420.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.58kWh, PV 0.0kWh
2026-08-16 08:20:16.267738: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 265.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.58kWh, PV 0.0kWh
2026-08-16 08:20:16.364561: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 229.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.81kWh, PV 0.0kWh
2026-08-16 08:20:16.364665: Saving plan best values to HA entities
2026-08-16 08:20:16.513577: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 08:20:16.519132: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:20:16.524548: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.39kWh, house 1.65kWh, export 0.0kWh, metric 229.52p, metric10 265.23p
2026-08-16 08:20:16.592796: Marginal costs baseline metric (no standing charge): 179.5354
2026-08-16 08:20:16.816301: Marginal energy costs matrix computed: min=16.31 max=33.42
2026-08-16 08:20:16.876389: Rate array import [{'start': 500, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 500, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:20:16.876907: - Your estimated bill for today is £1.39 and tomorrow is £7.36
2026-08-16 08:20:16.876982: - Import rates are expensive (24.1p - 25.5p) for the next 2 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:20:16.877035: - The battery is currently at 47% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 08:20:16.877055: - For the next 48 hours there will be no solar generation.
2026-08-16 08:20:16.877069: - You will run out of battery in 23 hours.
2026-08-16 08:20:16.877083: - Your next charge slot will be in 2 and three quarters hours where import rates will be free (0.0p).
2026-08-16 08:20:16.877099: 
2026-08-16 08:20:16.928597: Plan calculation took 13.61 seconds
2026-08-16 08:20:16.929043: Inverter 0: Type SK Sunsynk
2026-08-16 08:20:16.929105: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:20:16.929339: Reserve min: 7%, battery_min: 7%
2026-08-16 08:20:16.929425: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:20:16.929784: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -55W, load power 310W, PV Power 0W
2026-08-16 08:20:16.930045: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:20:16.930163: Inverter 0 scheduled charge enable is False
2026-08-16 08:20:16.930210: Inverter 0 charge windows currently []
2026-08-16 08:20:16.930246: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:20:16.930392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:20:16.930428: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:20:16.930469: Inverter 0 scheduled discharge enable is False
2026-08-16 08:20:16.930629: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:20:16.930666: Inverter 0 discharge windows currently []
2026-08-16 08:20:16.930687: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:20:16.930723: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:20:16.930754: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:20:16.980791: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:20:16.980920: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:20:16.981072: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:20:16.981248: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:20:16.981318: No export window planned
2026-08-16 08:20:16.981411: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:20:16.981441: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:20:16.981554: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:20:16.981695: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:20:16.981739: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:20:16.981783: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:20:16.981864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.981901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.981926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.981950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.981970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982034: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982132: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:20:16.982233: Inverter 0 count register writes 0
2026-08-16 08:20:17.000235: Total inverter register writes now 826
2026-08-16 08:20:17.029363: Info: Completed run status Demand
2026-08-16 08:20:17.035177: Info: record_status Demand
2026-08-16 08:20:17.042623: Saved current settings to /config/predbat_config.json
2026-08-16 08:20:17.042983: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:20:57.152312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:20:57.152518: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:20:57.152554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:20:57.152734: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:20:57.152769: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:20:57.152786: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:20:57.152820: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:22:57.366843: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:22:57.367131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:22:57.367168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:22:57.367314: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:22:57.367369: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:22:57.367391: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:22:57.367409: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:25:00.593056: --------------- PredBat - update at 2026-08-16 08:25:00+01:00 with clock skew 0 minutes, minutes now 505
2026-08-16 08:25:00.593893: Saved current settings to /config/predbat_config.json
2026-08-16 08:25:00.594016: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 08:25:00.594170: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:25:00.594278: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:25:00.618427: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:25:00.618597: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:25:00.618843: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:25:00.619475: Cars 1 charging from battery False 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-16 08:25:00.619673: Predbat mode is set to Control charge & discharge
2026-08-16 08:25:00.829893: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:25:00.830089: Using load_power data to fill gaps in load_today data
2026-08-16 08:25:01.689170: Processing 721 30-minute periods for power integration
2026-08-16 08:25:01.874172: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:25:01.874329: Car charging hold False, threshold 6.0kWh
2026-08-16 08:25:01.874379: Current data so far today: load 4.75kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:25:01.889070: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:25:01.889771: Standing charge is set to 49.98p
2026-08-16 08:25:01.916715: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:25:01.916823: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:25:01.917077: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 505.0 minutes
2026-08-16 08:25:01.917579: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 504.8 minutes
2026-08-16 08:25:01.920474: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:25:02.006295: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:25:02.067403: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:25:02.067796: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:25:02.110307: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:25:02.110438: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:25:02.111708: High export rate found rates in range 99p to -99p
2026-08-16 08:25:02.195642: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:25:02.195808: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:25:02.208773: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:25:02.209283: 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-16 08:25:02.261120: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:25:02.261260: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:25:02.337712: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:25:02.358608: Today's load divergence 97.13%, in-day adjustment 87.98%, damping 0.95x, yesterday 82.97% today 97.27% blend 64.93%
2026-08-16 08:25:02.358703: Today's predicted so far 5.15kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.15kWh forecast extra.
2026-08-16 08:25:02.358729: Today's actual load so far 4.72kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:25:02.393826: Inverter 0: Type SK Sunsynk
2026-08-16 08:25:02.393915: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:25:02.394067: Reserve min: 7%, battery_min: 7%
2026-08-16 08:25:02.394123: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:25:02.394349: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 294W, current battery voltage 51.2V, grid power -55W, load power 343W, PV Power 0W
2026-08-16 08:25:02.394482: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:25:02.394557: Inverter 0 scheduled charge enable is False
2026-08-16 08:25:02.394582: Inverter 0 charge windows currently []
2026-08-16 08:25:02.394604: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:25:02.394694: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:25:02.394724: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:25:02.394753: Inverter 0 scheduled discharge enable is False
2026-08-16 08:25:02.394851: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:25:02.394881: Inverter 0 discharge windows currently []
2026-08-16 08:25:02.394899: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:25:02.394914: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:25:02.394946: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:25:02.448870: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:25:02.449050: Plan was last updated on 2026-08-16 08:20:00+01:00 and is now 5.0 minutes old
2026-08-16 08:25:02.449395: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:25:02.449458: Best export window [  ]
2026-08-16 08:25:02.450358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:25:02.453515: Load divergence over 8.0 hours mean 343.69W, min 240.6W, max 912.0W, std dev 88.96W, divergence 12.94%
2026-08-16 08:25:02.469081: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:25:02.469215: LoadML is_calculating False
2026-08-16 08:25:02.469291: Creating pool of 12 processes to match your CPU count
2026-08-16 08:25:02.577834: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 396.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.89kWh, PV 0.0kWh
2026-08-16 08:25:02.696556: Battery has 10.92 hours left - now at 7.52kWh
2026-08-16 08:25:02.732745: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 420.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.65kWh, PV 0.0kWh
2026-08-16 08:25:02.806579: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.65kWh, PV 0.0kWh
2026-08-16 08:25:02.876261: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.89kWh, PV 0.0kWh
2026-08-16 08:25:02.876349: Saving plan best values to HA entities
2026-08-16 08:25:03.026898: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 08:25:03.032494: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:25:03.037957: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.85kWh, house 1.65kWh, export 0.0kWh, metric 240.89p, metric10 274.99p
2026-08-16 08:25:03.112073: Marginal costs baseline metric (no standing charge): 190.9043
2026-08-16 08:25:03.339342: Marginal energy costs matrix computed: min=14.14 max=33.05
2026-08-16 08:25:03.401343: Rate array import [{'start': 505, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 505, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:25:03.401993: - Your estimated bill for today is £1.38 and tomorrow is £7.36
2026-08-16 08:25:03.402040: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:25:03.402060: - The battery is currently at 47% and is in eco mode for the next 2 and a half hours.
2026-08-16 08:25:03.402075: - For the next 48 hours there will be no solar generation.
2026-08-16 08:25:03.402089: - You will run out of battery in 23 hours.
2026-08-16 08:25:03.402102: - Your next charge slot will be in 2 and a half hours where import rates will be free (0.0p).
2026-08-16 08:25:03.402128: 
2026-08-16 08:25:03.448155: Plan calculation took 1.00 seconds
2026-08-16 08:25:03.451539: No high rate period found
2026-08-16 08:25:03.496487: Import threshold used for optimisation was 23.43p
2026-08-16 08:25:03.542077: Low import rate windows [0: 08-16 08:00:00 - 08-16 08:30:00 @ 24.06, 1: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 2: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 3: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 4: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 5: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 6: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 7: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 8: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 9: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 10: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 11: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 12: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 13: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 14: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 15: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 16: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 17: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 18: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 19: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 20: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 21: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 22: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 23: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 24: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 25: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 26: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 27: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 28: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 29: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 30: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 31: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 32: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 33: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 34: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 35: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 36: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 37: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 38: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 39: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 40: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 41: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 42: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 43: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 44: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 45: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 46: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 47: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 48: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 49: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 50: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 51: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 52: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 53: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 54: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 55: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 56: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 57: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 58: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 59: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 60: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 61: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 62: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 63: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 64: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 65: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 66: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 67: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 68: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 69: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 70: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 71: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 72: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 73: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 74: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 75: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 76: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 77: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 78: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 79: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 80: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 81: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 82: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 83: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 84: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 85: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 86: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 87: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 88: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 89: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 90: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 91: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 92: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 93: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 94: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:25:03.547929: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:25:03.548032: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:25:03.548128: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:25:03.548431: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:25:03.548519: No export window planned
2026-08-16 08:25:03.548641: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:25:03.548673: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:25:03.548824: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:25:03.549076: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:25:03.549129: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:25:03.549182: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:25:03.549300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549335: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549361: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549428: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:25:03.549647: Inverter 0 count register writes 0
2026-08-16 08:25:03.563263: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:25:03.567870: Total inverter register writes now 826
2026-08-16 08:25:03.598098: Info: Completed run status Demand
2026-08-16 08:25:03.604746: Info: record_status Demand
2026-08-16 08:25:03.610818: Saved current settings to /config/predbat_config.json
2026-08-16 08:25:03.611145: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:25:41.718894: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:25:41.719188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:25:41.719262: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:25:41.719447: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:25:41.719518: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:25:41.719540: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:25:41.719557: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:27:41.936998: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:27:41.937263: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:27:41.937329: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:27:41.937500: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:27:41.937538: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:27:41.937559: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:27:41.937577: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:29:42.152752: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:29:42.153099: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:29:42.153160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:29:42.153403: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:29:42.153476: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:29:42.153503: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:29:42.153521: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:30:00.249805: --------------- PredBat - update at 2026-08-16 08:30:00+01:00 with clock skew 0 minutes, minutes now 510
2026-08-16 08:30:00.250615: Saved current settings to /config/predbat_config.json
2026-08-16 08:30:00.250754: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 08:30:00.250850: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:30:00.250946: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:30:00.268845: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:30:00.269052: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:30:00.269268: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:30:00.269865: Cars 1 charging from battery False 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-16 08:30:00.269989: Predbat mode is set to Control charge & discharge
2026-08-16 08:30:00.499762: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:30:00.499903: Using load_power data to fill gaps in load_today data
2026-08-16 08:30:01.398011: Processing 721 30-minute periods for power integration
2026-08-16 08:30:01.556542: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:30:01.556675: Car charging hold False, threshold 6.0kWh
2026-08-16 08:30:01.556735: Current data so far today: load 4.85kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:30:01.569301: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:30:01.569700: Standing charge is set to 49.98p
2026-08-16 08:30:01.604231: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:30:01.604342: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:30:01.604550: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 509.9 minutes
2026-08-16 08:30:01.604938: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 509.8 minutes
2026-08-16 08:30:01.608466: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:30:01.694675: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:30:01.744980: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:30:01.745467: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:30:01.780166: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:30:01.780284: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:30:01.781340: High export rate found rates in range 99p to -99p
2026-08-16 08:30:01.850711: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:30:01.850844: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:30:01.862593: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:30:01.862966: 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-16 08:30:01.916885: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:30:01.917055: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:30:01.981102: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:30:02.002470: Today's load divergence 97.36%, in-day adjustment 88.11%, damping 0.95x, yesterday 82.97% today 97.49% blend 64.58%
2026-08-16 08:30:02.002567: Today's predicted so far 5.27kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.27kWh forecast extra.
2026-08-16 08:30:02.002595: Today's actual load so far 4.86kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:30:02.043065: Inverter 0: Type SK Sunsynk
2026-08-16 08:30:02.043183: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:30:02.043386: Reserve min: 7%, battery_min: 7%
2026-08-16 08:30:02.043465: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:30:02.043781: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 253W, current battery voltage 51.2V, grid power -56W, load power 305W, PV Power 0W
2026-08-16 08:30:02.043943: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:30:02.044035: Inverter 0 scheduled charge enable is False
2026-08-16 08:30:02.044070: Inverter 0 charge windows currently []
2026-08-16 08:30:02.044097: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:30:02.044229: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:30:02.044267: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:30:02.044303: Inverter 0 scheduled discharge enable is False
2026-08-16 08:30:02.044427: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:30:02.044463: Inverter 0 discharge windows currently []
2026-08-16 08:30:02.044486: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:30:02.044507: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:30:02.044525: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:30:02.099789: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:30:02.099887: Plan was last updated on 2026-08-16 08:20:00+01:00 and is now 10.0 minutes old
2026-08-16 08:30:02.100093: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:30:02.100147: Best export window [  ]
2026-08-16 08:30:02.100782: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:30:02.103291: Load divergence over 8.0 hours mean 342.16W, min 223.8W, max 1097.4W, std dev 97.88W, divergence 14.3%
2026-08-16 08:30:02.118810: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:30:02.118932: LoadML is_calculating False
2026-08-16 08:30:02.118997: Creating pool of 12 processes to match your CPU count
2026-08-16 08:30:02.241717: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 21.05kWh, PV 0.0kWh
2026-08-16 08:30:02.379875: Battery has 10.92 hours left - now at 7.52kWh
2026-08-16 08:30:02.426296: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 422.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.82kWh, PV 0.0kWh
2026-08-16 08:30:02.514898: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.82kWh, PV 0.0kWh
2026-08-16 08:30:02.606867: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 21.05kWh, PV 0.0kWh
2026-08-16 08:30:02.606968: Saving plan best values to HA entities
2026-08-16 08:30:02.793469: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:30:02.799988: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:30:02.806527: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.3kWh, house 1.68kWh, export 0.0kWh, metric 252.47p, metric10 284.82p
2026-08-16 08:30:02.881038: Marginal costs baseline metric (no standing charge): 202.4847
2026-08-16 08:30:03.099779: Marginal energy costs matrix computed: min=11.82 max=32.66
2026-08-16 08:30:03.169299: Rate array import [{'start': 510, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 510, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:30:03.170087: - Your estimated bill for today is £1.38 and tomorrow is £7.35
2026-08-16 08:30:03.170269: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:30:03.170314: - The battery is currently at 47% and is in eco mode for the next 2 and a half hours.
2026-08-16 08:30:03.170332: - For the next 48 hours there will be no solar generation.
2026-08-16 08:30:03.170346: - You will run out of battery in 23 hours.
2026-08-16 08:30:03.170360: - Your next charge slot will be in 2 and a half hours where import rates will be free (0.0p).
2026-08-16 08:30:03.170379: 
2026-08-16 08:30:03.221964: Plan calculation took 1.12 seconds
2026-08-16 08:30:03.225723: No high rate period found
2026-08-16 08:30:03.280182: Import threshold used for optimisation was 23.43p
2026-08-16 08:30:03.351513: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06]
2026-08-16 08:30:03.360856: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:30:03.361043: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:30:03.361191: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:30:03.361479: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:30:03.361585: No export window planned
2026-08-16 08:30:03.361712: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:30:03.361749: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:30:03.361886: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:30:03.362074: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:30:03.362157: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:30:03.362236: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:30:03.362337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362375: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362463: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:03.362782: Inverter 0 count register writes 0
2026-08-16 08:30:03.382574: 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-16 08:30:03.382776: Recompute is saving previous plan...
2026-08-16 08:30:03.386160: Best charge window [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0% ]
2026-08-16 08:30:03.386263: Best export window [  ]
2026-08-16 08:30:03.387096: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:30:03.390248: Load divergence over 8.0 hours mean 342.16W, min 223.8W, max 1097.4W, std dev 97.88W, divergence 14.3%
2026-08-16 08:30:03.407951: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:30:03.408082: LoadML is_calculating False
2026-08-16 08:30:03.408169: Creating pool of 12 processes to match your CPU count
2026-08-16 08:30:03.506168: 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(0.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-16 08:30:03.508233: Optimise levels pass started at 2026-08-16 08:30:03
2026-08-16 08:30:03.508300: Optimise all windows, total charge 94 export 1
2026-08-16 08:30:04.792474: >> Region optimisation pass width 960 gives best_metric 532.12p, best_cost 544.39p, best_cycle 44.3kWh, best_import 27.37kWh
2026-08-16 08:30:05.192723: >> Region optimisation pass width 480 gives best_metric 532.12p, best_cost 544.39p, best_cycle 44.3kWh, best_import 27.37kWh
2026-08-16 08:30:05.710483: >> Region optimisation pass width 240 gives best_metric 532.12p, best_cost 544.39p, best_cycle 44.3kWh, best_import 27.37kWh
2026-08-16 08:30:06.850817: >> Region optimisation pass width 120 gives best_metric 532.12p, best_cost 544.39p, best_cycle 44.3kWh, best_import 27.37kWh
2026-08-16 08:30:06.851211: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 52
2026-08-16 08:30:06.851305: Optimise levels pass ended at 2026-08-16 08:30:06, duration 3.3 seconds tried 334 combinations
2026-08-16 08:30:06.851407: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 532.12p, best_keep 0kWh, best_cycle 44.3kWh, best_carbon 0kg, best_import 27.37kWh
2026-08-16 08:30:06.868223: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:30:12.014739: Tweak plan optimisation started metric 163.71p, cost 179.12p
2026-08-16 08:30:12.402512: Tweak optimisation finished metric 163.71p, cost 179.12p, metric_keep 0kWh, cycle 19.5kWh, carbon 0kg, import 11.05kWh, changed 8 window(s)
2026-08-16 08:30:12.423256: Swap charge optimisation started metric 163.71p, cost 179.12p, min_improvement_swap 0.1p
2026-08-16 08:30:17.062219: Swap charge optimisation finished metric 163.71p, cost 179.12p
2026-08-16 08:30:17.179666: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 158.52p -> 158.52p, plan now metric 163.83p, cost 179.12p, cycle 19.5kWh, import 11.05kWh
2026-08-16 08:30:17.189301: Raw charge windows [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 08:30:17.189792: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:30:17.190019: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:30:17.190216: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 08:30:00 @ 24.56p 100% ] reserve 1.12
2026-08-16 08:30:17.221033: Previous plan best metric is 163.75 (cost 179.01) and new plan best metric is 163.71 (cost 179.12)
2026-08-16 08:30:17.221278: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:30:17.221462: Plan valid is now true after recompute was False
2026-08-16 08:30:17.245679: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.91kWh, PV 0.0kWh
2026-08-16 08:30:17.359252: Battery has 10.92 hours left - now at 7.52kWh
2026-08-16 08:30:17.396119: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.68kWh, PV 0.0kWh
2026-08-16 08:30:17.469764: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.68kWh, PV 0.0kWh
2026-08-16 08:30:17.546499: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 229.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.91kWh, PV 0.0kWh
2026-08-16 08:30:17.546596: Saving plan best values to HA entities
2026-08-16 08:30:17.691256: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:30:17.697621: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:30:17.704255: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.34kWh, house 1.68kWh, export 0.0kWh, metric 229.0p, metric10 264.56p
2026-08-16 08:30:17.785803: Marginal costs baseline metric (no standing charge): 179.0124
2026-08-16 08:30:18.076001: Marginal energy costs matrix computed: min=11.82 max=32.66
2026-08-16 08:30:18.152421: Rate array import [{'start': 510, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 510, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:30:18.153431: - Your estimated bill for today is £1.38 and tomorrow is £7.35
2026-08-16 08:30:18.153539: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:30:18.153581: - The battery is currently at 47% and is in eco mode for the next 2 and a half hours.
2026-08-16 08:30:18.153611: - For the next 48 hours there will be no solar generation.
2026-08-16 08:30:18.153658: - You will run out of battery in 23 hours.
2026-08-16 08:30:18.153691: - Your next charge slot will be in 2 and a half hours where import rates will be free (0.0p).
2026-08-16 08:30:18.153728: 
2026-08-16 08:30:18.221683: Plan calculation took 14.84 seconds
2026-08-16 08:30:18.222252: Inverter 0: Type SK Sunsynk
2026-08-16 08:30:18.222314: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:30:18.222623: Reserve min: 7%, battery_min: 7%
2026-08-16 08:30:18.222711: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:30:18.223210: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 252W, current battery voltage 51.2V, grid power -55W, load power 303W, PV Power 0W
2026-08-16 08:30:18.223514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:30:18.223665: Inverter 0 scheduled charge enable is False
2026-08-16 08:30:18.223703: Inverter 0 charge windows currently []
2026-08-16 08:30:18.223734: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:30:18.223894: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:30:18.223933: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:30:18.224007: Inverter 0 scheduled discharge enable is False
2026-08-16 08:30:18.224203: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:30:18.224246: Inverter 0 discharge windows currently []
2026-08-16 08:30:18.224271: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:30:18.224289: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:30:18.224307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:30:18.295852: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:30:18.296059: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:30:18.296186: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:30:18.296449: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:30:18.296556: No export window planned
2026-08-16 08:30:18.296715: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:30:18.296759: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:30:18.297065: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:30:18.297322: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:30:18.297382: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:30:18.297445: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:30:18.297533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297625: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297683: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297709: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.297991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:30:18.298032: Inverter 0 count register writes 0
2026-08-16 08:30:18.325961: Total inverter register writes now 826
2026-08-16 08:30:18.368157: Info: Completed run status Demand
2026-08-16 08:30:18.375149: Info: record_status Demand
2026-08-16 08:30:18.382670: Saved current settings to /config/predbat_config.json
2026-08-16 08:30:18.383063: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:30:56.500616: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:30:56.501466: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:30:56.501553: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:30:56.501802: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:30:56.501879: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:30:56.501920: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:30:56.501955: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:32:56.721709: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:32:56.721966: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:32:56.722012: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:32:56.722177: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:32:56.722355: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:32:56.722384: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:32:56.722414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:34:56.943389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:34:56.943676: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:34:56.943712: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:34:56.943855: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:34:56.943903: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:34:56.943926: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:34:56.943948: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:35:00.029380: --------------- PredBat - update at 2026-08-16 08:35:00+01:00 with clock skew 0 minutes, minutes now 515
2026-08-16 08:35:00.030153: Saved current settings to /config/predbat_config.json
2026-08-16 08:35:00.030277: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 08:35:00.030364: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:35:00.030483: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:35:00.055658: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:35:00.055820: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:35:00.056054: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:35:00.056691: Cars 1 charging from battery False 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-16 08:35:00.056824: Predbat mode is set to Control charge & discharge
2026-08-16 08:35:00.241416: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:35:00.241602: Using load_power data to fill gaps in load_today data
2026-08-16 08:35:01.027068: Processing 721 30-minute periods for power integration
2026-08-16 08:35:01.200244: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:35:01.200378: Car charging hold False, threshold 6.0kWh
2026-08-16 08:35:01.200432: Current data so far today: load 4.9kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:35:01.212516: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:35:01.212893: Standing charge is set to 49.98p
2026-08-16 08:35:01.238235: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:35:01.238346: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:35:01.238600: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 515.0 minutes
2026-08-16 08:35:01.238991: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 514.8 minutes
2026-08-16 08:35:01.242189: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:35:01.323014: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:35:01.373750: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:35:01.374112: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:35:01.408739: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:35:01.408851: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:35:01.410019: High export rate found rates in range 99p to -99p
2026-08-16 08:35:01.479966: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:35:01.480096: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:35:01.703882: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:35:01.704602: 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-16 08:35:01.775643: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:35:01.775788: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:35:01.855435: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:35:01.883525: Today's load divergence 97.53%, in-day adjustment 88.22%, damping 0.95x, yesterday 82.97% today 97.66% blend 64.24%
2026-08-16 08:35:01.883657: Today's predicted so far 5.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.35kWh forecast extra.
2026-08-16 08:35:01.883688: Today's actual load so far 4.97kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:35:01.927202: Inverter 0: Type SK Sunsynk
2026-08-16 08:35:01.927298: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:35:01.927500: Reserve min: 7%, battery_min: 7%
2026-08-16 08:35:01.927568: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:35:01.927863: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 299W, current battery voltage 51.2V, grid power -54W, load power 349W, PV Power 0W
2026-08-16 08:35:01.928031: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:35:01.928123: Inverter 0 scheduled charge enable is False
2026-08-16 08:35:01.928156: Inverter 0 charge windows currently []
2026-08-16 08:35:01.928183: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:35:01.928288: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:35:01.928323: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:35:01.928358: Inverter 0 scheduled discharge enable is False
2026-08-16 08:35:01.928503: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:35:01.928544: Inverter 0 discharge windows currently []
2026-08-16 08:35:01.928567: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:35:01.928630: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:35:01.928661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:35:01.996468: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:35:01.996584: Plan was last updated on 2026-08-16 08:30:00+01:00 and is now 5.0 minutes old
2026-08-16 08:35:01.996882: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:35:01.996932: Best export window [  ]
2026-08-16 08:35:01.997863: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:35:02.001272: Load divergence over 8.0 hours mean 340.67W, min 213.6W, max 1026.0W, std dev 94.2W, divergence 13.83%
2026-08-16 08:35:02.018189: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:35:02.018311: LoadML is_calculating False
2026-08-16 08:35:02.018389: Creating pool of 12 processes to match your CPU count
2026-08-16 08:35:02.133245: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 396.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 21.03kWh, PV 0.0kWh
2026-08-16 08:35:03.017903: Battery has 10.83 hours left - now at 7.52kWh
2026-08-16 08:35:03.055520: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 420.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.8kWh, PV 0.0kWh
2026-08-16 08:35:03.126850: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.8kWh, PV 0.0kWh
2026-08-16 08:35:03.222097: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 21.03kWh, PV 0.0kWh
2026-08-16 08:35:03.222196: Saving plan best values to HA entities
2026-08-16 08:35:03.417424: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:35:03.423587: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:35:03.429490: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.81kWh, house 1.69kWh, export 0.0kWh, metric 240.62p, metric10 274.55p
2026-08-16 08:35:03.498276: Marginal costs baseline metric (no standing charge): 190.6324
2026-08-16 08:35:03.717648: Marginal energy costs matrix computed: min=9.74 max=32.56
2026-08-16 08:35:03.788334: Rate array import [{'start': 515, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 515, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:35:03.788939: - Your estimated bill for today is £1.37 and tomorrow is £7.33
2026-08-16 08:35:03.789010: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:35:03.789030: - The battery is currently at 47% and is in eco mode for the next 2 and a half hours.
2026-08-16 08:35:03.789050: - For the next 48 hours there will be no solar generation.
2026-08-16 08:35:03.789069: - You will run out of battery in 23 hours.
2026-08-16 08:35:03.789091: - Your next charge slot will be in 2 and a half hours where import rates will be free (0.0p).
2026-08-16 08:35:03.789106: 
2026-08-16 08:35:03.850281: Plan calculation took 1.85 seconds
2026-08-16 08:35:03.853106: No high rate period found
2026-08-16 08:35:03.899367: Import threshold used for optimisation was 23.43p
2026-08-16 08:35:03.945910: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 94: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 08:35:03.956604: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:35:03.956773: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:35:03.956920: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:35:03.957224: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:35:03.957323: No export window planned
2026-08-16 08:35:03.957510: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:35:03.957551: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:35:03.957709: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:35:03.957905: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:35:03.957967: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:35:03.958061: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:35:03.958184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958264: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:35:03.958833: Inverter 0 count register writes 0
2026-08-16 08:35:03.974210: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:35:03.979231: Total inverter register writes now 826
2026-08-16 08:35:04.008980: Info: Completed run status Demand
2026-08-16 08:35:04.014630: Info: record_status Demand
2026-08-16 08:35:04.020759: Saved current settings to /config/predbat_config.json
2026-08-16 08:35:04.021123: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:35:42.127131: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:35:42.127476: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:35:42.127558: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:35:42.127804: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:35:42.127868: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:35:42.127912: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:35:42.127956: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:36:51.873245: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 08:36:52.841403: Processing 1345 30-minute periods for power integration
2026-08-16 08:36:52.929901: ML Component: Car charging hold False, car energy reported load False
2026-08-16 08:36:53.027630: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:36:53.133453: ML Temperature data points: 49886
2026-08-16 08:36:53.422616: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 08:36:53.468389: ML Component: Data fetch completed, load data age 57.0 days, 16655 data points
2026-08-16 08:36:53.468521: ML Component: No training needed, model age is 1.76 hours
2026-08-16 08:36:53.468593: ML Component: Generating predictions load data age 57.0 days, 16655 data points
2026-08-16 08:36:53.620121: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0406 max_dow {0: 0.09880312496256083, 1: 0.10396562554407864, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.0976194444042941, 6: 0.10672812573947013}
2026-08-16 08:37:01.939499: ML Component: Generated 576 predictions (total 31.15 kWh over 48h)
2026-08-16 08:37:01.977481: ML Component: Prediction cycle completed
2026-08-16 08:37:02.078760: ML Component: Saved 16655 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 08:37:56.701702: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:37:56.701979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:37:56.702024: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:37:56.702189: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:37:56.702232: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:37:56.702253: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:37:56.702270: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:39:56.928450: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:39:56.928716: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:39:56.928762: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:39:56.928931: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:39:56.929021: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:39:56.929045: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:39:56.929063: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:40:00.013550: --------------- PredBat - update at 2026-08-16 08:40:00+01:00 with clock skew 0 minutes, minutes now 520
2026-08-16 08:40:00.014434: Saved current settings to /config/predbat_config.json
2026-08-16 08:40:00.014576: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 08:40:00.014724: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:40:00.014863: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:40:00.052644: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:40:00.052826: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:40:00.053214: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:40:00.054250: Cars 1 charging from battery False 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-16 08:40:00.054413: Predbat mode is set to Control charge & discharge
2026-08-16 08:40:00.236087: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:40:00.236246: Using load_power data to fill gaps in load_today data
2026-08-16 08:40:01.000164: Processing 721 30-minute periods for power integration
2026-08-16 08:40:01.183772: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:40:01.183946: Car charging hold False, threshold 6.0kWh
2026-08-16 08:40:01.184004: Current data so far today: load 4.8kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:40:01.199506: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:40:01.199908: Standing charge is set to 49.98p
2026-08-16 08:40:01.230287: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:40:01.230396: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:40:01.230654: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 520.0 minutes
2026-08-16 08:40:01.231256: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 519.8 minutes
2026-08-16 08:40:01.234839: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:40:01.329642: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:40:01.393578: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:40:01.394102: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:40:01.439600: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:40:01.439741: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:40:01.441123: High export rate found rates in range 99p to -99p
2026-08-16 08:40:01.521677: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:40:01.521874: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:40:01.535942: Battery level now 7.52kWh, -1hr ago 7.8kWh, at midnight 12.21kWh, battery value change in the last hour -0.28p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:40:01.536433: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 08:40:01.597921: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:40:01.598118: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:40:01.683088: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:40:01.708226: Today's load divergence 96.79%, in-day adjustment 88.02%, damping 0.95x, yesterday 82.97% today 96.95% blend 63.89%
2026-08-16 08:40:01.708321: Today's predicted so far 5.33kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.33kWh forecast extra.
2026-08-16 08:40:01.708348: Today's actual load so far 4.84kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:40:01.754080: Inverter 0: Type SK Sunsynk
2026-08-16 08:40:01.754189: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:40:01.754379: Reserve min: 7%, battery_min: 7%
2026-08-16 08:40:01.754454: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:40:01.754733: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -53W, load power 313W, PV Power 0W
2026-08-16 08:40:01.754911: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:40:01.755002: Inverter 0 scheduled charge enable is False
2026-08-16 08:40:01.755037: Inverter 0 charge windows currently []
2026-08-16 08:40:01.755063: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:40:01.755168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:40:01.755202: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:40:01.755237: Inverter 0 scheduled discharge enable is False
2026-08-16 08:40:01.755357: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:40:01.755393: Inverter 0 discharge windows currently []
2026-08-16 08:40:01.755415: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:40:01.755434: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:40:01.755450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:40:01.820688: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:40:01.820788: Plan was last updated on 2026-08-16 08:30:00+01:00 and is now 10.0 minutes old
2026-08-16 08:40:01.821152: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:40:01.821211: Best export window [  ]
2026-08-16 08:40:01.822244: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:40:01.825862: Load divergence over 8.0 hours mean 340.75W, min 222.6W, max 708.0W, std dev 75.92W, divergence 11.14%
2026-08-16 08:40:01.843193: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:40:01.843331: LoadML is_calculating False
2026-08-16 08:40:01.843399: Creating pool of 12 processes to match your CPU count
2026-08-16 08:40:01.987229: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 395.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.93kWh, PV 0.0kWh
2026-08-16 08:40:02.145484: Battery has 10.83 hours left - now at 7.52kWh
2026-08-16 08:40:02.201100: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 419.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.7kWh, PV 0.0kWh
2026-08-16 08:40:02.293287: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 283.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.7kWh, PV 0.0kWh
2026-08-16 08:40:02.388520: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.93kWh, PV 0.0kWh
2026-08-16 08:40:02.388623: Saving plan best values to HA entities
2026-08-16 08:40:02.603621: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:40:02.610405: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:40:02.618528: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.25kWh, house 1.67kWh, export 0.0kWh, metric 251.09p, metric10 283.18p
2026-08-16 08:40:02.734823: Marginal costs baseline metric (no standing charge): 201.1034
2026-08-16 08:40:02.996054: Marginal energy costs matrix computed: min=7.56 max=32.81
2026-08-16 08:40:03.081832: Rate array import [{'start': 520, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 520, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:40:03.082573: - Your estimated bill for today is £1.36 and tomorrow is £7.34
2026-08-16 08:40:03.082634: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:40:03.082659: - The battery is currently at 47% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 08:40:03.082677: - For the next 48 hours there will be no solar generation.
2026-08-16 08:40:03.082694: - You will run out of battery in 23 hours.
2026-08-16 08:40:03.082711: - Your next charge slot will be in 2 and a quarter hours where import rates will be free (0.0p).
2026-08-16 08:40:03.082728: 
2026-08-16 08:40:03.145766: Plan calculation took 1.32 seconds
2026-08-16 08:40:03.149254: No high rate period found
2026-08-16 08:40:03.205467: Import threshold used for optimisation was 23.43p
2026-08-16 08:40:03.267944: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 94: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 08:40:03.275567: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:40:03.275758: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:40:03.275945: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:40:03.276282: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:40:03.276426: No export window planned
2026-08-16 08:40:03.276600: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:40:03.276644: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:40:03.276820: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:40:03.277173: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:40:03.277264: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:40:03.277361: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:40:03.277506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277568: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277652: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277874: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.277962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:03.278171: Inverter 0 count register writes 0
2026-08-16 08:40:03.303477: 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-16 08:40:03.303677: Recompute is saving previous plan...
2026-08-16 08:40:03.307856: Best charge window [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0% ]
2026-08-16 08:40:03.308024: Best export window [  ]
2026-08-16 08:40:03.309412: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:40:03.312713: Load divergence over 8.0 hours mean 340.75W, min 222.6W, max 708.0W, std dev 75.92W, divergence 11.14%
2026-08-16 08:40:03.337526: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:40:03.337662: LoadML is_calculating False
2026-08-16 08:40:03.337752: Creating pool of 12 processes to match your CPU count
2026-08-16 08:40:03.453010: 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(0.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-16 08:40:03.454650: Optimise levels pass started at 2026-08-16 08:40:03
2026-08-16 08:40:03.454704: Optimise all windows, total charge 94 export 1
2026-08-16 08:40:04.787044: >> Region optimisation pass width 960 gives best_metric 531.85p, best_cost 544.13p, best_cycle 44.17kWh, best_import 27.35kWh
2026-08-16 08:40:05.233456: >> Region optimisation pass width 480 gives best_metric 531.85p, best_cost 544.13p, best_cycle 44.17kWh, best_import 27.35kWh
2026-08-16 08:40:05.992816: >> Region optimisation pass width 240 gives best_metric 531.85p, best_cost 544.13p, best_cycle 44.17kWh, best_import 27.35kWh
2026-08-16 08:40:07.230733: >> Region optimisation pass width 120 gives best_metric 531.85p, best_cost 544.13p, best_cycle 44.17kWh, best_import 27.35kWh
2026-08-16 08:40:07.231427: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 52
2026-08-16 08:40:07.231590: Optimise levels pass ended at 2026-08-16 08:40:07, duration 3.8 seconds tried 357 combinations
2026-08-16 08:40:07.231708: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 531.85p, best_keep 0kWh, best_cycle 44.17kWh, best_carbon 0kg, best_import 27.35kWh
2026-08-16 08:40:07.256600: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:40:11.117030: Tweak plan optimisation started metric 162.38p, cost 177.7p
2026-08-16 08:40:11.413773: Tweak optimisation finished metric 162.38p, cost 177.7p, metric_keep 0kWh, cycle 19.46kWh, carbon 0kg, import 10.99kWh, changed 8 window(s)
2026-08-16 08:40:11.437222: Swap charge optimisation started metric 162.38p, cost 177.7p, min_improvement_swap 0.1p
2026-08-16 08:40:15.528806: Swap charge optimisation finished metric 162.38p, cost 177.7p
2026-08-16 08:40:15.649561: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 157.1p -> 157.1p, plan now metric 162.51p, cost 177.7p, cycle 19.46kWh, import 10.99kWh
2026-08-16 08:40:15.659392: Raw charge windows [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100% ] reserve 1.12
2026-08-16 08:40:15.659940: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:40:15.660213: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:40:15.660431: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:40:15.691822: Previous plan best metric is 162.44 (cost 177.75) and new plan best metric is 162.38 (cost 177.7)
2026-08-16 08:40:15.692072: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:40:15.692267: Plan valid is now true after recompute was False
2026-08-16 08:40:15.715430: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 392.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.8kWh, PV 0.0kWh
2026-08-16 08:40:15.825395: Battery has 10.83 hours left - now at 7.52kWh
2026-08-16 08:40:15.868612: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 415.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.57kWh, PV 0.0kWh
2026-08-16 08:40:15.942887: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 263.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.57kWh, PV 0.0kWh
2026-08-16 08:40:16.024279: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 227.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.8kWh, PV 0.0kWh
2026-08-16 08:40:16.024379: Saving plan best values to HA entities
2026-08-16 08:40:16.187887: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:40:16.193490: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:40:16.198713: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.28kWh, house 1.67kWh, export 0.0kWh, metric 227.73p, metric10 263.04p
2026-08-16 08:40:16.266695: Marginal costs baseline metric (no standing charge): 177.7474
2026-08-16 08:40:16.499252: Marginal energy costs matrix computed: min=7.56 max=32.81
2026-08-16 08:40:16.569124: Rate array import [{'start': 520, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 520, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:40:16.569767: - Your estimated bill for today is £1.36 and tomorrow is £7.34
2026-08-16 08:40:16.569812: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:40:16.569834: - The battery is currently at 47% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 08:40:16.569852: - For the next 48 hours there will be no solar generation.
2026-08-16 08:40:16.569885: - You will run out of battery in 23 hours.
2026-08-16 08:40:16.569905: - Your next charge slot will be in 2 and a quarter hours where import rates will be free (0.0p).
2026-08-16 08:40:16.569922: 
2026-08-16 08:40:16.623353: Plan calculation took 13.32 seconds
2026-08-16 08:40:16.623718: Inverter 0: Type SK Sunsynk
2026-08-16 08:40:16.623779: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:40:16.624084: Reserve min: 7%, battery_min: 7%
2026-08-16 08:40:16.624179: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:40:16.624534: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -55W, load power 313W, PV Power 0W
2026-08-16 08:40:16.624771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:40:16.624926: Inverter 0 scheduled charge enable is False
2026-08-16 08:40:16.625007: Inverter 0 charge windows currently []
2026-08-16 08:40:16.625044: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:40:16.625167: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:40:16.625203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:40:16.625240: Inverter 0 scheduled discharge enable is False
2026-08-16 08:40:16.625368: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:40:16.625405: Inverter 0 discharge windows currently []
2026-08-16 08:40:16.625427: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:40:16.625450: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:40:16.625467: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:40:16.680493: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:40:16.680646: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:40:16.680734: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:40:16.681010: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:40:16.681097: No export window planned
2026-08-16 08:40:16.681226: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:40:16.681262: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:40:16.681396: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:40:16.681560: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:40:16.681614: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:40:16.681678: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:40:16.681776: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.681986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:40:16.682263: Inverter 0 count register writes 0
2026-08-16 08:40:16.702799: Total inverter register writes now 826
2026-08-16 08:40:16.734886: Info: Completed run status Demand
2026-08-16 08:40:16.741248: Info: record_status Demand
2026-08-16 08:40:16.748313: Saved current settings to /config/predbat_config.json
2026-08-16 08:40:16.748656: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:40:56.864143: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:40:56.864433: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:40:56.864496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:40:56.864721: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:40:56.864768: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:40:56.864790: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:40:56.864824: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:42:57.082049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:42:57.082295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:42:57.082331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:42:57.082480: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:42:57.082519: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:42:57.082541: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:42:57.082558: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:44:57.306762: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:44:57.307092: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:44:57.307158: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:44:57.307372: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:44:57.307431: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:44:57.307466: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:44:57.307494: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:45:00.382067: --------------- PredBat - update at 2026-08-16 08:45:00+01:00 with clock skew 0 minutes, minutes now 525
2026-08-16 08:45:00.382913: Saved current settings to /config/predbat_config.json
2026-08-16 08:45:00.623196: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:45:00.623330: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:45:00.645059: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:45:00.645203: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:45:00.645417: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:45:00.646003: Cars 1 charging from battery False 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-16 08:45:00.646193: Predbat mode is set to Control charge & discharge
2026-08-16 08:45:00.841710: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:45:00.841869: Using load_power data to fill gaps in load_today data
2026-08-16 08:45:01.623447: Processing 721 30-minute periods for power integration
2026-08-16 08:45:01.780365: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:45:01.780486: Car charging hold False, threshold 6.0kWh
2026-08-16 08:45:01.780539: Current data so far today: load 4.8kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:45:01.792929: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:45:01.793401: Standing charge is set to 49.98p
2026-08-16 08:45:01.822879: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:45:01.822988: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:45:01.823197: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 525.0 minutes
2026-08-16 08:45:01.823613: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 524.8 minutes
2026-08-16 08:45:01.827004: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:45:01.913943: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:45:01.976854: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:45:01.977718: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:45:02.019918: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:45:02.020044: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:45:02.021388: High export rate found rates in range 99p to -99p
2026-08-16 08:45:02.119390: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:45:02.119551: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:45:02.133737: Battery level now 7.52kWh, -1hr ago 7.8kWh, at midnight 12.21kWh, battery value change in the last hour -0.28p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:45:02.134099: 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-16 08:45:02.192181: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:45:02.192306: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:45:02.259587: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:45:02.284597: Today's load divergence 96.4%, in-day adjustment 87.93%, damping 0.95x, yesterday 82.97% today 96.58% blend 63.54%
2026-08-16 08:45:02.285372: Today's predicted so far 5.31kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.31kWh forecast extra.
2026-08-16 08:45:02.285449: Today's actual load so far 4.77kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:45:02.335982: Inverter 0: Type SK Sunsynk
2026-08-16 08:45:02.336080: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:45:02.336341: Reserve min: 7%, battery_min: 7%
2026-08-16 08:45:02.336440: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:45:02.336787: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -55W, load power 332W, PV Power 0W
2026-08-16 08:45:02.337040: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:45:02.337169: Inverter 0 scheduled charge enable is False
2026-08-16 08:45:02.337206: Inverter 0 charge windows currently []
2026-08-16 08:45:02.337262: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:45:02.337438: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:45:02.337483: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:45:02.337556: Inverter 0 scheduled discharge enable is False
2026-08-16 08:45:02.337734: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:45:02.337779: Inverter 0 discharge windows currently []
2026-08-16 08:45:02.337811: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:45:02.337846: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:45:02.337878: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:45:02.399456: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:45:02.399589: Plan was last updated on 2026-08-16 08:40:00+01:00 and is now 5.0 minutes old
2026-08-16 08:45:02.399848: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:45:02.399916: Best export window [  ]
2026-08-16 08:45:02.400691: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:45:02.403765: Load divergence over 8.0 hours mean 340.67W, min 244.8W, max 864.0W, std dev 88.38W, divergence 12.97%
2026-08-16 08:45:02.422361: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:45:02.422468: LoadML is_calculating False
2026-08-16 08:45:02.422551: Creating pool of 12 processes to match your CPU count
2026-08-16 08:45:02.538284: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 392.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.83kWh, PV 0.0kWh
2026-08-16 08:45:02.666551: Battery has 10.75 hours left - now at 7.52kWh
2026-08-16 08:45:02.709599: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 416.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.6kWh, PV 0.0kWh
2026-08-16 08:45:02.784674: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 271.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.6kWh, PV 0.0kWh
2026-08-16 08:45:02.867423: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 238.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.83kWh, PV 0.0kWh
2026-08-16 08:45:02.867520: Saving plan best values to HA entities
2026-08-16 08:45:03.026330: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:45:03.031862: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 08:45:03.036941: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.73kWh, house 1.67kWh, export 0.0kWh, metric 238.42p, metric10 271.99p
2026-08-16 08:45:03.104011: Marginal costs baseline metric (no standing charge): 188.438
2026-08-16 08:45:03.326917: Marginal energy costs matrix computed: min=5.63 max=33.06
2026-08-16 08:45:03.397565: Rate array import [{'start': 525, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 525, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:45:03.398223: - Your estimated bill for today is £1.35 and tomorrow is £7.36
2026-08-16 08:45:03.398282: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:45:03.398318: - The battery is currently at 47% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 08:45:03.398354: - For the next 48 hours there will be no solar generation.
2026-08-16 08:45:03.398387: - You will run out of battery in 23 hours.
2026-08-16 08:45:03.398419: - Your next charge slot will be in 2 and a quarter hours where import rates will be free (0.0p).
2026-08-16 08:45:03.398448: 
2026-08-16 08:45:03.452041: Plan calculation took 1.05 seconds
2026-08-16 08:45:03.454925: No high rate period found
2026-08-16 08:45:03.506614: Import threshold used for optimisation was 24.94p
2026-08-16 08:45:03.564225: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 94: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 08:45:03.572456: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 08:45:03.572624: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:45:03.572752: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:45:03.573082: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:45:03.573198: No export window planned
2026-08-16 08:45:03.573328: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:45:03.573380: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:45:03.573545: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:45:03.573747: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:45:03.573808: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:45:03.573869: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:45:03.573975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574357: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:45:03.574485: Inverter 0 count register writes 0
2026-08-16 08:45:03.593487: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:45:03.599159: Total inverter register writes now 826
2026-08-16 08:45:03.634542: Info: Completed run status Demand
2026-08-16 08:45:03.642001: Info: record_status Demand
2026-08-16 08:45:03.649863: Saved current settings to /config/predbat_config.json
2026-08-16 08:45:03.650205: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:45:41.765570: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:45:41.765817: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:45:41.765857: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:45:41.766020: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:45:41.766064: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:45:41.766086: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:45:41.766104: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:47:41.988532: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:47:41.988779: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:47:41.988814: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:47:41.989007: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:47:41.989065: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:47:41.989088: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:47:41.989106: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:49:42.212703: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:49:42.213003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:49:42.213062: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:49:42.213271: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:49:42.213314: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:49:42.213335: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:49:42.213355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:50:00.312135: --------------- PredBat - update at 2026-08-16 08:50:00+01:00 with clock skew 0 minutes, minutes now 530
2026-08-16 08:50:00.312913: Saved current settings to /config/predbat_config.json
2026-08-16 08:50:00.313095: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 08:50:00.313237: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:50:00.313328: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:50:00.333583: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:50:00.333712: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:50:00.333880: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:50:00.334437: Cars 1 charging from battery False 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-16 08:50:00.334560: Predbat mode is set to Control charge & discharge
2026-08-16 08:50:00.526592: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:50:00.526741: Using load_power data to fill gaps in load_today data
2026-08-16 08:50:01.415462: Processing 721 30-minute periods for power integration
2026-08-16 08:50:01.602184: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:50:01.602342: Car charging hold False, threshold 6.0kWh
2026-08-16 08:50:01.602392: Current data so far today: load 4.93kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:50:01.617023: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:50:01.617549: Standing charge is set to 49.98p
2026-08-16 08:50:01.645972: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:50:01.646083: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:50:01.646313: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 530.0 minutes
2026-08-16 08:50:01.646703: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 529.8 minutes
2026-08-16 08:50:01.650184: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:50:01.736809: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:50:01.804052: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:50:01.804524: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:50:01.846939: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:50:01.847093: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:50:01.848329: High export rate found rates in range 99p to -99p
2026-08-16 08:50:01.936570: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:50:01.936717: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:50:01.950147: Battery level now 7.52kWh, -1hr ago 7.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -4.69p, rate_forward 1.0p
2026-08-16 08:50:01.950538: 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-16 08:50:02.005816: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:50:02.005958: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:50:02.092003: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:50:02.122362: Today's load divergence 97.13%, in-day adjustment 88.23%, damping 0.95x, yesterday 82.97% today 97.27% blend 63.19%
2026-08-16 08:50:02.122474: Today's predicted so far 5.32kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.32kWh forecast extra.
2026-08-16 08:50:02.122506: Today's actual load so far 4.88kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:50:02.164500: Inverter 0: Type SK Sunsynk
2026-08-16 08:50:02.164600: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:50:02.164790: Reserve min: 7%, battery_min: 7%
2026-08-16 08:50:02.164869: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:50:02.165228: Inverter 0 SoC: 7.42kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 303W, current battery voltage 51.2V, grid power -55W, load power 356W, PV Power 0W
2026-08-16 08:50:02.165402: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:50:02.165493: Inverter 0 scheduled charge enable is False
2026-08-16 08:50:02.165528: Inverter 0 charge windows currently []
2026-08-16 08:50:02.165555: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:50:02.165662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:50:02.165698: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:50:02.165734: Inverter 0 scheduled discharge enable is False
2026-08-16 08:50:02.165860: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:50:02.165897: Inverter 0 discharge windows currently []
2026-08-16 08:50:02.165920: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:50:02.165938: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:50:02.165955: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:50:02.219065: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:50:02.219162: Plan was last updated on 2026-08-16 08:40:00+01:00 and is now 10.0 minutes old
2026-08-16 08:50:02.219413: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:50:02.219450: Best export window [  ]
2026-08-16 08:50:02.220088: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:50:02.222658: Load divergence over 8.0 hours mean 343.71W, min 244.2W, max 891.6W, std dev 88.71W, divergence 12.91%
2026-08-16 08:50:02.237728: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:50:02.237846: LoadML is_calculating False
2026-08-16 08:50:02.237900: Creating pool of 12 processes to match your CPU count
2026-08-16 08:50:02.356587: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 21.02kWh, PV 0.0kWh
2026-08-16 08:50:02.484836: Battery has 10.58 hours left - now at 7.42kWh
2026-08-16 08:50:02.532039: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 421.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.79kWh, PV 0.0kWh
2026-08-16 08:50:02.621791: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.79kWh, PV 0.0kWh
2026-08-16 08:50:02.707685: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 21.02kWh, PV 0.0kWh
2026-08-16 08:50:02.707783: Saving plan best values to HA entities
2026-08-16 08:50:02.867973: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 08:50:04.131691: Processing 1345 30-minute periods for power integration
2026-08-16 08:50:04.220578: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:50:04.243966: ML Component: Car charging hold False, car energy reported load False
2026-08-16 08:50:04.289612: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:50:04.355990: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:50:04.368070: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.29kWh, house 1.67kWh, export 0.0kWh, metric 252.06p, metric10 284.24p
2026-08-16 08:50:04.476899: ML Temperature data points: 49871
2026-08-16 08:50:04.791651: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 08:50:04.840811: ML Component: Data fetch completed, load data age 57.0 days, 16658 data points
2026-08-16 08:50:04.841273: ML Component: Starting fine-tune training (2h interval), model age is 2.0117892541666667 hours
2026-08-16 08:50:04.843055: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-16 08:50:04.865302: Marginal costs baseline metric (no standing charge): 202.0751
2026-08-16 08:50:05.135289: Marginal energy costs matrix computed: min=3.7 max=33.31
2026-08-16 08:50:05.214104: Rate array import [{'start': 530, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 530, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:50:05.214852: - Your estimated bill for today is £1.37 and tomorrow is £7.36
2026-08-16 08:50:05.214907: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:50:05.214932: - The battery is currently at 46% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 08:50:05.214951: - For the next 48 hours there will be no solar generation.
2026-08-16 08:50:05.214968: - You will run out of battery in 22 hours.
2026-08-16 08:50:05.214985: - Your next charge slot will be in 2 and a quarter hours where import rates will be free (0.0p).
2026-08-16 08:50:05.215003: 
2026-08-16 08:50:05.276757: Plan calculation took 3.06 seconds
2026-08-16 08:50:05.280380: No high rate period found
2026-08-16 08:50:05.337757: Import threshold used for optimisation was 24.94p
2026-08-16 08:50:05.398577: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 94: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 08:50:05.405631: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 08:50:05.405777: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:50:05.405875: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:50:05.406177: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:50:05.406286: No export window planned
2026-08-16 08:50:05.406398: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:50:05.406466: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:50:05.406616: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:50:05.406807: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:50:05.406883: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:50:05.406945: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:50:05.407032: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407124: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407175: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:05.407464: Inverter 0 count register writes 0
2026-08-16 08:50:05.425498: 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-16 08:50:05.425687: Recompute is saving previous plan...
2026-08-16 08:50:05.428935: Best charge window [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0% ]
2026-08-16 08:50:05.429110: Best export window [  ]
2026-08-16 08:50:05.430016: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:50:05.433214: Load divergence over 8.0 hours mean 343.71W, min 244.2W, max 891.6W, std dev 88.71W, divergence 12.91%
2026-08-16 08:50:05.450708: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:50:05.450819: LoadML is_calculating False
2026-08-16 08:50:05.450890: Creating pool of 12 processes to match your CPU count
2026-08-16 08:50:05.551712: 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(0.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-16 08:50:05.553676: Optimise levels pass started at 2026-08-16 08:50:05
2026-08-16 08:50:05.553742: Optimise all windows, total charge 94 export 1
2026-08-16 08:50:06.293534: >> Region optimisation pass width 960 gives best_metric 535.7p, best_cost 547.74p, best_cycle 38.19kWh, best_import 27.04kWh
2026-08-16 08:50:06.638283: >> Region optimisation pass width 480 gives best_metric 535.7p, best_cost 547.74p, best_cycle 38.19kWh, best_import 27.04kWh
2026-08-16 08:50:07.180016: >> Region optimisation pass width 240 gives best_metric 535.7p, best_cost 547.74p, best_cycle 38.19kWh, best_import 27.04kWh
2026-08-16 08:50:09.051004: >> Region optimisation pass width 120 gives best_metric 534.09p, best_cost 546.38p, best_cycle 44.17kWh, best_import 27.46kWh
2026-08-16 08:50:09.051616: Calculated end_record as 08-17 11:00:00 based on best_price 22.95p, next_charge_start 08-16 11:00:00, max_windows 52
2026-08-16 08:50:09.051763: Optimise levels pass ended at 2026-08-16 08:50:09, duration 3.5 seconds tried 344 combinations
2026-08-16 08:50:09.051879: Set best_price_charge_level 24.6p, best_price_export_level 0p, best_price_charge 22.95p, best_cost_export 0p, best_metric 534.09p, best_keep 0kWh, best_cycle 44.17kWh, best_carbon 0kg, best_import 27.46kWh
2026-08-16 08:50:09.076821: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.95p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 08:50:13.723770: Tweak plan optimisation started metric 163.34p, cost 178.77p
2026-08-16 08:50:14.013676: Tweak optimisation finished metric 163.34p, cost 178.77p, metric_keep 0kWh, cycle 19.38kWh, carbon 0kg, import 11.04kWh, changed 8 window(s)
2026-08-16 08:50:14.034228: Swap charge optimisation started metric 163.34p, cost 178.77p, min_improvement_swap 0.1p
2026-08-16 08:50:18.378430: Swap charge optimisation finished metric 163.34p, cost 178.77p
2026-08-16 08:50:18.497916: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 158.17p -> 158.17p, plan now metric 163.46p, cost 178.77p, cycle 19.38kWh, import 11.04kWh
2026-08-16 08:50:18.509830: Raw charge windows [ 16-08 08:30:00 - 16-08 09:00:00 @ 24.39p 0%, 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100% ] reserve 1.12
2026-08-16 08:50:18.510491: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:50:18.510799: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:50:18.511035: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 08:50:18.548588: Previous plan best metric is 163.36 (cost 178.65) and new plan best metric is 163.34 (cost 178.77)
2026-08-16 08:50:18.548887: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 08:50:18.549148: Plan valid is now true after recompute was False
2026-08-16 08:50:18.578175: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.89kWh, PV 0.0kWh
2026-08-16 08:50:18.704887: Battery has 10.58 hours left - now at 7.42kWh
2026-08-16 08:50:18.751754: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.65kWh, PV 0.0kWh
2026-08-16 08:50:18.830540: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.65kWh, PV 0.0kWh
2026-08-16 08:50:18.914194: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.89kWh, PV 0.0kWh
2026-08-16 08:50:18.914291: Saving plan best values to HA entities
2026-08-16 08:50:19.071085: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:50:19.076997: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:50:19.082599: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.33kWh, house 1.67kWh, export 0.0kWh, metric 228.64p, metric10 264.04p
2026-08-16 08:50:19.159908: Marginal costs baseline metric (no standing charge): 178.6537
2026-08-16 08:50:19.435776: Marginal energy costs matrix computed: min=3.7 max=33.31
2026-08-16 08:50:19.505350: Rate array import [{'start': 530, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 530, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:50:19.506204: - Your estimated bill for today is £1.37 and tomorrow is £7.36
2026-08-16 08:50:19.506260: - Import rates are expensive (24.1p - 25.5p) for the next 2 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:50:19.506283: - The battery is currently at 46% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 08:50:19.506302: - For the next 48 hours there will be no solar generation.
2026-08-16 08:50:19.506320: - You will run out of battery in 22 hours.
2026-08-16 08:50:19.506368: - Your next charge slot will be in 2 and a quarter hours where import rates will be free (0.0p).
2026-08-16 08:50:19.506388: 
2026-08-16 08:50:19.564927: Plan calculation took 14.14 seconds
2026-08-16 08:50:19.565469: Inverter 0: Type SK Sunsynk
2026-08-16 08:50:19.565536: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:50:19.565813: Reserve min: 7%, battery_min: 7%
2026-08-16 08:50:19.565923: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:50:19.566336: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 286W, current battery voltage 51.2V, grid power -55W, load power 337W, PV Power 0W
2026-08-16 08:50:19.566629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:50:19.566759: Inverter 0 scheduled charge enable is False
2026-08-16 08:50:19.566800: Inverter 0 charge windows currently []
2026-08-16 08:50:19.566831: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:50:19.566944: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:50:19.566980: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:50:19.567016: Inverter 0 scheduled discharge enable is False
2026-08-16 08:50:19.567144: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:50:19.567202: Inverter 0 discharge windows currently []
2026-08-16 08:50:19.567228: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:50:19.567254: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:50:19.567272: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:50:19.624584: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 08:50:19.624735: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:50:19.624810: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:50:19.625056: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:50:19.625154: No export window planned
2026-08-16 08:50:19.625289: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:50:19.625328: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:50:19.625472: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:50:19.625641: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:50:19.625696: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:50:19.625757: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:50:19.625843: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.625879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.625912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.625938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.625964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:50:19.626298: Inverter 0 count register writes 0
2026-08-16 08:50:19.647086: Total inverter register writes now 826
2026-08-16 08:50:19.680781: Info: Completed run status Demand
2026-08-16 08:50:19.688118: Info: record_status Demand
2026-08-16 08:50:19.696933: Saved current settings to /config/predbat_config.json
2026-08-16 08:50:19.697446: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:50:19.936787: ML Component: Doing training...
2026-08-16 08:50:19.960140: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=54.0 days)
2026-08-16 08:50:19.960271: ML Predictor: Curriculum training - 5 passes, window 54.0→57.0 days + final full pass (57.8 days)
2026-08-16 08:50:20.026752: ML Predictor: Curriculum pass 1/5: window=54.0 days (1296 hours of data)
2026-08-16 08:50:20.026866: ML Predictor: Starting initial training with 30 epochs
2026-08-16 08:50:20.596511: ML Predictor: Creating dataset with 1296 hours of training data, 48 hours validation
2026-08-16 08:50:24.697867: ML Predictor: Created 15264 training samples, 576 validation samples
2026-08-16 08:50:24.748576: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0468) load(mean=0.0587 std=0.0468) pv(mean=0.0000 std=0.0100) temp(mean=19.4998 std=4.4156) import_rate(mean=26.1274 std=2.9092) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5244)
2026-08-16 08:50:52.225534: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0234 val_mae=0.0063 kWh val_bias=-0.0031 kWh (-6.0%) combined=0.0043 kWh ema_combined=0.0043 kWh
2026-08-16 08:50:56.848051: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:50:56.848515: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:50:56.848793: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:50:56.849207: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:50:56.849436: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:50:56.849600: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:50:56.849755: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:51:25.543943: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0262 val_mae=0.0043 kWh val_bias=-0.0011 kWh (-2.1%) combined=0.0030 kWh ema_combined=0.0040 kWh
2026-08-16 08:51:58.408701: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0183 val_mae=0.0041 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0034 kWh
2026-08-16 08:52:31.447977: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0157 val_mae=0.0038 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 08:53:05.543721: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0160 val_mae=0.0038 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 08:53:11.532556: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:53:11.532862: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:53:11.532917: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:53:11.533167: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:53:11.533228: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:53:11.533257: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:53:11.533300: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:53:37.871504: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0162 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.6%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-16 08:54:10.477273: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-16 08:54:43.807941: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0149 val_mae=0.0037 kWh val_bias=-0.0018 kWh (-3.4%) combined=0.0030 kWh ema_combined=0.0028 kWh
2026-08-16 08:55:00.977773: --------------- PredBat - update at 2026-08-16 08:55:00+01:00 with clock skew 0 minutes, minutes now 535
2026-08-16 08:55:00.979001: Saved current settings to /config/predbat_config.json
2026-08-16 08:55:00.979359: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 08:55:00.979584: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 08:55:00.979784: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 08:55:01.021608: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 08:55:01.021924: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 08:55:01.022276: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 08:55:01.023176: Cars 1 charging from battery False 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-16 08:55:01.023463: Predbat mode is set to Control charge & discharge
2026-08-16 08:55:01.402169: Found 21602 load_today datapoints going back 28 days
2026-08-16 08:55:01.403053: Using load_power data to fill gaps in load_today data
2026-08-16 08:55:02.490417: Processing 721 30-minute periods for power integration
2026-08-16 08:55:02.697708: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 08:55:02.698248: Car charging hold False, threshold 6.0kWh
2026-08-16 08:55:02.698383: Current data so far today: load 4.95kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 08:55:02.716816: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 08:55:02.717346: Standing charge is set to 49.98p
2026-08-16 08:55:02.855490: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 08:55:02.855743: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 08:55:02.856106: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 535.0 minutes
2026-08-16 08:55:02.856698: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 534.8 minutes
2026-08-16 08:55:02.860190: Loaded 47 datapoints of futurerate analysis
2026-08-16 08:55:02.970481: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 08:55:03.043631: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 08:55:03.044319: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 08:55:03.089954: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 08:55:03.090316: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 08:55:03.091654: High export rate found rates in range 99p to -99p
2026-08-16 08:55:03.212110: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 08:55:03.212417: Car 0 charging is not planned as it is not plugged in
2026-08-16 08:55:03.233870: Battery level now 7.42kWh, -1hr ago 7.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.26p, change today -4.78p, rate_forward 1.0p
2026-08-16 08:55:03.234533: 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-16 08:55:03.330326: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 08:55:03.330652: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 08:55:03.563984: Using weighted-bucket historical load forecast over 14 days
2026-08-16 08:55:03.596375: Today's load divergence 97.29%, in-day adjustment 88.34%, damping 0.95x, yesterday 82.97% today 97.43% blend 62.85%
2026-08-16 08:55:03.596795: Today's predicted so far 5.33kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.33kWh forecast extra.
2026-08-16 08:55:03.596852: Today's actual load so far 4.91kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 08:55:03.665477: Inverter 0: Type SK Sunsynk
2026-08-16 08:55:03.665763: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 08:55:03.666096: Reserve min: 7%, battery_min: 7%
2026-08-16 08:55:03.666251: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 08:55:03.666709: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 312W, current battery voltage 51.2V, grid power -57W, load power 366W, PV Power 0W
2026-08-16 08:55:03.667022: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:55:03.667202: Inverter 0 scheduled charge enable is False
2026-08-16 08:55:03.667329: Inverter 0 charge windows currently []
2026-08-16 08:55:03.667388: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 08:55:03.667707: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:55:03.667863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:55:03.668022: Inverter 0 scheduled discharge enable is False
2026-08-16 08:55:03.668314: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:55:03.668462: Inverter 0 discharge windows currently []
2026-08-16 08:55:03.668606: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:55:03.668668: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:55:03.668701: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:55:03.772450: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 08:55:03.772655: Plan was last updated on 2026-08-16 08:50:00+01:00 and is now 5.0 minutes old
2026-08-16 08:55:03.773549: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 08:55:03.773714: Best export window [  ]
2026-08-16 08:55:03.775077: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 08:55:03.779919: Load divergence over 8.0 hours mean 346.77W, min 240.6W, max 912.0W, std dev 90.02W, divergence 12.98%
2026-08-16 08:55:03.809151: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 08:55:03.809485: LoadML is_calculating True
2026-08-16 08:55:03.809561: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 08:55:03.856194: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 397.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.96kWh, PV 0.0kWh
2026-08-16 08:55:04.083750: Battery has 10.42 hours left - now at 7.36kWh
2026-08-16 08:55:04.214616: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 421.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:45:00, load 21.73kWh, PV 0.0kWh
2026-08-16 08:55:04.454424: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 275.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.73kWh, PV 0.0kWh
2026-08-16 08:55:04.631730: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 241.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.96kWh, PV 0.0kWh
2026-08-16 08:55:04.631855: Saving plan best values to HA entities
2026-08-16 08:55:04.949911: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 08:55:04.957526: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 08:55:04.965620: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.85kWh, house 1.67kWh, export 0.0kWh, metric 241.44p, metric10 275.39p
2026-08-16 08:55:05.153173: Marginal costs baseline metric (no standing charge): 191.4548
2026-08-16 08:55:05.697884: Marginal energy costs matrix computed: min=1.85 max=33.55
2026-08-16 08:55:05.917817: Rate array import [{'start': 535, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 535, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 08:55:05.918787: - Your estimated bill for today is £1.38 and tomorrow is £7.37
2026-08-16 08:55:05.918887: - Import rates are expensive (24.1p - 25.5p) for the next 2 hours and then free (0.0p) for the next 1 hour.
2026-08-16 08:55:05.918932: - The battery is currently at 46% and is in eco mode for the next 2 hours.
2026-08-16 08:55:05.918966: - For the next 48 hours there will be no solar generation.
2026-08-16 08:55:05.918997: - You will run out of battery in 22 hours.
2026-08-16 08:55:05.919032: - Your next charge slot will be in 2 hours where import rates will be free (0.0p).
2026-08-16 08:55:05.919065: 
2026-08-16 08:55:05.957282: Plan calculation took 2.18 seconds
2026-08-16 08:55:05.961426: No high rate period found
2026-08-16 08:55:06.105263: Import threshold used for optimisation was 23.43p
2026-08-16 08:55:06.244411: Low import rate windows [0: 08-16 08:30:00 - 08-16 09:00:00 @ 24.39, 1: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 2: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 3: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 4: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 5: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 6: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 7: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 8: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 9: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 10: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 11: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 12: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 13: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 14: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 15: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 16: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 17: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 18: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 19: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 20: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 21: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 22: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 23: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 24: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 25: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 26: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 27: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 28: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 29: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 30: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 31: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 32: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 33: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 34: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 35: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 36: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 37: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 38: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 39: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 40: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 41: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 42: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 43: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 44: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 45: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 46: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 47: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 48: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 49: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 50: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 51: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 52: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 53: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 54: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 55: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 56: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 57: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 58: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 59: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 60: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 61: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 62: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 63: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 64: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 65: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 66: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 67: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 68: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 69: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 70: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 71: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 72: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 73: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 74: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 75: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 76: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 77: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 78: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 79: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 80: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 81: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 82: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 83: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 84: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 85: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 86: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 87: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 88: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 89: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 90: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 91: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 92: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 93: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 94: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 08:55:06.272569: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 08:55:06.272759: Inverter 0 disabled charge window while waiting for schedule (now 08-16 08:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 08:55:06.272872: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:55:06.273176: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:55:06.273369: No export window planned
2026-08-16 08:55:06.273594: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 08:55:06.273653: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 08:55:06.273955: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 08:55:06.274214: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 08:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 08:55:06.274332: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 08:55:06.274462: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 08:55:06.274710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.274872: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275308: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275449: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.275965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 08:55:06.276897: Inverter 0 count register writes 0
2026-08-16 08:55:06.311243: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 08:55:06.319811: Total inverter register writes now 826
2026-08-16 08:55:06.373556: Info: Completed run status Demand
2026-08-16 08:55:06.384319: Info: record_status Demand
2026-08-16 08:55:06.395672: Saved current settings to /config/predbat_config.json
2026-08-16 08:55:06.396008: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 08:55:15.821291: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0125 val_mae=0.0031 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-16 08:55:41.550908: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:55:41.551195: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:55:41.551248: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:55:41.551412: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:55:41.551551: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:55:41.551618: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:55:41.551726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:55:48.236507: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0112 val_mae=0.0029 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 08:56:20.863336: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0085 val_mae=0.0026 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-16 08:56:54.583914: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0026 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-16 08:57:26.199495: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0080 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-16 08:57:42.028207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:57:42.028510: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:57:42.028563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:57:42.028750: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:57:42.028799: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:57:42.028827: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:57:42.028859: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:57:59.199942: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0075 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 08:58:28.668067: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0070 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 08:58:40.969719: Storage: Cleaned up expired cache file octopus_free_url_cache (module=octopus_free)
2026-08-16 08:59:00.744303: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 08:59:30.416404: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0068 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 08:59:56.553592: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 08:59:56.657776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 08:59:56.658072: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 08:59:56.658198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 08:59:56.658451: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 08:59:56.658589: Note: Inverter does not support discharge freeze - disabled
2026-08-16 08:59:56.658691: Note: Inverter does not support charge freeze - disabled
2026-08-16 08:59:56.658819: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 08:59:56.741030: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 09:00:00.895527: --------------- PredBat - update at 2026-08-16 09:00:00+01:00 with clock skew 0 minutes, minutes now 540
2026-08-16 09:00:00.896457: Saved current settings to /config/predbat_config.json
2026-08-16 09:00:00.896596: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 09:00:00.896682: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:00:00.896833: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:00:00.931364: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:00:00.931519: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:00:00.931660: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:00:00.932107: Cars 1 charging from battery False 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-16 09:00:00.932211: Predbat mode is set to Control charge & discharge
2026-08-16 09:00:01.504314: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:00:01.504498: Using load_power data to fill gaps in load_today data
2026-08-16 09:00:03.230550: Processing 721 30-minute periods for power integration
2026-08-16 09:00:03.484137: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:00:03.484286: Car charging hold False, threshold 6.0kWh
2026-08-16 09:00:03.484335: Current data so far today: load 4.9kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:00:03.553338: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:00:03.554095: Standing charge is set to 49.98p
2026-08-16 09:00:03.626326: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:00:03.626627: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:00:03.627032: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 540.0 minutes
2026-08-16 09:00:03.627771: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 539.8 minutes
2026-08-16 09:00:03.632355: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:00:03.966633: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:00:04.093438: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:00:04.095860: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:00:04.144708: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:00:04.144940: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:00:04.146429: High export rate found rates in range 99p to -99p
2026-08-16 09:00:04.238065: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:00:04.238382: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:00:04.263330: Battery level now 7.36kWh, -1hr ago 7.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.85p, rate_forward 1.0p
2026-08-16 09:00:04.263876: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:00:04.342592: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 09:00:04.342913: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:00:04.424864: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:00:04.488239: Today's load divergence 96.61%, in-day adjustment 88.15%, damping 0.95x, yesterday 82.97% today 96.78% blend 62.5%
2026-08-16 09:00:04.503257: Today's predicted so far 5.44kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.44kWh forecast extra.
2026-08-16 09:00:04.503532: Today's actual load so far 4.93kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:00:04.628342: Inverter 0: Type SK Sunsynk
2026-08-16 09:00:04.628605: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:00:04.629083: Reserve min: 7%, battery_min: 7%
2026-08-16 09:00:04.633656: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:00:04.634211: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 288W, current battery voltage 51.2V, grid power -55W, load power 340W, PV Power 0W
2026-08-16 09:00:04.634570: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:00:04.634824: Inverter 0 scheduled charge enable is False
2026-08-16 09:00:04.634989: Inverter 0 charge windows currently []
2026-08-16 09:00:04.635152: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:00:04.635463: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:00:04.635601: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:00:04.635813: Inverter 0 scheduled discharge enable is False
2026-08-16 09:00:04.636131: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:00:04.636274: Inverter 0 discharge windows currently []
2026-08-16 09:00:04.636425: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:00:04.636568: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:00:04.636706: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:00:04.770385: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:00:04.770600: Plan was last updated on 2026-08-16 08:50:00+01:00 and is now 10.0 minutes old
2026-08-16 09:00:04.771083: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:00:04.771149: Best export window [  ]
2026-08-16 09:00:04.772557: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:00:04.777428: Load divergence over 8.0 hours mean 348.29W, min 223.8W, max 1097.4W, std dev 99.84W, divergence 14.33%
2026-08-16 09:00:04.835859: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:00:04.836033: LoadML is_calculating True
2026-08-16 09:00:04.836124: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:00:04.943744: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.94kWh, PV 0.0kWh
2026-08-16 09:00:05.223592: Battery has 10.42 hours left - now at 7.36kWh
2026-08-16 09:00:05.308099: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 421.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.7kWh, PV 0.0kWh
2026-08-16 09:00:05.556676: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.7kWh, PV 0.0kWh
2026-08-16 09:00:05.797248: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 252.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.94kWh, PV 0.0kWh
2026-08-16 09:00:05.805039: Saving plan best values to HA entities
2026-08-16 09:00:06.282575: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:00:06.303260: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:00:06.326215: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.29kWh, house 1.68kWh, export 0.0kWh, metric 252.19p, metric10 284.35p
2026-08-16 09:00:06.532763: Marginal costs baseline metric (no standing charge): 202.2025
2026-08-16 09:00:06.621342: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 09:00:07.061210: Marginal energy costs matrix computed: min=0.0 max=33.78
2026-08-16 09:00:07.313307: Rate array import [{'start': 540, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 540, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:00:07.316610: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 09:00:07.316695: - Import rates are expensive (24.1p - 25.5p) for the next 2 hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:00:07.316722: - The battery is currently at 46% and is in eco mode for the next 2 hours.
2026-08-16 09:00:07.316742: - For the next 48 hours there will be no solar generation.
2026-08-16 09:00:07.316760: - You will run out of battery in 22 hours.
2026-08-16 09:00:07.316875: - Your next charge slot will be in 2 hours where import rates will be free (0.0p).
2026-08-16 09:00:07.317025: 
2026-08-16 09:00:07.409427: Plan calculation took 2.64 seconds
2026-08-16 09:00:07.412793: No high rate period found
2026-08-16 09:00:07.523474: Import threshold used for optimisation was 23.43p
2026-08-16 09:00:07.705371: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39]
2026-08-16 09:00:07.732234: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 09:00:07.732419: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:00:07.732517: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:00:07.732751: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:00:07.733037: No export window planned
2026-08-16 09:00:07.733252: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:00:07.733493: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:00:07.733729: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:00:07.734011: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:00:07.734080: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:00:07.734146: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:00:07.734242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.734972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.735014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:07.735052: Inverter 0 count register writes 0
2026-08-16 09:00:07.783403: 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-16 09:00:07.783636: Recompute is saving previous plan...
2026-08-16 09:00:07.788849: Best charge window [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0% ]
2026-08-16 09:00:07.789008: Best export window [  ]
2026-08-16 09:00:07.790358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:00:07.816283: Load divergence over 8.0 hours mean 348.29W, min 223.8W, max 1097.4W, std dev 99.84W, divergence 14.33%
2026-08-16 09:00:07.899272: Calculating data from yesterday for savings calculation
2026-08-16 09:00:07.964059: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 09:00:08.033957: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 09:00:08.048699: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 09:00:08.069392: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 09:00:08.106508: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 09:00:08.281326: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 09:00:08.281529: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 09:00:08.305816: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:00:08.311480: LoadML is_calculating True
2026-08-16 09:00:08.311695: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:00:08.320897: 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(0.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-16 09:00:08.338336: Optimise levels pass started at 2026-08-16 09:00:08
2026-08-16 09:00:08.338945: Optimise all windows, total charge 94 export 1
2026-08-16 09:00:16.338798: >> Region optimisation pass width 960 gives best_metric 536.37p, best_cost 548.64p, best_cycle 44.11kWh, best_import 27.55kWh
2026-08-16 09:00:17.526187: >> Region optimisation pass width 480 gives best_metric 536.37p, best_cost 548.64p, best_cycle 44.11kWh, best_import 27.55kWh
2026-08-16 09:00:18.996021: >> Region optimisation pass width 240 gives best_metric 536.37p, best_cost 548.64p, best_cycle 44.11kWh, best_import 27.55kWh
2026-08-16 09:00:22.097779: >> Region optimisation pass width 120 gives best_metric 536.37p, best_cost 548.64p, best_cycle 44.11kWh, best_import 27.55kWh
2026-08-16 09:00:22.098477: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 51
2026-08-16 09:00:22.098557: Optimise levels pass ended at 2026-08-16 09:00:22, duration 13.8 seconds tried 321 combinations
2026-08-16 09:00:22.098634: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 536.37p, best_keep 0kWh, best_cycle 44.11kWh, best_carbon 0kg, best_import 27.55kWh
2026-08-16 09:00:22.141227: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:00:49.265178: Tweak plan optimisation started metric 163.4p, cost 178.84p
2026-08-16 09:00:50.846886: Tweak optimisation finished metric 163.4p, cost 178.84p, metric_keep 0kWh, cycle 19.32kWh, carbon 0kg, import 11.04kWh, changed 8 window(s)
2026-08-16 09:00:50.879760: Swap charge optimisation started metric 163.4p, cost 178.84p, min_improvement_swap 0.1p
2026-08-16 09:00:57.584003: Swap charge optimisation finished metric 163.4p, cost 178.84p
2026-08-16 09:00:57.778204: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 158.24p -> 158.24p, plan now metric 163.51p, cost 178.84p, cycle 19.32kWh, import 11.04kWh
2026-08-16 09:00:57.796520: Raw charge windows [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 63%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100% ] reserve 1.12
2026-08-16 09:00:57.814815: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 09:00:57.815444: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 09:00:57.815882: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:00:00 @ 24.48p 100% ] reserve 1.12
2026-08-16 09:00:57.914828: Previous plan best metric is 163.44 (cost 178.73) and new plan best metric is 163.4 (cost 178.84)
2026-08-16 09:00:57.915256: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:00:57.915490: Plan valid is now true after recompute was False
2026-08-16 09:00:57.944440: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.8kWh, PV 0.0kWh
2026-08-16 09:00:58.247207: Battery has 10.42 hours left - now at 7.36kWh
2026-08-16 09:00:58.311564: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 417.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.56kWh, PV 0.0kWh
2026-08-16 09:00:58.457889: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.56kWh, PV 0.0kWh
2026-08-16 09:00:58.653704: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.8kWh, PV 0.0kWh
2026-08-16 09:00:58.664536: Saving plan best values to HA entities
2026-08-16 09:00:58.998616: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:00:59.005109: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:00:59.021717: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.32kWh, house 1.68kWh, export 0.0kWh, metric 228.71p, metric10 264.09p
2026-08-16 09:00:59.154817: Marginal costs baseline metric (no standing charge): 178.7301
2026-08-16 09:00:59.667476: Marginal energy costs matrix computed: min=0.0 max=33.78
2026-08-16 09:00:59.772890: Rate array import [{'start': 540, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 540, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:00:59.773724: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 09:00:59.773897: - Import rates are expensive (24.1p - 25.5p) for the next 2 hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:00:59.773960: - The battery is currently at 46% and is in eco mode for the next 2 hours.
2026-08-16 09:00:59.774018: - For the next 48 hours there will be no solar generation.
2026-08-16 09:00:59.774132: - You will run out of battery in 22 hours.
2026-08-16 09:00:59.774244: - Your next charge slot will be in 2 hours where import rates will be free (0.0p).
2026-08-16 09:00:59.774349: 
2026-08-16 09:00:59.827068: Plan calculation took 52.04 seconds
2026-08-16 09:00:59.827583: Inverter 0: Type SK Sunsynk
2026-08-16 09:00:59.827785: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:00:59.828170: Reserve min: 7%, battery_min: 7%
2026-08-16 09:00:59.828371: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:00:59.828822: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 288W, current battery voltage 51.2V, grid power -55W, load power 340W, PV Power 0W
2026-08-16 09:00:59.829181: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:00:59.829408: Inverter 0 scheduled charge enable is False
2026-08-16 09:00:59.829551: Inverter 0 charge windows currently []
2026-08-16 09:00:59.829688: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:00:59.829964: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:00:59.830118: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:00:59.830271: Inverter 0 scheduled discharge enable is False
2026-08-16 09:00:59.830558: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:00:59.830706: Inverter 0 discharge windows currently []
2026-08-16 09:00:59.830834: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:00:59.830981: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:00:59.831112: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:00:59.972865: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 09:00:59.973275: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:00:59.973484: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:00:59.973836: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:00:59.974069: No export window planned
2026-08-16 09:00:59.974335: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:00:59.974482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:00:59.974821: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:00:59.975152: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:00:59.975320: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:00:59.975491: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:00:59.975705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.975861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.976994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:00:59.977859: Inverter 0 count register writes 0
2026-08-16 09:01:00.050572: Total inverter register writes now 826
2026-08-16 09:01:00.113989: Info: Completed run status Demand
2026-08-16 09:01:00.127203: Info: record_status Demand
2026-08-16 09:01:00.139562: Saved current settings to /config/predbat_config.json
2026-08-16 09:01:00.139806: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:01:08.651893: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 09:01:41.896252: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0061 val_mae=0.0021 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 09:01:42.326778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:01:42.327246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:01:42.327304: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:01:42.327676: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:01:42.327802: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:01:42.327884: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:01:42.327921: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:02:10.704166: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0021 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0014 kWh
2026-08-16 09:02:40.816603: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 09:03:11.628192: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0062 val_mae=0.0020 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 09:03:44.112244: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0058 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 09:03:56.965767: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:03:56.966083: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:03:56.966244: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:03:56.966600: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:03:56.966664: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:03:56.966746: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:03:56.966883: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:04:16.336159: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-16 09:04:45.619038: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-16 09:05:00.285391: --------------- PredBat - update at 2026-08-16 09:05:00+01:00 with clock skew 0 minutes, minutes now 545
2026-08-16 09:05:00.286344: Saved current settings to /config/predbat_config.json
2026-08-16 09:05:00.286469: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 09:05:00.286543: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:05:00.286687: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:05:00.342589: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:05:00.342738: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:05:00.342909: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:05:00.343479: Cars 1 charging from battery False 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-16 09:05:00.343611: Predbat mode is set to Control charge & discharge
2026-08-16 09:05:00.696922: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:05:00.697255: Using load_power data to fill gaps in load_today data
2026-08-16 09:05:02.433063: Processing 721 30-minute periods for power integration
2026-08-16 09:05:02.754307: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:05:02.754974: Car charging hold False, threshold 6.0kWh
2026-08-16 09:05:02.755051: Current data so far today: load 4.9kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:05:02.773184: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:05:02.773653: Standing charge is set to 49.98p
2026-08-16 09:05:02.804839: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:05:02.805033: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:05:02.805304: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 545.0 minutes
2026-08-16 09:05:02.805859: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 544.8 minutes
2026-08-16 09:05:02.810244: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:05:03.155437: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:05:03.366364: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:05:03.368164: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:05:03.418964: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:05:03.419270: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:05:03.420607: High export rate found rates in range 99p to -99p
2026-08-16 09:05:03.518407: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:05:03.518737: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:05:03.553287: Battery level now 7.36kWh, -1hr ago 7.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.85p, rate_forward 1.0p
2026-08-16 09:05:03.553714: 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-16 09:05:03.668247: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 09:05:03.668565: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:05:03.741418: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:05:03.772809: Today's load divergence 96.53%, in-day adjustment 88.17%, damping 0.95x, yesterday 82.97% today 96.7% blend 62.15%
2026-08-16 09:05:03.773400: Today's predicted so far 5.52kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.52kWh forecast extra.
2026-08-16 09:05:03.773536: Today's actual load so far 5.0kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:05:03.836978: Inverter 0: Type SK Sunsynk
2026-08-16 09:05:03.837250: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:05:03.837602: Reserve min: 7%, battery_min: 7%
2026-08-16 09:05:03.838748: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:05:03.839563: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 332W, current battery voltage 51.2V, grid power -54W, load power 380W, PV Power 0W
2026-08-16 09:05:03.840208: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:05:03.840581: Inverter 0 scheduled charge enable is False
2026-08-16 09:05:03.840822: Inverter 0 charge windows currently []
2026-08-16 09:05:03.841039: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:05:03.841407: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:05:03.841572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:05:03.841849: Inverter 0 scheduled discharge enable is False
2026-08-16 09:05:03.842346: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:05:03.857056: Inverter 0 discharge windows currently []
2026-08-16 09:05:03.857370: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:05:03.857596: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:05:03.857819: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:05:03.983377: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:05:03.997097: Plan was last updated on 2026-08-16 09:00:00+01:00 and is now 5.0 minutes old
2026-08-16 09:05:03.997654: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:05:04.004458: Best export window [  ]
2026-08-16 09:05:04.007436: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:05:04.012311: Load divergence over 8.0 hours mean 349.58W, min 213.6W, max 1026.0W, std dev 97.07W, divergence 13.88%
2026-08-16 09:05:04.085760: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:05:04.086099: LoadML is_calculating True
2026-08-16 09:05:04.086245: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:05:04.178325: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 395.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.86kWh, PV 0.0kWh
2026-08-16 09:05:04.425343: Battery has 10.33 hours left - now at 7.36kWh
2026-08-16 09:05:04.549549: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 418.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.62kWh, PV 0.0kWh
2026-08-16 09:05:04.702828: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 273.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.62kWh, PV 0.0kWh
2026-08-16 09:05:04.898230: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.86kWh, PV 0.0kWh
2026-08-16 09:05:04.898764: Saving plan best values to HA entities
2026-08-16 09:05:05.346206: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 09:05:05.366884: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:05:05.380179: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.79kWh, house 1.69kWh, export 0.0kWh, metric 240.15p, metric10 273.85p
2026-08-16 09:05:05.649386: Marginal costs baseline metric (no standing charge): 190.1697
2026-08-16 09:05:06.063800: Marginal energy costs matrix computed: min=1.85 max=33.88
2026-08-16 09:05:06.245443: Rate array import [{'start': 545, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 545, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:05:06.245979: - Your estimated bill for today is £1.37 and tomorrow is £7.33
2026-08-16 09:05:06.246490: - Import rates are expensive (24.1p - 25.5p) for the next 1  hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:05:06.246525: - The battery is currently at 46% and is in eco mode for the next 1  hours.
2026-08-16 09:05:06.246543: - For the next 48 hours there will be no solar generation.
2026-08-16 09:05:06.246558: - You will run out of battery in 22 hours.
2026-08-16 09:05:06.246572: - Your next charge slot will be in 1  hours where import rates will be free (0.0p).
2026-08-16 09:05:06.246657: 
2026-08-16 09:05:06.318408: Plan calculation took 2.32 seconds
2026-08-16 09:05:06.323487: No high rate period found
2026-08-16 09:05:06.439321: Import threshold used for optimisation was 23.43p
2026-08-16 09:05:06.552831: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:05:06.575699: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 09:05:06.575984: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:05:06.576169: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:05:06.576504: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:05:06.576644: No export window planned
2026-08-16 09:05:06.576907: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:05:06.577027: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:05:06.577369: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:05:06.577660: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:05:06.577767: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:05:06.577891: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:05:06.578131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578229: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578715: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.578922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:05:06.579829: Inverter 0 count register writes 0
2026-08-16 09:05:06.619342: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:05:06.628534: Total inverter register writes now 826
2026-08-16 09:05:06.730811: Info: Completed run status Demand
2026-08-16 09:05:06.752371: Info: record_status Demand
2026-08-16 09:05:06.768597: Saved current settings to /config/predbat_config.json
2026-08-16 09:05:06.768803: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:05:20.404002: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-16 09:05:42.085513: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:05:42.086049: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:05:42.086238: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:05:42.086548: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:05:42.086701: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:05:42.086830: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:05:42.086954: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:05:53.371533: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-16 09:06:23.763704: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0012 kWh
2026-08-16 09:06:32.253582: Info: HAHistory: Pruning history data started.
2026-08-16 09:06:32.256243: Info: HAHistory: Pruning history data completed.
2026-08-16 09:06:57.437837: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0018 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0012 kWh
2026-08-16 09:06:57.438947: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 09:06:57.439136: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 09:07:05.063910: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 09:07:05.097668: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0019 kWh
2026-08-16 09:07:05.209612: ML Predictor: Curriculum pass 2/5: window=55.0 days (1320 hours of data)
2026-08-16 09:07:05.209739: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 09:07:05.915828: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 09:07:10.959249: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 09:07:11.017655: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0587 std=0.0468) pv(mean=0.0000 std=0.0100) temp(mean=19.5093 std=4.4217) import_rate(mean=26.1317 std=2.9082) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5246)
2026-08-16 09:07:11.106803: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 09:07:11.125820: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 09:07:11.158340: ML Predictor: Baseline (pre-finetune) val_mae=0.0046 kWh val_bias=-0.0005 kWh
2026-08-16 09:07:40.622179: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0037 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-16 09:07:42.442866: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:07:42.443112: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:07:42.443171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:07:42.443295: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:07:42.443330: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:07:42.443347: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:07:42.443361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:08:10.549364: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0053 kWh val_bias=-0.0028 kWh (-3.9%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-16 09:08:43.504556: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0118 val_mae=0.0043 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0036 kWh ema_combined=0.0032 kWh
2026-08-16 09:09:17.232827: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0126 val_mae=0.0042 kWh val_bias=-0.0016 kWh (-2.3%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-16 09:09:47.603482: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0124 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-16 09:09:57.014831: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:09:57.015246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:09:57.015358: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:09:57.015580: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:09:57.015680: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:09:57.015774: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:09:57.015858: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:10:00.317509: --------------- PredBat - update at 2026-08-16 09:10:00+01:00 with clock skew 0 minutes, minutes now 550
2026-08-16 09:10:00.319455: Saved current settings to /config/predbat_config.json
2026-08-16 09:10:00.319677: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 09:10:00.319816: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:10:00.319962: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:10:00.385776: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:10:00.386238: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:10:00.386689: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:10:00.387600: Cars 1 charging from battery False 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-16 09:10:00.394368: Predbat mode is set to Control charge & discharge
2026-08-16 09:10:00.815745: Found 21602 load_today datapoints going back 27 days
2026-08-16 09:10:00.815922: Using load_power data to fill gaps in load_today data
2026-08-16 09:10:02.145624: Processing 721 30-minute periods for power integration
2026-08-16 09:10:02.372030: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:10:02.372213: Car charging hold False, threshold 6.0kWh
2026-08-16 09:10:02.372302: Current data so far today: load 5.03kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:10:02.394712: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:10:02.395292: Standing charge is set to 49.98p
2026-08-16 09:10:02.457688: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:10:02.457818: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:10:02.458046: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 550.0 minutes
2026-08-16 09:10:02.458696: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 549.8 minutes
2026-08-16 09:10:02.462009: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:10:02.560590: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:10:02.664395: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:10:02.665390: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:10:02.733713: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:10:02.734050: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:10:02.736078: High export rate found rates in range 99p to -99p
2026-08-16 09:10:02.947219: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:10:02.947772: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:10:02.971717: Battery level now 7.36kWh, -1hr ago 7.68kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -4.85p, rate_forward 1.0p
2026-08-16 09:10:02.972359: 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-16 09:10:03.102291: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 09:10:03.102453: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:10:03.331060: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:10:03.373943: Today's load divergence 97.02%, in-day adjustment 88.39%, damping 0.95x, yesterday 82.97% today 97.16% blend 61.81%
2026-08-16 09:10:03.374062: Today's predicted so far 5.52kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.52kWh forecast extra.
2026-08-16 09:10:03.374098: Today's actual load so far 5.07kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:10:03.422380: Inverter 0: Type SK Sunsynk
2026-08-16 09:10:03.422484: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:10:03.422675: Reserve min: 7%, battery_min: 7%
2026-08-16 09:10:03.422748: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:10:03.423040: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 294W, current battery voltage 51.2V, grid power -54W, load power 345W, PV Power 0W
2026-08-16 09:10:03.423217: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:10:03.423315: Inverter 0 scheduled charge enable is False
2026-08-16 09:10:03.423361: Inverter 0 charge windows currently []
2026-08-16 09:10:03.423390: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:10:03.423654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:10:03.423704: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:10:03.423946: Inverter 0 scheduled discharge enable is False
2026-08-16 09:10:03.424258: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:10:03.424307: Inverter 0 discharge windows currently []
2026-08-16 09:10:03.424569: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:10:03.424673: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:10:03.424699: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:10:03.626616: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:10:03.626794: Plan was last updated on 2026-08-16 09:00:00+01:00 and is now 10.0 minutes old
2026-08-16 09:10:03.627267: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:10:03.627349: Best export window [  ]
2026-08-16 09:10:03.628757: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:10:03.635311: Load divergence over 8.0 hours mean 351.22W, min 222.6W, max 708.0W, std dev 81.57W, divergence 11.61%
2026-08-16 09:10:03.741024: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:10:03.741193: LoadML is_calculating True
2026-08-16 09:10:03.741233: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:10:03.836611: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 396.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 21.02kWh, PV 0.0kWh
2026-08-16 09:10:04.034223: Battery has 10.33 hours left - now at 7.36kWh
2026-08-16 09:10:04.172487: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 419.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.78kWh, PV 0.0kWh
2026-08-16 09:10:04.401101: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 283.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.78kWh, PV 0.0kWh
2026-08-16 09:10:04.506563: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 21.02kWh, PV 0.0kWh
2026-08-16 09:10:04.506786: Saving plan best values to HA entities
2026-08-16 09:10:04.847660: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:10:04.863745: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 09:10:04.872595: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.23kWh, house 1.69kWh, export 0.0kWh, metric 251.3p, metric10 283.22p
2026-08-16 09:10:05.057078: Marginal costs baseline metric (no standing charge): 201.3198
2026-08-16 09:10:05.480467: Marginal energy costs matrix computed: min=3.69 max=34.0
2026-08-16 09:10:05.667671: Rate array import [{'start': 550, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 550, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:10:05.673805: - Your estimated bill for today is £1.36 and tomorrow is £7.35
2026-08-16 09:10:05.685035: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:10:05.685144: - The battery is currently at 46% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:10:05.685185: - For the next 48 hours there will be no solar generation.
2026-08-16 09:10:05.685205: - You will run out of battery in 22 hours.
2026-08-16 09:10:05.685223: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:10:05.685241: 
2026-08-16 09:10:05.751940: Plan calculation took 2.13 seconds
2026-08-16 09:10:05.764219: No high rate period found
2026-08-16 09:10:05.867932: Import threshold used for optimisation was 23.43p
2026-08-16 09:10:05.933067: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:10:05.941513: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 09:10:05.941800: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:10:05.941966: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:10:05.942208: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:10:05.942377: No export window planned
2026-08-16 09:10:05.942574: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:10:05.942688: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:10:05.942933: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:10:05.943181: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:10:05.943309: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:10:05.943439: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:10:05.943598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.943717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.943854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.943974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.944963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.945081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.945224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:05.945341: Inverter 0 count register writes 0
2026-08-16 09:10:05.973668: 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-16 09:10:05.973972: Recompute is saving previous plan...
2026-08-16 09:10:05.976588: Best charge window [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0% ]
2026-08-16 09:10:05.976760: Best export window [  ]
2026-08-16 09:10:05.977525: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:10:05.980146: Load divergence over 8.0 hours mean 351.22W, min 222.6W, max 708.0W, std dev 81.57W, divergence 11.61%
2026-08-16 09:10:06.011635: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:10:06.011876: LoadML is_calculating True
2026-08-16 09:10:06.012005: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:10:06.020402: 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(0.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-16 09:10:06.021502: Optimise levels pass started at 2026-08-16 09:10:06
2026-08-16 09:10:06.021637: Optimise all windows, total charge 94 export 1
2026-08-16 09:10:12.822924: >> Region optimisation pass width 960 gives best_metric 536.92p, best_cost 549.18p, best_cycle 43.98kWh, best_import 27.56kWh
2026-08-16 09:10:13.833543: >> Region optimisation pass width 480 gives best_metric 536.92p, best_cost 549.18p, best_cycle 43.98kWh, best_import 27.56kWh
2026-08-16 09:10:17.267431: >> Region optimisation pass width 240 gives best_metric 536.92p, best_cost 549.18p, best_cycle 43.98kWh, best_import 27.56kWh
2026-08-16 09:10:22.043974: >> Region optimisation pass width 120 gives best_metric 536.92p, best_cost 549.18p, best_cycle 43.98kWh, best_import 27.56kWh
2026-08-16 09:10:22.044503: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 51
2026-08-16 09:10:22.044627: Optimise levels pass ended at 2026-08-16 09:10:22, duration 16.0 seconds tried 356 combinations
2026-08-16 09:10:22.044687: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 536.92p, best_keep 0kWh, best_cycle 43.98kWh, best_carbon 0kg, best_import 27.56kWh
2026-08-16 09:10:22.068305: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:10:42.962969: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0126 val_mae=0.0034 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 09:10:45.305120: Tweak plan optimisation started metric 162.55p, cost 177.9p
2026-08-16 09:10:46.433516: Tweak optimisation finished metric 162.55p, cost 177.9p, metric_keep 0kWh, cycle 19.27kWh, carbon 0kg, import 11.0kWh, changed 8 window(s)
2026-08-16 09:10:46.506445: Swap charge optimisation started metric 162.55p, cost 177.9p, min_improvement_swap 0.1p
2026-08-16 09:10:54.586461: Swap charge optimisation finished metric 162.55p, cost 177.9p
2026-08-16 09:10:54.730621: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 157.3p -> 157.3p, plan now metric 162.68p, cost 177.9p, cycle 19.27kWh, import 11.0kWh
2026-08-16 09:10:54.743546: Raw charge windows [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100% ] reserve 1.12
2026-08-16 09:10:54.745353: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:10:54.745873: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:10:54.746150: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:10:54.784756: Previous plan best metric is 162.63 (cost 177.96) and new plan best metric is 162.55 (cost 177.9)
2026-08-16 09:10:54.785237: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:10:54.785536: Plan valid is now true after recompute was False
2026-08-16 09:10:54.812079: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 392.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.89kWh, PV 0.0kWh
2026-08-16 09:10:55.010712: Battery has 10.33 hours left - now at 7.36kWh
2026-08-16 09:10:55.119332: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 416.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.65kWh, PV 0.0kWh
2026-08-16 09:10:55.275043: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 263.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.65kWh, PV 0.0kWh
2026-08-16 09:10:55.434061: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 227.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.89kWh, PV 0.0kWh
2026-08-16 09:10:55.434217: Saving plan best values to HA entities
2026-08-16 09:10:55.869363: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:10:55.893608: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 09:10:55.904482: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.27kWh, house 1.69kWh, export 0.0kWh, metric 227.95p, metric10 263.08p
2026-08-16 09:10:56.072124: Marginal costs baseline metric (no standing charge): 177.9638
2026-08-16 09:10:56.622059: Marginal energy costs matrix computed: min=3.69 max=34.0
2026-08-16 09:10:56.736918: Rate array import [{'start': 550, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 550, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:10:56.737867: - Your estimated bill for today is £1.36 and tomorrow is £7.35
2026-08-16 09:10:56.738047: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:10:56.738108: - The battery is currently at 46% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:10:56.738197: - For the next 48 hours there will be no solar generation.
2026-08-16 09:10:56.738353: - You will run out of battery in 22 hours.
2026-08-16 09:10:56.738595: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:10:56.738726: 
2026-08-16 09:10:56.814391: Plan calculation took 50.84 seconds
2026-08-16 09:10:56.814923: Inverter 0: Type SK Sunsynk
2026-08-16 09:10:56.823864: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:10:56.824333: Reserve min: 7%, battery_min: 7%
2026-08-16 09:10:56.824590: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:10:56.825191: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 277W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-16 09:10:56.825580: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:10:56.826135: Inverter 0 scheduled charge enable is False
2026-08-16 09:10:56.826305: Inverter 0 charge windows currently []
2026-08-16 09:10:56.826491: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:10:56.826846: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:10:56.827016: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:10:56.827262: Inverter 0 scheduled discharge enable is False
2026-08-16 09:10:56.827610: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:10:56.827757: Inverter 0 discharge windows currently []
2026-08-16 09:10:56.827933: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:10:56.828100: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:10:56.828292: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:10:56.973382: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 46%, target 100%
2026-08-16 09:10:56.973740: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:10:56.973982: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:10:56.974348: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:10:56.974564: No export window planned
2026-08-16 09:10:56.974831: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:10:56.974962: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:10:56.975312: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:10:56.975620: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:10:56.975800: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:10:56.975988: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:10:56.976223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.976365: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.976529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.976689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.976847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977026: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.977907: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.978066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.978241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.978714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:10:56.978849: Inverter 0 count register writes 0
2026-08-16 09:10:57.042313: Total inverter register writes now 826
2026-08-16 09:10:57.101273: Info: Completed run status Demand
2026-08-16 09:10:57.113180: Info: record_status Demand
2026-08-16 09:10:57.123872: Saved current settings to /config/predbat_config.json
2026-08-16 09:10:57.124108: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:11:22.856088: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0107 val_mae=0.0042 kWh val_bias=-0.0019 kWh (-2.7%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-16 09:11:27.261703: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:11:27.262071: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:11:27.262141: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:11:27.262396: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:11:27.262518: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:11:27.262562: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:11:27.262713: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:11:55.208609: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0031 kWh val_bias=-0.0015 kWh (-2.2%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-16 09:12:26.022574: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0034 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-16 09:12:57.486343: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 09:13:29.199953: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0083 val_mae=0.0033 kWh val_bias=-0.0013 kWh (-1.9%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 09:13:41.784664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:13:41.784914: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:13:41.785435: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:13:41.785620: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:13:41.785659: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:13:41.785681: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:13:41.785699: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:13:59.455796: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0090 val_mae=0.0029 kWh val_bias=+0.0008 kWh (+1.2%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 09:14:30.627570: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0087 val_mae=0.0030 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 09:15:00.190224: --------------- PredBat - update at 2026-08-16 09:15:00+01:00 with clock skew 0 minutes, minutes now 555
2026-08-16 09:15:00.192198: Saved current settings to /config/predbat_config.json
2026-08-16 09:15:00.192460: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 09:15:00.192737: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:15:00.192899: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:15:00.242039: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:15:00.242407: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:15:00.242741: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:15:00.243409: Cars 1 charging from battery False 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-16 09:15:00.243674: Predbat mode is set to Control charge & discharge
2026-08-16 09:15:00.618298: Found 21602 load_today datapoints going back 27 days
2026-08-16 09:15:00.618585: Using load_power data to fill gaps in load_today data
2026-08-16 09:15:01.896423: Processing 721 30-minute periods for power integration
2026-08-16 09:15:02.136123: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:15:02.136292: Car charging hold False, threshold 6.0kWh
2026-08-16 09:15:02.136347: Current data so far today: load 5.05kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:15:02.176007: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:15:02.176680: Standing charge is set to 49.98p
2026-08-16 09:15:02.289877: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:15:02.290136: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:15:02.290499: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 555.0 minutes
2026-08-16 09:15:02.291231: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 554.8 minutes
2026-08-16 09:15:02.295615: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:15:02.472810: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:15:02.551328: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:15:02.552478: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:15:02.620297: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:15:02.620589: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:15:02.622691: High export rate found rates in range 99p to -99p
2026-08-16 09:15:02.895124: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:15:02.901972: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:15:02.939060: Battery level now 7.36kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -4.85p, rate_forward 1.0p
2026-08-16 09:15:02.939763: 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-16 09:15:03.052997: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 60.5p, import 10.52p, export 0.0p, carbon 0.0kg
2026-08-16 09:15:03.053198: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:15:03.224590: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:15:03.282669: Today's load divergence 96.64%, in-day adjustment 88.3%, damping 0.95x, yesterday 82.97% today 96.81% blend 61.46%
2026-08-16 09:15:03.289711: Today's predicted so far 5.52kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.52kWh forecast extra.
2026-08-16 09:15:03.289912: Today's actual load so far 5.01kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:15:03.373677: Inverter 0: Type SK Sunsynk
2026-08-16 09:15:03.373919: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:15:03.374213: Reserve min: 7%, battery_min: 7%
2026-08-16 09:15:03.374387: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:15:03.374740: Inverter 0 SoC: 7.26kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 330W, current battery voltage 51.2V, grid power -56W, load power 382W, PV Power 0W
2026-08-16 09:15:03.375024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:15:03.375212: Inverter 0 scheduled charge enable is False
2026-08-16 09:15:03.375340: Inverter 0 charge windows currently []
2026-08-16 09:15:03.375441: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:15:03.375648: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:15:03.375758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:15:03.375877: Inverter 0 scheduled discharge enable is False
2026-08-16 09:15:03.376101: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:15:03.376275: Inverter 0 discharge windows currently []
2026-08-16 09:15:03.376375: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:15:03.376473: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:15:03.376561: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:15:03.515549: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:15:03.515741: Plan was last updated on 2026-08-16 09:10:00+01:00 and is now 5.0 minutes old
2026-08-16 09:15:03.516201: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:15:03.516301: Best export window [  ]
2026-08-16 09:15:03.517675: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:15:03.547232: Load divergence over 8.0 hours mean 352.74W, min 244.8W, max 864.0W, std dev 95.49W, divergence 13.54%
2026-08-16 09:15:03.587020: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:15:03.587164: LoadML is_calculating True
2026-08-16 09:15:03.587215: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:15:03.627442: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 396.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.93kWh, PV 0.0kWh
2026-08-16 09:15:03.845426: Battery has 10.17 hours left - now at 7.26kWh
2026-08-16 09:15:03.914761: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:15:03.917854: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0088 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.5%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 09:15:04.063118: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:15:04.195396: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.93kWh, PV 0.0kWh
2026-08-16 09:15:04.195495: Saving plan best values to HA entities
2026-08-16 09:15:04.541816: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:15:04.552573: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:15:04.561604: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.8kWh, house 1.69kWh, export 0.0kWh, metric 240.42p, metric10 274.04p
2026-08-16 09:15:04.746265: Marginal costs baseline metric (no standing charge): 190.437
2026-08-16 09:15:05.105774: Marginal energy costs matrix computed: min=5.63 max=34.12
2026-08-16 09:15:05.221297: Rate array import [{'start': 555, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 555, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:15:05.222606: - Your estimated bill for today is £1.37 and tomorrow is £7.36
2026-08-16 09:15:05.222692: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:15:05.222726: - The battery is currently at 45% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:15:05.222754: - For the next 48 hours there will be no solar generation.
2026-08-16 09:15:05.222790: - You will run out of battery in 22 hours.
2026-08-16 09:15:05.222820: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:15:05.222851: 
2026-08-16 09:15:05.294418: Plan calculation took 1.78 seconds
2026-08-16 09:15:05.304695: No high rate period found
2026-08-16 09:15:05.448842: Import threshold used for optimisation was 24.94p
2026-08-16 09:15:05.574780: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:15:05.585453: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:15:05.585792: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:15:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:15:05.585947: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:15:05.586319: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:15:05.586479: No export window planned
2026-08-16 09:15:05.586727: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:15:05.586793: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:15:05.587131: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:15:05.587458: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:15:05.587636: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:15:05.587801: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:15:05.588025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588483: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588778: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.588936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.589994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.590126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:15:05.590286: Inverter 0 count register writes 0
2026-08-16 09:15:05.617869: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:15:05.626576: Total inverter register writes now 826
2026-08-16 09:15:05.678788: Info: Completed run status Demand
2026-08-16 09:15:05.689568: Info: record_status Demand
2026-08-16 09:15:05.700303: Saved current settings to /config/predbat_config.json
2026-08-16 09:15:05.700650: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:15:36.741838: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0074 val_mae=0.0031 kWh val_bias=-0.0012 kWh (-1.7%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 09:15:41.876820: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:15:41.877246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:15:41.877331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:15:41.877717: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:15:41.877792: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:15:41.877912: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:15:41.878001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:16:11.577387: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0025 kWh val_bias=+0.0007 kWh (+1.0%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 09:16:41.855883: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 09:17:13.412068: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 09:17:42.414696: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:17:42.415090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:17:42.415256: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:17:42.415521: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:17:42.415649: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:17:42.415758: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:17:42.415860: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:17:44.763895: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 09:18:16.304101: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0026 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 09:18:49.491948: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=+0.0007 kWh (+1.0%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 09:19:22.560934: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 09:19:52.600838: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-16 09:19:56.924452: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:19:56.924750: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:19:56.924802: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:19:56.925002: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:19:56.925057: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:19:56.925197: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:19:56.925248: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:20:00.116021: --------------- PredBat - update at 2026-08-16 09:20:00+01:00 with clock skew 0 minutes, minutes now 560
2026-08-16 09:20:00.116970: Saved current settings to /config/predbat_config.json
2026-08-16 09:20:00.117175: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 09:20:00.117280: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:20:00.117380: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:20:00.172661: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:20:00.173073: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:20:00.173376: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:20:00.173996: Cars 1 charging from battery False 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-16 09:20:00.174210: Predbat mode is set to Control charge & discharge
2026-08-16 09:20:00.556824: Found 21602 load_today datapoints going back 27 days
2026-08-16 09:20:00.557993: Using load_power data to fill gaps in load_today data
2026-08-16 09:20:02.034879: Processing 721 30-minute periods for power integration
2026-08-16 09:20:02.453640: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:20:02.453883: Car charging hold False, threshold 6.0kWh
2026-08-16 09:20:02.454009: Current data so far today: load 5.0kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:20:02.481701: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:20:02.482164: Standing charge is set to 49.98p
2026-08-16 09:20:02.598173: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:20:02.598394: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:20:02.598644: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 560.0 minutes
2026-08-16 09:20:02.599098: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 559.8 minutes
2026-08-16 09:20:02.601671: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:20:02.776261: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:20:02.842385: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:20:02.842853: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:20:02.886215: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:20:02.886352: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:20:02.887554: High export rate found rates in range 99p to -99p
2026-08-16 09:20:02.973979: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:20:02.974267: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:20:02.991016: Battery level now 7.26kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.26p, change today -4.95p, rate_forward 1.0p
2026-08-16 09:20:02.991533: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 1.22p, import 1.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:20:03.087734: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:20:03.088033: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:20:03.284892: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:20:03.338999: Today's load divergence 96.28%, in-day adjustment 88.22%, damping 0.95x, yesterday 82.97% today 96.47% blend 61.11%
2026-08-16 09:20:03.339769: Today's predicted so far 5.53kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.53kWh forecast extra.
2026-08-16 09:20:03.339835: Today's actual load so far 4.97kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:20:03.401688: Inverter 0: Type SK Sunsynk
2026-08-16 09:20:03.401792: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:20:03.401983: Reserve min: 7%, battery_min: 7%
2026-08-16 09:20:03.402052: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:20:03.402341: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 09:20:03.402506: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:20:03.402597: Inverter 0 scheduled charge enable is False
2026-08-16 09:20:03.402630: Inverter 0 charge windows currently []
2026-08-16 09:20:03.402657: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:20:03.402780: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:20:03.402815: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:20:03.402851: Inverter 0 scheduled discharge enable is False
2026-08-16 09:20:03.402979: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:20:03.403014: Inverter 0 discharge windows currently []
2026-08-16 09:20:03.403062: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:20:03.403082: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:20:03.403099: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:20:03.543025: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:20:03.543188: Plan was last updated on 2026-08-16 09:10:00+01:00 and is now 10.0 minutes old
2026-08-16 09:20:03.543550: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:20:03.543615: Best export window [  ]
2026-08-16 09:20:03.544880: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:20:03.550003: Load divergence over 8.0 hours mean 352.79W, min 244.2W, max 891.6W, std dev 91.57W, divergence 12.98%
2026-08-16 09:20:03.580995: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:20:03.581297: LoadML is_calculating True
2026-08-16 09:20:03.581513: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:20:03.649580: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 400.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.9kWh, PV 0.0kWh
2026-08-16 09:20:03.894437: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:20:03.960083: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 423.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.65kWh, PV 0.0kWh
2026-08-16 09:20:04.171050: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 286.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.65kWh, PV 0.0kWh
2026-08-16 09:20:04.321449: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 254.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.9kWh, PV 0.0kWh
2026-08-16 09:20:04.321634: Saving plan best values to HA entities
2026-08-16 09:20:04.623108: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:20:04.630227: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:20:04.637507: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.31kWh, house 1.67kWh, export 0.0kWh, metric 254.72p, metric10 286.66p
2026-08-16 09:20:04.764898: Marginal costs baseline metric (no standing charge): 204.7377
2026-08-16 09:20:05.185726: Marginal energy costs matrix computed: min=7.69 max=34.24
2026-08-16 09:20:05.357375: Rate array import [{'start': 560, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 560, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:20:05.358093: - Your estimated bill for today is £1.40 and tomorrow is £7.36
2026-08-16 09:20:05.358161: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:20:05.358188: - The battery is currently at 45% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:20:05.358305: - For the next 48 hours there will be no solar generation.
2026-08-16 09:20:05.358344: - You will run out of battery in 22 hours.
2026-08-16 09:20:05.358364: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:20:05.358406: 
2026-08-16 09:20:05.392222: Plan calculation took 1.85 seconds
2026-08-16 09:20:05.395885: No high rate period found
2026-08-16 09:20:05.474694: Import threshold used for optimisation was 24.94p
2026-08-16 09:20:05.567854: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:20:05.578737: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:20:05.578913: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:20:05.579008: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:20:05.579257: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:20:05.579351: No export window planned
2026-08-16 09:20:05.579485: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:20:05.579530: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:20:05.579699: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:20:05.579882: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:20:05.579944: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:20:05.580000: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:20:05.580091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:05.580729: Inverter 0 count register writes 0
2026-08-16 09:20:05.606690: 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-16 09:20:05.606931: Recompute is saving previous plan...
2026-08-16 09:20:05.611612: Best charge window [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0% ]
2026-08-16 09:20:05.611715: Best export window [  ]
2026-08-16 09:20:05.613120: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:20:05.617867: Load divergence over 8.0 hours mean 352.79W, min 244.2W, max 891.6W, std dev 91.57W, divergence 12.98%
2026-08-16 09:20:05.682827: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:20:05.682953: LoadML is_calculating True
2026-08-16 09:20:05.682981: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:20:05.694624: 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(0.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-16 09:20:05.696011: Optimise levels pass started at 2026-08-16 09:20:05
2026-08-16 09:20:05.696245: Optimise all windows, total charge 94 export 1
2026-08-16 09:20:11.259961: >> Region optimisation pass width 960 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:20:12.387850: >> Region optimisation pass width 480 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:20:13.402292: >> Region optimisation pass width 240 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:20:16.432120: >> Region optimisation pass width 120 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:20:16.432806: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 51
2026-08-16 09:20:16.433022: Optimise levels pass ended at 2026-08-16 09:20:16, duration 10.7 seconds tried 313 combinations
2026-08-16 09:20:16.433227: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 542.84p, best_keep 0kWh, best_cycle 42.65kWh, best_carbon 0kg, best_import 27.6kWh
2026-08-16 09:20:16.454077: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 12.25, 12.25, 0, 12.25, 0, 12.25, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:20:45.734043: Tweak plan optimisation started metric 165.37p, cost 180.74p
2026-08-16 09:20:46.755315: Tweak optimisation finished metric 165.37p, cost 180.74p, metric_keep 0kWh, cycle 18.18kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 09:20:46.786724: Swap charge optimisation started metric 165.37p, cost 180.74p, min_improvement_swap 0.1p
2026-08-16 09:20:54.496842: Swap charge optimisation finished metric 165.37p, cost 180.74p
2026-08-16 09:20:54.659967: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 160.14p -> 160.14p, plan now metric 165.49p, cost 180.74p, cycle 18.18kWh, import 10.98kWh
2026-08-16 09:20:54.674172: Raw charge windows [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100% ] reserve 1.12
2026-08-16 09:20:54.674853: Unclipped charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:20:54.676171: Unfiltered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:20:54.676571: Filtered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:20:54.739886: Previous plan best metric is 165.99 (cost 181.32) and new plan best metric is 165.37 (cost 180.74)
2026-08-16 09:20:54.740225: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:20:54.740495: Plan valid is now true after recompute was False
2026-08-16 09:20:54.784803: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 397.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.76kWh, PV 0.0kWh
2026-08-16 09:20:55.025533: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:20:55.093784: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 420.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:20:55.183426: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0032 kWh val_bias=-0.0020 kWh (-2.8%) combined=0.0023 kWh ema_combined=0.0017 kWh
2026-08-16 09:20:55.288344: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 266.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:20:55.455458: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 231.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.76kWh, PV 0.0kWh
2026-08-16 09:20:55.455572: Saving plan best values to HA entities
2026-08-16 09:20:55.805112: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:20:55.820497: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:20:55.842486: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.34kWh, house 1.67kWh, export 0.0kWh, metric 231.3p, metric10 266.45p
2026-08-16 09:20:56.022851: Marginal costs baseline metric (no standing charge): 181.3163
2026-08-16 09:20:56.558649: Marginal energy costs matrix computed: min=7.69 max=34.24
2026-08-16 09:20:56.713251: Rate array import [{'start': 560, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 560, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:20:56.714200: - Your estimated bill for today is £1.40 and tomorrow is £7.36
2026-08-16 09:20:56.714267: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:20:56.714305: - The battery is currently at 45% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:20:56.714339: - For the next 48 hours there will be no solar generation.
2026-08-16 09:20:56.727033: - You will run out of battery in 22 hours.
2026-08-16 09:20:56.727147: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:20:56.727186: 
2026-08-16 09:20:56.785905: Plan calculation took 51.18 seconds
2026-08-16 09:20:56.786357: Inverter 0: Type SK Sunsynk
2026-08-16 09:20:56.786423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:20:56.786778: Reserve min: 7%, battery_min: 7%
2026-08-16 09:20:56.786950: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:20:56.787780: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 09:20:56.788147: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:20:56.788385: Inverter 0 scheduled charge enable is False
2026-08-16 09:20:56.793277: Inverter 0 charge windows currently []
2026-08-16 09:20:56.793431: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:20:56.793702: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:20:56.793766: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:20:56.793873: Inverter 0 scheduled discharge enable is False
2026-08-16 09:20:56.794207: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:20:56.794356: Inverter 0 discharge windows currently []
2026-08-16 09:20:56.794498: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:20:56.794637: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:20:56.794773: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:20:56.936326: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:20:56.936648: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:20:56.936797: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:20:56.937161: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:20:56.937393: No export window planned
2026-08-16 09:20:56.946268: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:20:56.946375: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:20:56.946641: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:20:56.947003: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:20:56.947209: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:20:56.947395: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:20:56.947617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.947785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.947971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.948268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.948436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.948812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949017: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.949875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.950027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.950193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:20:56.950339: Inverter 0 count register writes 0
2026-08-16 09:20:56.989644: Total inverter register writes now 826
2026-08-16 09:20:57.039281: Info: Completed run status Demand
2026-08-16 09:20:57.052302: Info: record_status Demand
2026-08-16 09:20:57.062890: Saved current settings to /config/predbat_config.json
2026-08-16 09:20:57.063245: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:20:58.136017: Info: Refresh config entities due to their age of 480.0 minutes
2026-08-16 09:20:58.136425: Refreshing Predbat configuration
2026-08-16 09:20:59.625105: Saved current settings to /config/predbat_config.json
2026-08-16 09:20:59.629305: Validation of apps.yaml was successful
2026-08-16 09:20:59.629725: --------------- PredBat - update at 2026-08-16 09:20:00+01:00 with clock skew 0 minutes, minutes now 560
2026-08-16 09:20:59.630484: Saved current settings to /config/predbat_config.json
2026-08-16 09:20:59.630721: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 36.0 minutes
2026-08-16 09:20:59.631310: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:20:59.631434: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:20:59.658405: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:20:59.658635: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:20:59.658865: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:20:59.659620: Cars 1 charging from battery False 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-16 09:20:59.659884: Predbat mode is set to Control charge & discharge
2026-08-16 09:21:00.065036: Found 21602 load_today datapoints going back 27 days
2026-08-16 09:21:00.065309: Using load_power data to fill gaps in load_today data
2026-08-16 09:21:01.373533: Processing 721 30-minute periods for power integration
2026-08-16 09:21:01.668885: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:21:01.669665: Car charging hold False, threshold 6.0kWh
2026-08-16 09:21:01.669744: Current data so far today: load 5.0kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:21:01.682656: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:21:01.683046: Standing charge is set to 49.98p
2026-08-16 09:21:01.712430: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:21:01.712549: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:21:01.712718: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 561.0 minutes
2026-08-16 09:21:01.713212: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 560.8 minutes
2026-08-16 09:21:01.716437: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:21:01.798092: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:21:01.874149: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:21:01.874693: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:21:01.928483: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:21:01.928726: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:21:01.930357: High export rate found rates in range 99p to -99p
2026-08-16 09:21:02.123253: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:21:02.123546: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:21:02.155462: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:21:02.156050: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 1.22p, import 1.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:21:02.259057: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:21:02.259355: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:21:02.364794: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:21:02.391692: Today's load divergence 96.29%, in-day adjustment 88.22%, damping 0.95x, yesterday 82.97% today 96.47% blend 61.11%
2026-08-16 09:21:02.391887: Today's predicted so far 5.53kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.53kWh forecast extra.
2026-08-16 09:21:02.391935: Today's actual load so far 4.97kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:21:02.430960: Inverter 0: Type SK Sunsynk
2026-08-16 09:21:02.431059: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:21:02.431259: Reserve min: 7%, battery_min: 7%
2026-08-16 09:21:02.431336: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:21:02.431604: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 09:21:02.431764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:21:02.431858: Inverter 0 scheduled charge enable is False
2026-08-16 09:21:02.431896: Inverter 0 charge windows currently []
2026-08-16 09:21:02.431923: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:21:02.432040: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:21:02.432079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:21:02.432114: Inverter 0 scheduled discharge enable is False
2026-08-16 09:21:02.432259: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:21:02.432300: Inverter 0 discharge windows currently []
2026-08-16 09:21:02.432323: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:21:02.432345: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:21:02.432362: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:21:02.504283: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:21:02.504374: Will recompute the plan as it is invalid
2026-08-16 09:21:02.504484: Recompute is saving previous plan...
2026-08-16 09:21:02.507611: Best charge window [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0% ]
2026-08-16 09:21:02.507692: Best export window [  ]
2026-08-16 09:21:02.508488: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:21:02.511534: Load divergence over 8.0 hours mean 352.79W, min 244.2W, max 891.6W, std dev 91.57W, divergence 12.98%
2026-08-16 09:21:02.531600: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:21:02.531711: LoadML is_calculating True
2026-08-16 09:21:02.531738: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:21:02.540719: 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(0.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-16 09:21:02.541809: Optimise levels pass started at 2026-08-16 09:21:02
2026-08-16 09:21:02.542056: Optimise all windows, total charge 94 export 1
2026-08-16 09:21:07.904509: >> Region optimisation pass width 960 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:21:08.868079: >> Region optimisation pass width 480 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:21:10.303315: >> Region optimisation pass width 240 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:21:13.210716: >> Region optimisation pass width 120 gives best_metric 542.84p, best_cost 555.06p, best_cycle 42.65kWh, best_import 27.6kWh
2026-08-16 09:21:13.211198: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 51
2026-08-16 09:21:13.211367: Optimise levels pass ended at 2026-08-16 09:21:13, duration 10.7 seconds tried 313 combinations
2026-08-16 09:21:13.211489: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 542.84p, best_keep 0kWh, best_cycle 42.65kWh, best_carbon 0kg, best_import 27.6kWh
2026-08-16 09:21:13.234861: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 0, 12.25, 12.25, 0, 12.25, 0, 12.25, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:21:41.728327: Tweak plan optimisation started metric 165.37p, cost 180.74p
2026-08-16 09:21:42.786384: Tweak optimisation finished metric 165.37p, cost 180.74p, metric_keep 0kWh, cycle 18.18kWh, carbon 0kg, import 10.98kWh, changed 8 window(s)
2026-08-16 09:21:42.851724: Swap charge optimisation started metric 165.37p, cost 180.74p, min_improvement_swap 0.1p
2026-08-16 09:21:50.089247: Swap charge optimisation finished metric 165.37p, cost 180.74p
2026-08-16 09:21:50.315326: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 160.14p -> 160.14p, plan now metric 165.49p, cost 180.74p, cycle 18.18kWh, import 10.98kWh
2026-08-16 09:21:50.331423: Raw charge windows [ 16-08 09:00:00 - 16-08 09:30:00 @ 24.66p 0%, 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100% ] reserve 1.12
2026-08-16 09:21:50.337822: Unclipped charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:21:50.338386: Unfiltered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:21:50.338817: Filtered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:21:50.416747: Previous plan best metric is 165.99 (cost 181.32) and new plan best metric is 165.37 (cost 180.74)
2026-08-16 09:21:50.424346: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:21:50.429428: Plan valid is now true after recompute was False
2026-08-16 09:21:50.481928: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 397.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:20:00, load 20.76kWh, PV 0.0kWh
2026-08-16 09:21:50.628276: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:21:50.685516: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 420.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:50:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:21:50.893191: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 266.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:21:51.061105: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 231.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.76kWh, PV 0.0kWh
2026-08-16 09:21:51.061226: Saving plan best values to HA entities
2026-08-16 09:21:51.301231: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:21:51.309608: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:21:51.317558: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.34kWh, house 1.67kWh, export 0.0kWh, metric 231.3p, metric10 266.45p
2026-08-16 09:21:51.455715: Marginal costs baseline metric (no standing charge): 181.3163
2026-08-16 09:21:51.774157: Marginal energy costs matrix computed: min=7.69 max=34.24
2026-08-16 09:21:51.873217: Rate array import [{'start': 560, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 560, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:21:51.873974: - Your estimated bill for today is £1.40 and tomorrow is £7.36
2026-08-16 09:21:51.874111: - Import rates are expensive (24.1p - 25.5p) for the next 1 and three quarters hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:21:51.874254: - The battery is currently at 45% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 09:21:51.874361: - For the next 48 hours there will be no solar generation.
2026-08-16 09:21:51.874454: - You will run out of battery in 22 hours.
2026-08-16 09:21:51.874543: - Your next charge slot will be in 1 and three quarters hours where import rates will be free (0.0p).
2026-08-16 09:21:51.874632: 
2026-08-16 09:21:51.926026: Plan calculation took 49.42 seconds
2026-08-16 09:21:52.003599: Saved plan to storage
2026-08-16 09:21:52.008506: No high rate period found
2026-08-16 09:21:52.162328: Import threshold used for optimisation was 24.06p
2026-08-16 09:21:52.238127: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:21:52.249352: Inverter 0: Type SK Sunsynk
2026-08-16 09:21:52.249587: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:21:52.249930: Reserve min: 7%, battery_min: 7%
2026-08-16 09:21:52.250162: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:21:52.250636: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-16 09:21:52.250955: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:21:52.251201: Inverter 0 scheduled charge enable is False
2026-08-16 09:21:52.251350: Inverter 0 charge windows currently []
2026-08-16 09:21:52.251488: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:21:52.251776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:21:52.251923: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:21:52.252091: Inverter 0 scheduled discharge enable is False
2026-08-16 09:21:52.252419: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:21:52.252572: Inverter 0 discharge windows currently []
2026-08-16 09:21:52.252698: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:21:52.252833: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:21:52.252983: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:21:52.345848: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:21:52.346215: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:20:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:21:52.346415: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:21:52.346758: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:21:52.346960: No export window planned
2026-08-16 09:21:52.347225: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:21:52.347376: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:21:52.347672: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:21:52.347972: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:21:52.348151: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:21:52.348326: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:21:52.348533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.348686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.348830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.349981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.350139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.350287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.350427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.350567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:21:52.350724: Inverter 0 count register writes 0
2026-08-16 09:21:52.384075: Total inverter register writes now 826
2026-08-16 09:21:52.479775: Info: Completed run status Demand
2026-08-16 09:21:52.499690: Info: record_status Demand
2026-08-16 09:21:52.511308: Saved current settings to /config/predbat_config.json
2026-08-16 09:21:52.511649: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:21:52.603074: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 09:21:57.274985: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 09:22:26.682998: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:22:26.683463: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:22:26.683609: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:22:26.683894: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:22:26.684068: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:22:26.684205: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:22:26.684297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:22:28.536318: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0010 kWh ema_combined=0.0014 kWh
2026-08-16 09:23:00.487605: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 09:23:30.806917: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0020 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 09:24:01.500211: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0024 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0014 kWh ema_combined=0.0013 kWh
2026-08-16 09:24:27.181317: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:24:27.181588: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:24:27.181755: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:24:27.182030: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:24:27.182183: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:24:27.182324: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:24:27.182437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:24:32.212853: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-16 09:24:32.220479: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%)
2026-08-16 09:24:32.220685: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%)
2026-08-16 09:24:40.179936: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0005 kWh (-0.7%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 09:24:40.185003: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0020 kWh
2026-08-16 09:24:40.251130: ML Predictor: Curriculum pass 3/5: window=56.0 days (1344 hours of data)
2026-08-16 09:24:40.251395: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 09:24:40.887129: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 09:24:46.265802: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 09:24:46.318515: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0588 std=0.0469) pv(mean=0.0000 std=0.0100) temp(mean=19.5307 std=4.4379) import_rate(mean=26.1398 std=2.9063) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5248)
2026-08-16 09:24:46.395451: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 09:24:46.409641: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 09:24:46.462748: ML Predictor: Baseline (pre-finetune) val_mae=0.0052 kWh val_bias=-0.0011 kWh
2026-08-16 09:25:00.807899: --------------- PredBat - update at 2026-08-16 09:25:00+01:00 with clock skew 0 minutes, minutes now 565
2026-08-16 09:25:00.809244: Saved current settings to /config/predbat_config.json
2026-08-16 09:25:00.809520: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 09:25:00.809765: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:25:00.809879: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:25:00.838223: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:25:00.838411: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:25:00.838756: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:25:00.839584: Cars 1 charging from battery False 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-16 09:25:00.839807: Predbat mode is set to Control charge & discharge
2026-08-16 09:25:01.188822: Found 21602 load_today datapoints going back 27 days
2026-08-16 09:25:01.189147: Using load_power data to fill gaps in load_today data
2026-08-16 09:25:02.530628: Processing 721 30-minute periods for power integration
2026-08-16 09:25:02.839361: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:25:02.839562: Car charging hold False, threshold 6.0kWh
2026-08-16 09:25:02.839637: Current data so far today: load 5.0kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:25:02.854222: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:25:02.854731: Standing charge is set to 49.98p
2026-08-16 09:25:02.907444: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:25:02.907697: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:25:02.908058: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 565.0 minutes
2026-08-16 09:25:02.908770: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 564.8 minutes
2026-08-16 09:25:02.913802: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:25:03.138530: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:25:03.275745: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:25:03.293490: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:25:03.366221: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:25:03.366477: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:25:03.367692: High export rate found rates in range 99p to -99p
2026-08-16 09:25:03.482160: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:25:03.482470: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:25:03.496990: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:25:03.497573: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.2kWh, net cost 1.11p, import 1.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:25:03.561911: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:25:03.562276: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:25:03.841833: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:25:03.871769: Today's load divergence 96.26%, in-day adjustment 88.26%, damping 0.95x, yesterday 82.97% today 96.45% blend 60.76%
2026-08-16 09:25:03.871916: Today's predicted so far 5.54kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.54kWh forecast extra.
2026-08-16 09:25:03.872016: Today's actual load so far 4.98kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:25:03.926336: Inverter 0: Type SK Sunsynk
2026-08-16 09:25:03.926448: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:25:03.926671: Reserve min: 7%, battery_min: 7%
2026-08-16 09:25:03.926759: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:25:03.927095: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 307W, current battery voltage 51.2V, grid power -54W, load power 356W, PV Power 0W
2026-08-16 09:25:03.927283: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:25:03.927390: Inverter 0 scheduled charge enable is False
2026-08-16 09:25:03.927433: Inverter 0 charge windows currently []
2026-08-16 09:25:03.927467: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:25:03.927592: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:25:03.927635: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:25:03.927678: Inverter 0 scheduled discharge enable is False
2026-08-16 09:25:03.927952: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:25:03.928006: Inverter 0 discharge windows currently []
2026-08-16 09:25:03.928034: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:25:03.928145: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:25:03.928202: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:25:04.021864: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:25:04.022189: Plan was last updated on 2026-08-16 09:20:00+01:00 and is now 5.0 minutes old
2026-08-16 09:25:04.022807: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:25:04.022993: Best export window [  ]
2026-08-16 09:25:04.024369: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:25:04.029542: Load divergence over 8.0 hours mean 352.66W, min 240.6W, max 912.0W, std dev 90.1W, divergence 12.77%
2026-08-16 09:25:04.062515: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:25:04.062634: LoadML is_calculating True
2026-08-16 09:25:04.062656: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:25:04.092245: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 397.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 20.81kWh, PV 0.0kWh
2026-08-16 09:25:04.422319: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:25:04.546246: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 421.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.56kWh, PV 0.0kWh
2026-08-16 09:25:04.752276: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 276.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.56kWh, PV 0.0kWh
2026-08-16 09:25:04.909929: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 242.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.81kWh, PV 0.0kWh
2026-08-16 09:25:04.910249: Saving plan best values to HA entities
2026-08-16 09:25:05.330084: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:25:05.339286: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 09:25:05.348566: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.8kWh, house 1.67kWh, export 0.0kWh, metric 242.58p, metric10 276.12p
2026-08-16 09:25:05.505719: Marginal costs baseline metric (no standing charge): 192.5947
2026-08-16 09:25:06.069791: Marginal energy costs matrix computed: min=9.75 max=34.36
2026-08-16 09:25:06.289066: Rate array import [{'start': 565, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 565, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:25:06.313946: - Your estimated bill for today is £1.40 and tomorrow is £7.37
2026-08-16 09:25:06.314246: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:25:06.314414: - The battery is currently at 45% and is in eco mode for the next 1 and a half hours.
2026-08-16 09:25:06.314570: - For the next 48 hours there will be no solar generation.
2026-08-16 09:25:06.314720: - You will run out of battery in 22 hours.
2026-08-16 09:25:06.314865: - Your next charge slot will be in 1 and a half hours where import rates will be free (0.0p).
2026-08-16 09:25:06.315006: 
2026-08-16 09:25:06.357177: Plan calculation took 2.33 seconds
2026-08-16 09:25:06.362982: No high rate period found
2026-08-16 09:25:06.439190: Import threshold used for optimisation was 24.06p
2026-08-16 09:25:06.543452: Low import rate windows [0: 08-16 09:00:00 - 08-16 09:30:00 @ 24.66, 1: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 2: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 3: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 4: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 5: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 6: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 7: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 8: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 9: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 10: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 11: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 12: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 13: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 14: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 15: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 16: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 17: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 18: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 19: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 20: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 21: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 22: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 23: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 24: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 25: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 26: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 27: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 28: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 29: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 30: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 31: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 32: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 33: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 34: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 35: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 36: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 37: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 38: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 39: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 40: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 41: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 42: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 43: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 44: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 45: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 46: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 47: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 48: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 49: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 50: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 51: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 52: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 53: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 54: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 55: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 56: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 57: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 58: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 59: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 60: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 61: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 62: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 63: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 64: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 65: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 66: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 67: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 68: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 69: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 70: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 71: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 72: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 73: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 74: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 75: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 76: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 77: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 78: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 79: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 80: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 81: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 82: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 83: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 84: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 85: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 86: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 87: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 88: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 89: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 90: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 91: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 92: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 93: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 94: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:25:06.555187: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:25:06.555539: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:25:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:25:06.555732: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:25:06.556283: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:25:06.556508: No export window planned
2026-08-16 09:25:06.556784: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:25:06.556929: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:25:06.557541: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:25:06.557863: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:25:06.558029: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:25:06.558220: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:25:06.558433: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.558587: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.558734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.558877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.559947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.560103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.560252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.560393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:25:06.560522: Inverter 0 count register writes 0
2026-08-16 09:25:06.586330: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:25:06.595002: Total inverter register writes now 826
2026-08-16 09:25:06.671280: Info: Completed run status Demand
2026-08-16 09:25:06.682323: Info: record_status Demand
2026-08-16 09:25:06.693424: Saved current settings to /config/predbat_config.json
2026-08-16 09:25:06.693652: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:25:22.051466: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0092 val_mae=0.0057 kWh val_bias=+0.0032 kWh (+3.6%) combined=0.0046 kWh ema_combined=0.0046 kWh
2026-08-16 09:25:41.873180: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:25:41.873454: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:25:41.873500: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:25:41.873673: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:25:41.873721: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:25:41.873743: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:25:41.873760: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:25:53.108146: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0133 val_mae=0.0056 kWh val_bias=-0.0023 kWh (-2.6%) combined=0.0037 kWh ema_combined=0.0043 kWh
2026-08-16 09:26:24.513676: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0132 val_mae=0.0057 kWh val_bias=-0.0026 kWh (-2.9%) combined=0.0042 kWh ema_combined=0.0043 kWh
2026-08-16 09:26:56.150971: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0121 val_mae=0.0048 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0025 kWh ema_combined=0.0038 kWh
2026-08-16 09:27:27.904568: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0103 val_mae=0.0053 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0026 kWh ema_combined=0.0034 kWh
2026-08-16 09:27:42.326492: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:27:42.326931: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:27:42.327033: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:27:42.327308: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:27:42.327397: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:27:42.327444: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:27:42.327515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:27:59.672039: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0111 val_mae=0.0064 kWh val_bias=-0.0030 kWh (-3.4%) combined=0.0047 kWh ema_combined=0.0038 kWh
2026-08-16 09:28:34.088024: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0130 val_mae=0.0046 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0029 kWh ema_combined=0.0035 kWh
2026-08-16 09:29:06.625752: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0108 val_mae=0.0038 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0022 kWh ema_combined=0.0031 kWh
2026-08-16 09:29:38.079876: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0050 kWh val_bias=-0.0030 kWh (-3.4%) combined=0.0041 kWh ema_combined=0.0034 kWh
2026-08-16 09:29:56.892742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:29:56.893283: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:29:56.893479: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:29:56.893816: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:29:56.893981: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:29:56.894123: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:29:56.894259: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:30:00.059250: --------------- PredBat - update at 2026-08-16 09:30:00+01:00 with clock skew 0 minutes, minutes now 570
2026-08-16 09:30:00.061825: Saved current settings to /config/predbat_config.json
2026-08-16 09:30:00.062022: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 09:30:00.062150: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:30:00.062232: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:30:00.128554: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:30:00.128874: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:30:00.129205: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:30:00.129996: Cars 1 charging from battery False 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-16 09:30:00.130258: Predbat mode is set to Control charge & discharge
2026-08-16 09:30:00.517340: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:30:00.517612: Using load_power data to fill gaps in load_today data
2026-08-16 09:30:01.983114: Processing 721 30-minute periods for power integration
2026-08-16 09:30:02.202738: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:30:02.203021: Car charging hold False, threshold 6.0kWh
2026-08-16 09:30:02.203171: Current data so far today: load 5.12kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:30:02.222820: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:30:02.223726: Standing charge is set to 49.98p
2026-08-16 09:30:02.393724: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:30:02.393957: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:30:02.854610: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:30:03.094932: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:30:03.244833: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:30:03.245334: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:30:03.300280: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:30:03.300516: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:30:03.301969: High export rate found rates in range 99p to -99p
2026-08-16 09:30:03.412375: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:30:03.412527: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:30:03.447241: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:30:03.447911: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.0p, import 1.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:30:03.693259: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:30:03.693478: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:30:03.911753: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:30:03.951769: Today's load divergence 96.57%, in-day adjustment 88.42%, damping 0.95x, yesterday 82.97% today 96.74% blend 60.42%
2026-08-16 09:30:03.951877: Today's predicted so far 5.66kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.66kWh forecast extra.
2026-08-16 09:30:03.951909: Today's actual load so far 5.14kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:30:04.047787: Inverter 0: Type SK Sunsynk
2026-08-16 09:30:04.047879: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:30:04.048068: Reserve min: 7%, battery_min: 7%
2026-08-16 09:30:04.048133: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:30:04.048402: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 271W, current battery voltage 51.2V, grid power -54W, load power 320W, PV Power 0W
2026-08-16 09:30:04.048576: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:30:04.048663: Inverter 0 scheduled charge enable is False
2026-08-16 09:30:04.048692: Inverter 0 charge windows currently []
2026-08-16 09:30:04.048717: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:30:04.048828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:30:04.048856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:30:04.048890: Inverter 0 scheduled discharge enable is False
2026-08-16 09:30:04.049049: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:30:04.049084: Inverter 0 discharge windows currently []
2026-08-16 09:30:04.049106: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:30:04.049124: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:30:04.049141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:30:04.186315: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:30:04.186454: Plan was last updated on 2026-08-16 09:20:00+01:00 and is now 10.0 minutes old
2026-08-16 09:30:04.186812: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:30:04.187090: Best export window [  ]
2026-08-16 09:30:04.188370: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:30:04.193068: Load divergence over 8.0 hours mean 352.92W, min 223.8W, max 1097.4W, std dev 99.37W, divergence 14.08%
2026-08-16 09:30:04.268229: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:30:04.268372: LoadML is_calculating True
2026-08-16 09:30:04.268405: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:30:04.464201: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 398.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.99kWh, PV 0.0kWh
2026-08-16 09:30:04.719881: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:30:04.797904: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 421.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.74kWh, PV 0.0kWh
2026-08-16 09:30:05.015385: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 285.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.74kWh, PV 0.0kWh
2026-08-16 09:30:05.247607: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 254.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.99kWh, PV 0.0kWh
2026-08-16 09:30:05.249520: Saving plan best values to HA entities
2026-08-16 09:30:05.534290: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:30:05.554445: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:30:05.563201: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.25kWh, house 1.69kWh, export 0.0kWh, metric 254.06p, metric10 285.79p
2026-08-16 09:30:05.697842: Marginal costs baseline metric (no standing charge): 204.0718
2026-08-16 09:30:06.154589: Marginal energy costs matrix computed: min=11.66 max=34.51
2026-08-16 09:30:06.315488: Rate array import [{'start': 570, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 570, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:30:06.316155: - Your estimated bill for today is £1.39 and tomorrow is £7.35
2026-08-16 09:30:06.316209: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:30:06.316232: - The battery is currently at 45% and is in eco mode for the next 1 and a half hours.
2026-08-16 09:30:06.316251: - For the next 48 hours there will be no solar generation.
2026-08-16 09:30:06.316269: - You will run out of battery in 22 hours.
2026-08-16 09:30:06.316294: - Your next charge slot will be in 1 and a half hours where import rates will be free (0.0p).
2026-08-16 09:30:06.316311: 
2026-08-16 09:30:06.394748: Plan calculation took 2.21 seconds
2026-08-16 09:30:06.407867: No high rate period found
2026-08-16 09:30:06.553242: Import threshold used for optimisation was 24.06p
2026-08-16 09:30:06.695083: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66]
2026-08-16 09:30:06.720761: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:30:06.720981: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:30:06.721145: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:30:06.721435: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:30:06.721623: No export window planned
2026-08-16 09:30:06.721828: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:30:06.721946: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:30:06.722193: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:30:06.722447: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:30:06.722599: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:30:06.722757: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:30:06.722935: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.723208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.723557: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.723723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.723845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.723964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.724070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.724532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.724943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.725646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.726065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.726192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.726299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.726412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:06.726526: Inverter 0 count register writes 0
2026-08-16 09:30:06.760899: 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-16 09:30:06.761295: Recompute is saving previous plan...
2026-08-16 09:30:06.765076: Best charge window [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0% ]
2026-08-16 09:30:06.781049: Best export window [  ]
2026-08-16 09:30:06.782325: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:30:06.786718: Load divergence over 8.0 hours mean 352.92W, min 223.8W, max 1097.4W, std dev 99.37W, divergence 14.08%
2026-08-16 09:30:06.826120: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:30:06.826397: LoadML is_calculating True
2026-08-16 09:30:06.826525: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:30:06.849713: 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(0.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-16 09:30:06.851388: Optimise levels pass started at 2026-08-16 09:30:06
2026-08-16 09:30:06.857607: Optimise all windows, total charge 94 export 1
2026-08-16 09:30:15.410601: >> Region optimisation pass width 960 gives best_metric 543.82p, best_cost 556.07p, best_cycle 43.86kWh, best_import 27.74kWh
2026-08-16 09:30:16.493587: >> Region optimisation pass width 480 gives best_metric 543.82p, best_cost 556.07p, best_cycle 43.86kWh, best_import 27.74kWh
2026-08-16 09:30:17.861863: >> Region optimisation pass width 240 gives best_metric 543.82p, best_cost 556.07p, best_cycle 43.86kWh, best_import 27.74kWh
2026-08-16 09:30:20.643008: >> Region optimisation pass width 120 gives best_metric 543.82p, best_cost 556.07p, best_cycle 43.86kWh, best_import 27.74kWh
2026-08-16 09:30:20.643642: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 50
2026-08-16 09:30:20.643798: Optimise levels pass ended at 2026-08-16 09:30:20, duration 13.8 seconds tried 318 combinations
2026-08-16 09:30:20.643862: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 543.82p, best_keep 0kWh, best_cycle 43.86kWh, best_carbon 0kg, best_import 27.74kWh
2026-08-16 09:30:20.664444: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 12.25, 12.25, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:30:26.150583: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0105 val_mae=0.0039 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0030 kWh
2026-08-16 09:30:49.161771: Tweak plan optimisation started metric 165.14p, cost 180.52p
2026-08-16 09:30:50.291869: Tweak optimisation finished metric 165.14p, cost 180.52p, metric_keep 0kWh, cycle 19.13kWh, carbon 0kg, import 11.01kWh, changed 8 window(s)
2026-08-16 09:30:50.320400: Swap charge optimisation started metric 165.14p, cost 180.52p, min_improvement_swap 0.1p
2026-08-16 09:30:57.117385: Swap charge optimisation finished metric 165.14p, cost 180.52p
2026-08-16 09:30:57.267219: Pruned 2 dead plan slot(s) in 11 trial(s), nominal metric 159.92p -> 159.92p, plan now metric 165.27p, cost 180.52p, cycle 19.13kWh, import 11.01kWh
2026-08-16 09:30:57.282393: Raw charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 63%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100% ] reserve 1.12
2026-08-16 09:30:57.283146: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:30:57.283454: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:30:57.283931: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 14:00:00 @ 22.53p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 09:30:00 @ 24.57p 100% ] reserve 1.12
2026-08-16 09:30:57.323870: Previous plan best metric is 165.24 (cost 180.6) and new plan best metric is 165.14 (cost 180.52)
2026-08-16 09:30:57.324144: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:30:57.324273: Plan valid is now true after recompute was False
2026-08-16 09:30:57.351436: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 395.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.85kWh, PV 0.0kWh
2026-08-16 09:30:57.585765: Battery has 10.0 hours left - now at 7.2kWh
2026-08-16 09:30:57.670580: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 418.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 18:55:00, load 21.6kWh, PV 0.0kWh
2026-08-16 09:30:57.799555: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 265.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.6kWh, PV 0.0kWh
2026-08-16 09:30:57.962899: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 230.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.85kWh, PV 0.0kWh
2026-08-16 09:30:57.963030: Saving plan best values to HA entities
2026-08-16 09:30:58.349182: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:30:58.357556: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:30:58.380411: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.28kWh, house 1.69kWh, export 0.0kWh, metric 230.58p, metric10 265.53p
2026-08-16 09:30:58.559167: Marginal costs baseline metric (no standing charge): 180.5994
2026-08-16 09:30:59.105067: Marginal energy costs matrix computed: min=11.66 max=34.51
2026-08-16 09:30:59.213261: Rate array import [{'start': 570, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 570, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:30:59.214178: - Your estimated bill for today is £1.39 and tomorrow is £7.35
2026-08-16 09:30:59.214240: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:30:59.214273: - The battery is currently at 45% and is in eco mode for the next 1 and a half hours.
2026-08-16 09:30:59.214314: - For the next 48 hours there will be no solar generation.
2026-08-16 09:30:59.214341: - You will run out of battery in 22 hours.
2026-08-16 09:30:59.214377: - Your next charge slot will be in 1 and a half hours where import rates will be free (0.0p).
2026-08-16 09:30:59.214405: 
2026-08-16 09:30:59.262861: Plan calculation took 52.50 seconds
2026-08-16 09:30:59.263424: Inverter 0: Type SK Sunsynk
2026-08-16 09:30:59.263650: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:30:59.264056: Reserve min: 7%, battery_min: 7%
2026-08-16 09:30:59.264280: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:30:59.264830: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 271W, current battery voltage 51.2V, grid power -54W, load power 320W, PV Power 0W
2026-08-16 09:30:59.265329: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:30:59.265626: Inverter 0 scheduled charge enable is False
2026-08-16 09:30:59.265790: Inverter 0 charge windows currently []
2026-08-16 09:30:59.265948: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:30:59.266648: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:30:59.266827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:30:59.266998: Inverter 0 scheduled discharge enable is False
2026-08-16 09:30:59.267327: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:30:59.267486: Inverter 0 discharge windows currently []
2026-08-16 09:30:59.267673: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:30:59.267817: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:30:59.267941: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:30:59.382185: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:30:59.382363: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:30:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:30:59.382430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:30:59.382647: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:30:59.382731: No export window planned
2026-08-16 09:30:59.382973: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:30:59.383113: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:30:59.383413: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:30:59.383730: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:30:59.383884: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:30:59.384040: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:30:59.384224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.384390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.384555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.384691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.384819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.384989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385141: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.385895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.386020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.386143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:30:59.386260: Inverter 0 count register writes 0
2026-08-16 09:30:59.432122: Total inverter register writes now 826
2026-08-16 09:30:59.515376: Info: Completed run status Demand
2026-08-16 09:30:59.528047: Info: record_status Demand
2026-08-16 09:30:59.551404: Saved current settings to /config/predbat_config.json
2026-08-16 09:30:59.551719: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:31:16.416151: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0099 val_mae=0.0038 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-16 09:31:41.739464: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:31:41.739933: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:31:41.740090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:31:41.740443: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:31:41.740632: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:31:41.740758: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:31:41.740920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:31:46.135186: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0092 val_mae=0.0034 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 09:32:17.031539: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0087 val_mae=0.0037 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 09:32:46.864089: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-16 09:33:18.493578: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0071 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 09:33:42.185294: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:33:42.185621: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:33:42.185677: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:33:42.185881: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:33:42.185931: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:33:42.185959: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:33:42.186082: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:33:48.276204: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0066 val_mae=0.0037 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0030 kWh ema_combined=0.0025 kWh
2026-08-16 09:34:20.116685: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0033 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-16 09:34:51.578712: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0032 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-16 09:35:00.617335: --------------- PredBat - update at 2026-08-16 09:35:00+01:00 with clock skew 0 minutes, minutes now 575
2026-08-16 09:35:00.618300: Saved current settings to /config/predbat_config.json
2026-08-16 09:35:00.618441: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 09:35:00.618528: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:35:00.618612: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:35:00.660427: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:35:00.666257: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:35:00.666942: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:35:00.667870: Cars 1 charging from battery False 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-16 09:35:00.675717: Predbat mode is set to Control charge & discharge
2026-08-16 09:35:00.987062: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:35:00.987683: Using load_power data to fill gaps in load_today data
2026-08-16 09:35:02.525773: Processing 721 30-minute periods for power integration
2026-08-16 09:35:02.936133: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:35:02.936283: Car charging hold False, threshold 6.0kWh
2026-08-16 09:35:02.936332: Current data so far today: load 5.15kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:35:02.952046: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:35:02.952539: Standing charge is set to 49.98p
2026-08-16 09:35:02.982937: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:35:02.983229: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:35:02.983713: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 09:35:02.984308: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 09:35:02.987597: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:35:03.123147: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:35:03.219824: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:35:03.221152: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:35:03.301294: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:35:03.301593: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:35:03.303408: High export rate found rates in range 99p to -99p
2026-08-16 09:35:03.572736: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:35:03.585153: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:35:03.618656: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:35:03.619200: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.89p, import 0.89p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:35:03.733258: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:35:03.733436: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:35:03.949132: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:35:03.980027: Today's load divergence 96.56%, in-day adjustment 88.46%, damping 0.95x, yesterday 82.97% today 96.73% blend 60.07%
2026-08-16 09:35:03.980234: Today's predicted so far 5.75kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.75kWh forecast extra.
2026-08-16 09:35:03.980300: Today's actual load so far 5.23kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:35:04.028524: Inverter 0: Type SK Sunsynk
2026-08-16 09:35:04.028741: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:35:04.029078: Reserve min: 7%, battery_min: 7%
2026-08-16 09:35:04.029216: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:35:04.029569: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 306W, current battery voltage 51.2V, grid power -55W, load power 359W, PV Power 0W
2026-08-16 09:35:04.029821: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:35:04.029979: Inverter 0 scheduled charge enable is False
2026-08-16 09:35:04.030025: Inverter 0 charge windows currently []
2026-08-16 09:35:04.030103: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:35:04.030291: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:35:04.030340: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:35:04.030419: Inverter 0 scheduled discharge enable is False
2026-08-16 09:35:04.030650: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:35:04.030697: Inverter 0 discharge windows currently []
2026-08-16 09:35:04.030787: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:35:04.030826: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:35:04.030846: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:35:04.114640: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:35:04.114899: Plan was last updated on 2026-08-16 09:30:00+01:00 and is now 5.0 minutes old
2026-08-16 09:35:04.115234: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:35:04.115366: Best export window [  ]
2026-08-16 09:35:04.116214: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:35:04.119381: Load divergence over 8.0 hours mean 353.01W, min 213.6W, max 1026.0W, std dev 96.38W, divergence 13.65%
2026-08-16 09:35:04.140590: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:35:04.140851: LoadML is_calculating True
2026-08-16 09:35:04.141140: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:35:04.184360: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 396.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.93kWh, PV 0.0kWh
2026-08-16 09:35:04.437122: Battery has 9.92 hours left - now at 7.2kWh
2026-08-16 09:35:04.498656: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:35:04.639642: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 275.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:35:04.882899: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 241.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.93kWh, PV 0.0kWh
2026-08-16 09:35:04.883014: Saving plan best values to HA entities
2026-08-16 09:35:05.259170: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 09:35:05.274936: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:35:05.282364: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.73kWh, house 1.7kWh, export 0.0kWh, metric 241.77p, metric10 275.03p
2026-08-16 09:35:05.501913: Marginal costs baseline metric (no standing charge): 191.7843
2026-08-16 09:35:05.925255: Marginal energy costs matrix computed: min=13.52 max=34.64
2026-08-16 09:35:06.145500: Rate array import [{'start': 575, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 575, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:35:06.146274: - Your estimated bill for today is £1.38 and tomorrow is £7.34
2026-08-16 09:35:06.146328: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a half hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:35:06.146351: - The battery is currently at 45% and is in eco mode for the next 1 and a half hours.
2026-08-16 09:35:06.146371: - For the next 48 hours there will be no solar generation.
2026-08-16 09:35:06.146389: - You will run out of battery in 22 hours.
2026-08-16 09:35:06.146406: - Your next charge slot will be in 1 and a half hours where import rates will be free (0.0p).
2026-08-16 09:35:06.146428: 
2026-08-16 09:35:06.185412: Plan calculation took 2.07 seconds
2026-08-16 09:35:06.189157: No high rate period found
2026-08-16 09:35:06.259427: Import threshold used for optimisation was 24.94p
2026-08-16 09:35:06.346072: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 09:35:06.358491: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:35:06.358666: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:35:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:35:06.358777: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:35:06.359012: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:35:06.359102: No export window planned
2026-08-16 09:35:06.359231: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:35:06.359266: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:35:06.359433: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:35:06.359612: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:35:06.359674: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:35:06.359730: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:35:06.359851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.359906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.359943: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.359980: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:35:06.360464: Inverter 0 count register writes 0
2026-08-16 09:35:06.387587: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:35:06.396940: Total inverter register writes now 826
2026-08-16 09:35:06.451832: Info: Completed run status Demand
2026-08-16 09:35:06.461373: Info: record_status Demand
2026-08-16 09:35:06.471426: Saved current settings to /config/predbat_config.json
2026-08-16 09:35:06.471771: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:35:29.084685: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0058 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 09:35:41.680245: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:35:41.680545: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:35:41.680790: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:35:41.681110: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:35:41.681231: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:35:41.681330: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:35:41.681366: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:36:03.708921: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0029 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 09:36:36.516855: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0029 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 09:37:08.847025: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0055 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 09:37:37.600128: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 09:37:42.156659: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:37:42.157252: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:37:42.157443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:37:42.157805: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:37:42.158040: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:37:42.158127: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:37:42.158163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:38:07.663502: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0056 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 09:38:39.023381: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0059 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 09:39:11.063520: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 09:39:42.739560: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 09:39:56.690142: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:39:56.692903: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:39:56.693033: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:39:56.693502: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:39:56.693567: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:39:56.693819: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:39:56.694030: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:40:00.940803: --------------- PredBat - update at 2026-08-16 09:40:00+01:00 with clock skew 0 minutes, minutes now 580
2026-08-16 09:40:00.941596: Saved current settings to /config/predbat_config.json
2026-08-16 09:40:00.941848: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 09:40:00.941988: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:40:00.942070: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:40:00.974439: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:40:00.974611: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:40:00.974922: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:40:00.975638: Cars 1 charging from battery False 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-16 09:40:00.975838: Predbat mode is set to Control charge & discharge
2026-08-16 09:40:01.580194: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:40:01.581518: Using load_power data to fill gaps in load_today data
2026-08-16 09:40:02.728118: Processing 721 30-minute periods for power integration
2026-08-16 09:40:03.056930: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:40:03.057203: Car charging hold False, threshold 6.0kWh
2026-08-16 09:40:03.057256: Current data so far today: load 5.25kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:40:03.071817: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:40:03.072286: Standing charge is set to 49.98p
2026-08-16 09:40:03.121696: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:40:03.121813: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:40:03.122082: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 09:40:03.122516: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 09:40:03.125732: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:40:03.262824: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:40:03.420827: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:40:03.421424: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:40:03.458982: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:40:03.459096: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:40:03.460134: High export rate found rates in range 99p to -99p
2026-08-16 09:40:03.538765: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:40:03.538956: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:40:03.566343: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:40:03.566725: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.78p, import 0.78p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:40:03.676243: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:40:03.676548: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:40:03.823153: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:40:03.893474: Today's load divergence 96.97%, in-day adjustment 88.67%, damping 0.95x, yesterday 82.97% today 97.12% blend 59.72%
2026-08-16 09:40:03.895748: Today's predicted so far 5.75kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.75kWh forecast extra.
2026-08-16 09:40:03.895909: Today's actual load so far 5.28kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:40:03.979545: Inverter 0: Type SK Sunsynk
2026-08-16 09:40:03.980206: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:40:03.980486: Reserve min: 7%, battery_min: 7%
2026-08-16 09:40:03.980584: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:40:03.980998: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 241W, current battery voltage 51.2V, grid power -54W, load power 290W, PV Power 0W
2026-08-16 09:40:03.981296: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:40:03.981443: Inverter 0 scheduled charge enable is False
2026-08-16 09:40:03.981580: Inverter 0 charge windows currently []
2026-08-16 09:40:03.981623: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:40:03.982023: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:40:03.982232: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:40:03.982434: Inverter 0 scheduled discharge enable is False
2026-08-16 09:40:03.982791: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:40:03.983008: Inverter 0 discharge windows currently []
2026-08-16 09:40:03.983072: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:40:03.983202: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:40:03.983262: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:40:04.095615: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:40:04.095765: Plan was last updated on 2026-08-16 09:30:00+01:00 and is now 10.0 minutes old
2026-08-16 09:40:04.096137: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:40:04.096200: Best export window [  ]
2026-08-16 09:40:04.097600: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:40:04.102488: Load divergence over 8.0 hours mean 354.51W, min 222.6W, max 708.0W, std dev 80.63W, divergence 11.37%
2026-08-16 09:40:04.132356: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:40:04.132513: LoadML is_calculating True
2026-08-16 09:40:04.132551: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:40:04.246733: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 397.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 21.07kWh, PV 0.0kWh
2026-08-16 09:40:04.546419: Battery has 9.83 hours left - now at 7.2kWh
2026-08-16 09:40:04.612064: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 420.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.82kWh, PV 0.0kWh
2026-08-16 09:40:04.803967: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 284.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.82kWh, PV 0.0kWh
2026-08-16 09:40:04.967084: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 253.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 21.07kWh, PV 0.0kWh
2026-08-16 09:40:04.967526: Saving plan best values to HA entities
2026-08-16 09:40:05.425152: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:40:05.440372: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:40:05.461159: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.19kWh, house 1.71kWh, export 0.0kWh, metric 253.05p, metric10 284.52p
2026-08-16 09:40:05.652149: Marginal costs baseline metric (no standing charge): 203.0638
2026-08-16 09:40:06.260695: Marginal energy costs matrix computed: min=15.24 max=34.74
2026-08-16 09:40:06.426521: Rate array import [{'start': 580, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 580, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:40:06.427185: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 09:40:06.427243: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:40:06.427429: - The battery is currently at 45% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 09:40:06.427468: - For the next 48 hours there will be no solar generation.
2026-08-16 09:40:06.427488: - You will run out of battery in 22 hours.
2026-08-16 09:40:06.427506: - Your next charge slot will be in 1 and a quarter hours where import rates will be free (0.0p).
2026-08-16 09:40:06.427523: 
2026-08-16 09:40:06.493157: Plan calculation took 2.40 seconds
2026-08-16 09:40:06.498172: No high rate period found
2026-08-16 09:40:06.638731: Import threshold used for optimisation was 24.94p
2026-08-16 09:40:06.773480: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 09:40:06.791228: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:40:06.791396: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:40:06.791481: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:40:06.791670: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:40:06.791866: No export window planned
2026-08-16 09:40:06.792095: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:40:06.792149: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:40:06.792392: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:40:06.792679: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:40:06.792759: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:40:06.792825: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:40:06.793051: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793116: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793245: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793424: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:06.793784: Inverter 0 count register writes 0
2026-08-16 09:40:06.822428: 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-16 09:40:06.822622: Recompute is saving previous plan...
2026-08-16 09:40:06.826183: Best charge window [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 0% ]
2026-08-16 09:40:06.826299: Best export window [  ]
2026-08-16 09:40:06.827113: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:40:06.830171: Load divergence over 8.0 hours mean 354.51W, min 222.6W, max 708.0W, std dev 80.63W, divergence 11.37%
2026-08-16 09:40:06.851378: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:40:06.851655: LoadML is_calculating True
2026-08-16 09:40:06.851782: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:40:06.863849: 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(0.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-16 09:40:06.866280: Optimise levels pass started at 2026-08-16 09:40:06
2026-08-16 09:40:06.866472: Optimise all windows, total charge 94 export 1
2026-08-16 09:40:14.524361: >> Region optimisation pass width 960 gives best_metric 544.31p, best_cost 556.56p, best_cycle 43.71kWh, best_import 27.76kWh
2026-08-16 09:40:15.359904: >> Region optimisation pass width 480 gives best_metric 544.31p, best_cost 556.56p, best_cycle 43.71kWh, best_import 27.76kWh
2026-08-16 09:40:18.924935: >> Region optimisation pass width 240 gives best_metric 544.31p, best_cost 556.56p, best_cycle 43.71kWh, best_import 27.76kWh
2026-08-16 09:40:23.406450: >> Region optimisation pass width 120 gives best_metric 544.31p, best_cost 556.56p, best_cycle 43.71kWh, best_import 27.76kWh
2026-08-16 09:40:23.406946: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 50
2026-08-16 09:40:23.407050: Optimise levels pass ended at 2026-08-16 09:40:23, duration 16.5 seconds tried 355 combinations
2026-08-16 09:40:23.407123: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 544.31p, best_keep 0kWh, best_cycle 43.71kWh, best_carbon 0kg, best_import 27.76kWh
2026-08-16 09:40:23.452075: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:40:31.555980: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0026 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-16 09:40:45.788551: Tweak plan optimisation started metric 164.16p, cost 179.56p
2026-08-16 09:40:46.454951: Tweak optimisation finished metric 164.16p, cost 179.56p, metric_keep 0kWh, cycle 19.09kWh, carbon 0kg, import 10.96kWh, changed 8 window(s)
2026-08-16 09:40:46.504248: Swap charge optimisation started metric 164.16p, cost 179.56p, min_improvement_swap 0.1p
2026-08-16 09:40:53.221214: Swap charge optimisation finished metric 164.16p, cost 179.56p
2026-08-16 09:40:53.407538: Pruned 2 dead plan slot(s) in 10 trial(s), nominal metric 158.96p -> 158.96p, plan now metric 164.33p, cost 179.56p, cycle 19.09kWh, import 10.96kWh
2026-08-16 09:40:53.419866: Raw charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 09:40:53.420629: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:40:53.421051: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:40:53.421390: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 63%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:40:53.460895: Previous plan best metric is 164.31 (cost 179.71) and new plan best metric is 164.16 (cost 179.56)
2026-08-16 09:40:53.461313: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:40:53.461536: Plan valid is now true after recompute was False
2026-08-16 09:40:53.489048: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 394.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 20.94kWh, PV 0.0kWh
2026-08-16 09:40:53.730213: Battery has 9.83 hours left - now at 7.2kWh
2026-08-16 09:40:53.838685: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 417.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:40:54.005857: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 264.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.68kWh, PV 0.0kWh
2026-08-16 09:40:54.299093: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 229.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.94kWh, PV 0.0kWh
2026-08-16 09:40:54.299195: Saving plan best values to HA entities
2026-08-16 09:40:54.629594: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:40:54.639162: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:40:54.648499: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.22kWh, house 1.71kWh, export 0.0kWh, metric 229.69p, metric10 264.38p
2026-08-16 09:40:54.784549: Marginal costs baseline metric (no standing charge): 179.7078
2026-08-16 09:40:55.233975: Marginal energy costs matrix computed: min=15.24 max=34.74
2026-08-16 09:40:55.356050: Rate array import [{'start': 580, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 580, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:40:55.356983: - Your estimated bill for today is £1.37 and tomorrow is £7.35
2026-08-16 09:40:55.357043: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:40:55.357071: - The battery is currently at 45% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 09:40:55.357097: - For the next 48 hours there will be no solar generation.
2026-08-16 09:40:55.357214: - You will run out of battery in 22 hours.
2026-08-16 09:40:55.357262: - Your next charge slot will be in 1 and a quarter hours where import rates will be free (0.0p).
2026-08-16 09:40:55.357338: 
2026-08-16 09:40:55.407665: Plan calculation took 48.59 seconds
2026-08-16 09:40:55.408040: Inverter 0: Type SK Sunsynk
2026-08-16 09:40:55.408183: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:40:55.408487: Reserve min: 7%, battery_min: 7%
2026-08-16 09:40:55.408631: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:40:55.409096: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 241W, current battery voltage 51.2V, grid power -54W, load power 290W, PV Power 0W
2026-08-16 09:40:55.409374: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:40:55.409550: Inverter 0 scheduled charge enable is False
2026-08-16 09:40:55.409608: Inverter 0 charge windows currently []
2026-08-16 09:40:55.409733: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:40:55.409980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:40:55.410039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:40:55.410147: Inverter 0 scheduled discharge enable is False
2026-08-16 09:40:55.410407: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:40:55.410472: Inverter 0 discharge windows currently []
2026-08-16 09:40:55.410557: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:40:55.410591: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:40:55.410617: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:40:55.511744: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:40:55.512077: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:40:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:40:55.512256: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:40:55.512685: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:40:55.512903: No export window planned
2026-08-16 09:40:55.513221: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:40:55.513292: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:40:55.513681: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:40:55.514050: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:40:55.514208: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:40:55.514360: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:40:55.514534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.514598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.514736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.514794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.514920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.515892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.516009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:40:55.516064: Inverter 0 count register writes 0
2026-08-16 09:40:55.576213: Total inverter register writes now 826
2026-08-16 09:40:55.636360: Info: Completed run status Demand
2026-08-16 09:40:55.649593: Info: record_status Demand
2026-08-16 09:40:55.667689: Saved current settings to /config/predbat_config.json
2026-08-16 09:40:55.667998: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:41:17.050644: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-16 09:41:26.853609: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:41:26.854081: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:41:26.854250: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:41:26.854603: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:41:26.854758: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:41:26.854907: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:41:26.855064: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:41:49.103834: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-16 09:41:49.104929: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.6%)
2026-08-16 09:41:49.105162: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.6%)
2026-08-16 09:41:58.752089: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=-0.0006 kWh (-0.7%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 09:41:58.762488: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0026 kWh
2026-08-16 09:41:58.866284: ML Predictor: Curriculum pass 4/5: window=57.0 days (1368 hours of data)
2026-08-16 09:41:58.867349: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 09:41:59.555860: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 09:42:04.684014: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 09:42:04.738737: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0589 std=0.0470) pv(mean=0.0000 std=0.0100) temp(mean=19.5525 std=4.4514) import_rate(mean=26.1504 std=2.9036) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1895 std=0.5252)
2026-08-16 09:42:04.827684: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 09:42:04.845331: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 09:42:04.908090: ML Predictor: Baseline (pre-finetune) val_mae=0.0060 kWh val_bias=+0.0012 kWh
2026-08-16 09:42:35.704618: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0056 kWh val_bias=-0.0013 kWh (-1.6%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 09:43:10.431957: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0107 val_mae=0.0063 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0046 kWh ema_combined=0.0038 kWh
2026-08-16 09:43:27.454328: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:43:27.454809: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:43:27.455011: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:43:27.455398: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:43:27.455563: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:43:27.455698: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:43:27.455825: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:43:42.959627: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0104 val_mae=0.0048 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0031 kWh ema_combined=0.0036 kWh
2026-08-16 09:44:16.179806: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0097 val_mae=0.0051 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0037 kWh ema_combined=0.0036 kWh
2026-08-16 09:44:47.288422: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0089 val_mae=0.0060 kWh val_bias=+0.0026 kWh (+3.2%) combined=0.0057 kWh ema_combined=0.0042 kWh
2026-08-16 09:45:00.887709: --------------- PredBat - update at 2026-08-16 09:45:00+01:00 with clock skew 0 minutes, minutes now 585
2026-08-16 09:45:00.888701: Saved current settings to /config/predbat_config.json
2026-08-16 09:45:00.888845: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 09:45:00.888930: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:45:00.889127: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:45:00.935574: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:45:00.935853: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:45:00.936264: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:45:00.937415: Cars 1 charging from battery False 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-16 09:45:00.937745: Predbat mode is set to Control charge & discharge
2026-08-16 09:45:01.309513: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:45:01.310557: Using load_power data to fill gaps in load_today data
2026-08-16 09:45:02.590390: Processing 721 30-minute periods for power integration
2026-08-16 09:45:02.813111: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:45:02.813275: Car charging hold False, threshold 6.0kWh
2026-08-16 09:45:02.813336: Current data so far today: load 5.3kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:45:02.838990: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:45:02.839666: Standing charge is set to 49.98p
2026-08-16 09:45:02.951221: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:45:02.951452: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:45:02.951773: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 09:45:02.952338: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 09:45:02.955414: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:45:03.136411: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:45:03.206129: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:45:03.206599: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:45:03.256395: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:45:03.256629: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:45:03.257977: High export rate found rates in range 99p to -99p
2026-08-16 09:45:03.353078: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:45:03.353239: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:45:03.380056: Battery level now 7.2kWh, -1hr ago 7.52kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.01p, rate_forward 1.0p
2026-08-16 09:45:03.380510: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.67p, import 0.67p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:45:03.472378: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:45:03.472654: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:45:03.588093: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:45:03.650273: Today's load divergence 96.74%, in-day adjustment 88.63%, damping 0.95x, yesterday 82.97% today 96.91% blend 59.38%
2026-08-16 09:45:03.650443: Today's predicted so far 5.74kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.74kWh forecast extra.
2026-08-16 09:45:03.650485: Today's actual load so far 5.25kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:45:03.741304: Inverter 0: Type SK Sunsynk
2026-08-16 09:45:03.741423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:45:03.741653: Reserve min: 7%, battery_min: 7%
2026-08-16 09:45:03.741742: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:45:03.742105: Inverter 0 SoC: 7.13kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 303W, current battery voltage 51.2V, grid power -55W, load power 354W, PV Power 0W
2026-08-16 09:45:03.742310: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:45:03.742424: Inverter 0 scheduled charge enable is False
2026-08-16 09:45:03.742471: Inverter 0 charge windows currently []
2026-08-16 09:45:03.742506: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:45:03.742650: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:45:03.742695: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:45:03.742740: Inverter 0 scheduled discharge enable is False
2026-08-16 09:45:03.742904: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:45:03.742950: Inverter 0 discharge windows currently []
2026-08-16 09:45:03.742979: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:45:03.743020: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:45:03.743046: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:45:03.890301: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:45:03.890474: Plan was last updated on 2026-08-16 09:40:00+01:00 and is now 5.0 minutes old
2026-08-16 09:45:03.890864: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:45:03.890926: Best export window [  ]
2026-08-16 09:45:03.892235: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:45:03.909484: Load divergence over 8.0 hours mean 356.05W, min 244.8W, max 864.0W, std dev 94.57W, divergence 13.28%
2026-08-16 09:45:03.959986: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:45:03.960130: LoadML is_calculating True
2026-08-16 09:45:03.960159: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:45:04.001440: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 396.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:30:00, load 21.01kWh, PV 0.0kWh
2026-08-16 09:45:04.249410: Battery has 9.75 hours left - now at 7.13kWh
2026-08-16 09:45:04.375328: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 419.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:00:00, load 21.75kWh, PV 0.0kWh
2026-08-16 09:45:04.507377: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 274.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.75kWh, PV 0.0kWh
2026-08-16 09:45:04.713728: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 241.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 21.01kWh, PV 0.0kWh
2026-08-16 09:45:04.713864: Saving plan best values to HA entities
2026-08-16 09:45:05.132847: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 09:45:05.156939: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:45:05.182929: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.73kWh, house 1.71kWh, export 0.0kWh, metric 241.61p, metric10 274.81p
2026-08-16 09:45:05.370845: Marginal costs baseline metric (no standing charge): 191.631
2026-08-16 09:45:05.961537: Marginal energy costs matrix computed: min=17.25 max=34.79
2026-08-16 09:45:06.107577: Rate array import [{'start': 585, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 585, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:45:06.108261: - Your estimated bill for today is £1.38 and tomorrow is £7.37
2026-08-16 09:45:06.121029: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:45:06.121244: - The battery is currently at 45% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 09:45:06.121364: - For the next 48 hours there will be no solar generation.
2026-08-16 09:45:06.121472: - You will run out of battery in 21 hours.
2026-08-16 09:45:06.121568: - Your next charge slot will be in 1 and a quarter hours where import rates will be free (0.0p).
2026-08-16 09:45:06.121658: 
2026-08-16 09:45:06.170036: Plan calculation took 2.28 seconds
2026-08-16 09:45:06.173527: No high rate period found
2026-08-16 09:45:06.269994: Import threshold used for optimisation was 23.43p
2026-08-16 09:45:06.379295: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 09:45:06.404153: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:45:06.404471: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:45:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:45:06.404688: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:45:06.405026: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:45:06.408870: No export window planned
2026-08-16 09:45:06.409267: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:45:06.409415: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:45:06.409718: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:45:06.410025: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:45:06.410183: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:45:06.410334: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:45:06.410519: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.410655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.410782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.410931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411198: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.411976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.412112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.412233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:45:06.412346: Inverter 0 count register writes 0
2026-08-16 09:45:06.437385: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:45:06.446881: Total inverter register writes now 826
2026-08-16 09:45:06.524874: Info: Completed run status Demand
2026-08-16 09:45:06.536499: Info: record_status Demand
2026-08-16 09:45:06.562911: Saved current settings to /config/predbat_config.json
2026-08-16 09:45:06.563351: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:45:19.896055: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0096 val_mae=0.0052 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0026 kWh ema_combined=0.0037 kWh
2026-08-16 09:45:41.723738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:45:41.724210: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:45:41.724391: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:45:41.724721: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:45:41.724880: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:45:41.725058: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:45:41.725200: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:45:53.579925: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0124 val_mae=0.0053 kWh val_bias=-0.0028 kWh (-3.5%) combined=0.0045 kWh ema_combined=0.0040 kWh
2026-08-16 09:46:21.727930: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0110 val_mae=0.0045 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0025 kWh ema_combined=0.0035 kWh
2026-08-16 09:46:52.736632: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0107 val_mae=0.0047 kWh val_bias=+0.0020 kWh (+2.4%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 09:47:24.688003: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0031 kWh
2026-08-16 09:47:42.280393: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:47:42.280941: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:47:42.281167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:47:42.281590: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:47:42.281755: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:47:42.281916: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:47:42.282128: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:47:55.572069: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0086 val_mae=0.0037 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-16 09:48:26.775581: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0036 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-16 09:48:57.600230: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0073 val_mae=0.0034 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-16 09:49:29.230626: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0073 val_mae=0.0033 kWh val_bias=-0.0014 kWh (-1.7%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 09:49:56.881635: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:49:56.881924: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:49:56.882114: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:49:56.882398: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:49:56.882554: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:49:56.882656: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:49:56.882699: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:50:00.089347: --------------- PredBat - update at 2026-08-16 09:50:00+01:00 with clock skew 0 minutes, minutes now 590
2026-08-16 09:50:00.092615: Saved current settings to /config/predbat_config.json
2026-08-16 09:50:00.092751: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 09:50:00.093089: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:50:00.093318: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:50:00.159258: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:50:00.159637: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:50:00.160043: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:50:00.160872: Cars 1 charging from battery False 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-16 09:50:00.161291: Predbat mode is set to Control charge & discharge
2026-08-16 09:50:00.577670: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:50:00.577991: Using load_power data to fill gaps in load_today data
2026-08-16 09:50:01.939767: Processing 721 30-minute periods for power integration
2026-08-16 09:50:02.212616: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:50:02.212909: Car charging hold False, threshold 6.0kWh
2026-08-16 09:50:02.213151: Current data so far today: load 5.2kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:50:02.228938: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:50:02.229552: Standing charge is set to 49.98p
2026-08-16 09:50:02.370428: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:50:02.370711: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:50:02.371136: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 09:50:02.371744: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 09:50:02.375772: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:50:02.473348: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:50:02.533875: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:50:02.534616: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:50:02.575769: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:50:02.575968: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:50:02.577329: High export rate found rates in range 99p to -99p
2026-08-16 09:50:02.678114: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:50:02.678406: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:50:02.696371: Battery level now 7.13kWh, -1hr ago 7.42kWh, at midnight 12.21kWh, battery value change in the last hour -0.3p, change today -5.08p, rate_forward 1.0p
2026-08-16 09:50:02.696912: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.56p, import 0.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:50:02.817037: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:50:02.817203: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:50:02.934874: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:50:02.963875: Today's load divergence 95.97%, in-day adjustment 88.38%, damping 0.95x, yesterday 82.97% today 96.17% blend 59.03%
2026-08-16 09:50:02.964072: Today's predicted so far 5.77kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.77kWh forecast extra.
2026-08-16 09:50:02.964107: Today's actual load so far 5.17kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:50:03.016640: Inverter 0: Type SK Sunsynk
2026-08-16 09:50:03.016750: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:50:03.017023: Reserve min: 7%, battery_min: 7%
2026-08-16 09:50:03.017161: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:50:03.017503: Inverter 0 SoC: 7.13kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 253W, current battery voltage 51.2V, grid power -55W, load power 303W, PV Power 0W
2026-08-16 09:50:03.017690: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:50:03.017826: Inverter 0 scheduled charge enable is False
2026-08-16 09:50:03.017873: Inverter 0 charge windows currently []
2026-08-16 09:50:03.017916: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:50:03.018073: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:50:03.018122: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:50:03.018167: Inverter 0 scheduled discharge enable is False
2026-08-16 09:50:03.018330: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:50:03.018376: Inverter 0 discharge windows currently []
2026-08-16 09:50:03.018405: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:50:03.018438: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:50:03.018470: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:50:03.108334: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:50:03.108521: Plan was last updated on 2026-08-16 09:40:00+01:00 and is now 10.0 minutes old
2026-08-16 09:50:03.108776: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:50:03.108818: Best export window [  ]
2026-08-16 09:50:03.109655: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:50:03.112869: Load divergence over 8.0 hours mean 357.63W, min 244.2W, max 891.6W, std dev 90.74W, divergence 12.69%
2026-08-16 09:50:03.132765: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:50:03.133093: LoadML is_calculating True
2026-08-16 09:50:03.133140: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:50:03.210411: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 395.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.89kWh, PV 0.0kWh
2026-08-16 09:50:03.528457: Battery has 9.75 hours left - now at 7.13kWh
2026-08-16 09:50:03.586931: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 418.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.63kWh, PV 0.0kWh
2026-08-16 09:50:03.591270: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0066 val_mae=0.0032 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-16 09:50:03.758819: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 282.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.63kWh, PV 0.0kWh
2026-08-16 09:50:03.943222: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.89kWh, PV 0.0kWh
2026-08-16 09:50:03.943723: Saving plan best values to HA entities
2026-08-16 09:50:04.349276: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:50:04.356930: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:50:04.379843: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.15kWh, house 1.68kWh, export 0.0kWh, metric 251.49p, metric10 282.76p
2026-08-16 09:50:04.512196: Marginal costs baseline metric (no standing charge): 201.5034
2026-08-16 09:50:04.894349: Marginal energy costs matrix computed: min=18.96 max=34.85
2026-08-16 09:50:04.997997: Rate array import [{'start': 590, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 590, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:50:04.998676: - Your estimated bill for today is £1.37 and tomorrow is £7.36
2026-08-16 09:50:04.998836: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:50:04.998960: - The battery is currently at 45% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 09:50:04.999137: - For the next 48 hours there will be no solar generation.
2026-08-16 09:50:04.999267: - You will run out of battery in 21 hours.
2026-08-16 09:50:04.999306: - Your next charge slot will be in 1 and a quarter hours where import rates will be free (0.0p).
2026-08-16 09:50:04.999371: 
2026-08-16 09:50:05.068503: Plan calculation took 1.96 seconds
2026-08-16 09:50:05.071967: No high rate period found
2026-08-16 09:50:05.176856: Import threshold used for optimisation was 23.43p
2026-08-16 09:50:05.292879: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 09:50:05.304629: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 09:50:05.304817: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:50:05.304908: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:50:05.305193: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:50:05.305291: No export window planned
2026-08-16 09:50:05.305419: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:50:05.305462: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:50:05.305751: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:50:05.306007: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:50:05.306141: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:50:05.306267: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:50:05.306418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306872: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.306992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:50:05.307820: Inverter 0 count register writes 0
2026-08-16 09:50:05.334787: 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-16 09:50:05.335156: Recompute is saving previous plan...
2026-08-16 09:50:05.340450: Best charge window [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 0%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 0% ]
2026-08-16 09:50:05.340619: Best export window [  ]
2026-08-16 09:50:05.342032: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:50:05.347978: Load divergence over 8.0 hours mean 357.63W, min 244.2W, max 891.6W, std dev 90.74W, divergence 12.69%
2026-08-16 09:50:05.378064: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:50:05.378471: LoadML is_calculating True
2026-08-16 09:50:05.378574: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:50:05.396419: 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(0.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-16 09:50:05.398995: Optimise levels pass started at 2026-08-16 09:50:05
2026-08-16 09:50:05.399172: Optimise all windows, total charge 94 export 1
2026-08-16 09:50:09.251129: >> Region optimisation pass width 960 gives best_metric 546.34p, best_cost 558.36p, best_cycle 37.59kWh, best_import 27.36kWh
2026-08-16 09:50:09.991832: >> Region optimisation pass width 480 gives best_metric 546.34p, best_cost 558.36p, best_cycle 37.59kWh, best_import 27.36kWh
2026-08-16 09:50:11.516641: >> Region optimisation pass width 240 gives best_metric 546.34p, best_cost 558.36p, best_cycle 37.59kWh, best_import 27.36kWh
2026-08-16 09:50:19.636888: >> Region optimisation pass width 120 gives best_metric 544.96p, best_cost 557.21p, best_cycle 38.96kWh, best_import 27.45kWh
2026-08-16 09:50:19.637368: Calculated end_record as 08-17 11:00:00 based on best_price 22.83p, next_charge_start 08-16 11:00:00, max_windows 50
2026-08-16 09:50:19.638303: Optimise levels pass ended at 2026-08-16 09:50:19, duration 14.2 seconds tried 343 combinations
2026-08-16 09:50:19.638467: Set best_price_charge_level 24.6p, best_price_export_level 0p, best_price_charge 22.83p, best_cost_export 0p, best_metric 544.96p, best_keep 0kWh, best_cycle 38.96kWh, best_carbon 0kg, best_import 27.45kWh
2026-08-16 09:50:19.669002: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.83p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 0, 12.25, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 09:50:54.416422: Tweak plan optimisation started metric 161.96p, cost 177.29p
2026-08-16 09:50:57.077312: Tweak optimisation finished metric 161.91p, cost 177.32p, metric_keep 0kWh, cycle 18.11kWh, carbon 0kg, import 10.84kWh, changed 8 window(s)
2026-08-16 09:50:57.180255: Swap charge optimisation started metric 161.91p, cost 177.32p, min_improvement_swap 0.1p
2026-08-16 09:51:04.589524: Swap charge optimisation finished metric 161.91p, cost 177.32p
2026-08-16 09:51:04.918911: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 156.72p -> 156.72p, plan now metric 162.03p, cost 177.32p, cycle 18.11kWh, import 10.84kWh
2026-08-16 09:51:04.933835: Raw charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 09:51:04.934581: Unclipped charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:51:04.935143: Unfiltered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:51:04.935409: Filtered charge windows [ 16-08 09:30:00 - 16-08 10:00:00 @ 24.06p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 09:51:04.978310: Previous plan best metric is 162.65 (cost 178.08) and new plan best metric is 161.91 (cost 177.32)
2026-08-16 09:51:04.978642: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 09:51:04.978786: Plan valid is now true after recompute was False
2026-08-16 09:51:05.006653: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 392.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.75kWh, PV 0.0kWh
2026-08-16 09:51:05.211538: Battery has 9.75 hours left - now at 7.13kWh
2026-08-16 09:51:05.328301: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 414.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.5kWh, PV 0.0kWh
2026-08-16 09:51:05.514858: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 262.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.5kWh, PV 0.0kWh
2026-08-16 09:51:05.634813: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.75kWh, PV 0.0kWh
2026-08-16 09:51:05.635116: Saving plan best values to HA entities
2026-08-16 09:51:05.962989: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:51:05.971638: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:51:05.979333: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.19kWh, house 1.68kWh, export 0.0kWh, metric 228.07p, metric10 262.55p
2026-08-16 09:51:06.144842: Marginal costs baseline metric (no standing charge): 178.082
2026-08-16 09:51:06.754410: Marginal energy costs matrix computed: min=18.96 max=34.85
2026-08-16 09:51:06.910629: Rate array import [{'start': 590, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 590, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:51:06.911333: - Your estimated bill for today is £1.37 and tomorrow is £7.36
2026-08-16 09:51:06.911388: - Import rates are expensive (24.1p - 25.5p) for the next 1 and a quarter hours and then free (0.0p) for the next 1 hour.
2026-08-16 09:51:06.911411: - The battery is currently at 45% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 09:51:06.911429: - For the next 48 hours there will be no solar generation.
2026-08-16 09:51:06.911447: - You will run out of battery in 21 hours.
2026-08-16 09:51:06.911465: - Your next charge slot will be in 1 and a quarter hours where import rates will be free (0.0p).
2026-08-16 09:51:06.911482: 
2026-08-16 09:51:06.993345: Plan calculation took 61.66 seconds
2026-08-16 09:51:06.995359: Inverter 0: Type SK Sunsynk
2026-08-16 09:51:06.995440: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:51:06.996770: Reserve min: 7%, battery_min: 7%
2026-08-16 09:51:06.996902: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:51:06.998239: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 250W, current battery voltage 51.2V, grid power -55W, load power 304W, PV Power 0W
2026-08-16 09:51:07.003047: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:51:07.003348: Inverter 0 scheduled charge enable is False
2026-08-16 09:51:07.003492: Inverter 0 charge windows currently []
2026-08-16 09:51:07.004188: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:51:07.004822: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:51:07.005031: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:51:07.005327: Inverter 0 scheduled discharge enable is False
2026-08-16 09:51:07.005770: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:51:07.012865: Inverter 0 discharge windows currently []
2026-08-16 09:51:07.013125: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:51:07.013324: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:51:07.013425: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:51:07.191876: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 09:51:07.192082: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:50:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:51:07.192165: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:51:07.192450: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:51:07.196537: No export window planned
2026-08-16 09:51:07.196836: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:51:07.196898: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:51:07.197354: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:51:07.197629: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:51:07.197736: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:51:07.197863: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:51:07.198018: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.198095: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.198200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200250: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.200861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.201030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.201119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.201158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:51:07.201234: Inverter 0 count register writes 0
2026-08-16 09:51:07.246316: Total inverter register writes now 826
2026-08-16 09:51:07.330093: Info: Completed run status Demand
2026-08-16 09:51:07.347411: Info: record_status Demand
2026-08-16 09:51:07.355586: Saved current settings to /config/predbat_config.json
2026-08-16 09:51:07.355887: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:51:10.833422: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0032 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-16 09:51:41.605019: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:51:41.605323: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:51:41.605377: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:51:41.605543: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:51:41.605592: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:51:41.605620: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:51:41.605645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:51:43.050156: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 09:52:14.907491: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0031 kWh val_bias=-0.0013 kWh (-1.6%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-16 09:52:47.452200: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0060 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 09:53:18.925691: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0031 kWh val_bias=-0.0012 kWh (-1.5%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-16 09:53:42.050825: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:53:42.051141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:53:42.051197: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:53:42.051368: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:53:42.051417: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:53:42.051445: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:53:42.051472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:53:50.095450: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 09:54:20.396488: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 09:54:51.343502: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0055 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 09:55:00.430245: --------------- PredBat - update at 2026-08-16 09:55:00+01:00 with clock skew 0 minutes, minutes now 595
2026-08-16 09:55:00.431080: Saved current settings to /config/predbat_config.json
2026-08-16 09:55:00.431202: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 09:55:00.431277: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 09:55:00.431349: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 09:55:00.463054: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 09:55:00.463213: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 09:55:00.463394: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 09:55:00.463921: Cars 1 charging from battery False 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-16 09:55:00.464711: Predbat mode is set to Control charge & discharge
2026-08-16 09:55:00.864328: Found 21602 load_today datapoints going back 28 days
2026-08-16 09:55:00.864518: Using load_power data to fill gaps in load_today data
2026-08-16 09:55:02.347784: Processing 721 30-minute periods for power integration
2026-08-16 09:55:02.558175: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 09:55:02.558441: Car charging hold False, threshold 6.0kWh
2026-08-16 09:55:02.558518: Current data so far today: load 5.2kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 09:55:02.581372: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 09:55:02.582039: Standing charge is set to 49.98p
2026-08-16 09:55:02.690129: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 09:55:02.690281: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 09:55:02.690518: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 09:55:02.691111: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 09:55:02.695254: Loaded 47 datapoints of futurerate analysis
2026-08-16 09:55:02.869011: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 09:55:02.937118: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 09:55:02.937545: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 09:55:02.985687: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 09:55:02.985979: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 09:55:02.987542: High export rate found rates in range 99p to -99p
2026-08-16 09:55:03.121734: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 09:55:03.121901: Car 0 charging is not planned as it is not plugged in
2026-08-16 09:55:03.139439: Battery level now 7.13kWh, -1hr ago 7.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.23p, change today -5.08p, rate_forward 1.0p
2026-08-16 09:55:03.139971: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 0.45p, import 0.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 09:55:03.226833: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 09:55:03.227118: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 09:55:03.461250: Using weighted-bucket historical load forecast over 14 days
2026-08-16 09:55:03.487642: Today's load divergence 95.77%, in-day adjustment 88.35%, damping 0.95x, yesterday 82.97% today 95.98% blend 58.68%
2026-08-16 09:55:03.488132: Today's predicted so far 5.81kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.81kWh forecast extra.
2026-08-16 09:55:03.488196: Today's actual load so far 5.17kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 09:55:03.537841: Inverter 0: Type SK Sunsynk
2026-08-16 09:55:03.538097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 09:55:03.538409: Reserve min: 7%, battery_min: 7%
2026-08-16 09:55:03.538577: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 09:55:03.538985: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 286W, current battery voltage 51.2V, grid power -55W, load power 341W, PV Power 0W
2026-08-16 09:55:03.539257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:55:03.539479: Inverter 0 scheduled charge enable is False
2026-08-16 09:55:03.539589: Inverter 0 charge windows currently []
2026-08-16 09:55:03.539703: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 09:55:03.539928: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:55:03.540058: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:55:03.540197: Inverter 0 scheduled discharge enable is False
2026-08-16 09:55:03.540464: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:55:03.540577: Inverter 0 discharge windows currently []
2026-08-16 09:55:03.540684: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:55:03.540781: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:55:03.540882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:55:03.652852: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 09:55:03.653032: Plan was last updated on 2026-08-16 09:50:00+01:00 and is now 5.0 minutes old
2026-08-16 09:55:03.653389: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 09:55:03.653447: Best export window [  ]
2026-08-16 09:55:03.654874: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 09:55:03.659638: Load divergence over 8.0 hours mean 359.12W, min 240.6W, max 912.0W, std dev 89.8W, divergence 12.5%
2026-08-16 09:55:03.693034: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 09:55:03.693187: LoadML is_calculating True
2026-08-16 09:55:03.693222: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 09:55:03.774633: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 394.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.77kWh, PV 0.0kWh
2026-08-16 09:55:04.042016: Battery has 9.67 hours left - now at 7.04kWh
2026-08-16 09:55:04.151261: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 417.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:05:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:55:04.340296: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 273.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.51kWh, PV 0.0kWh
2026-08-16 09:55:04.497157: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 240.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.77kWh, PV 0.0kWh
2026-08-16 09:55:04.507505: Saving plan best values to HA entities
2026-08-16 09:55:04.798446: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 09:55:04.810990: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 09:55:04.819359: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.71kWh, house 1.67kWh, export 0.0kWh, metric 240.71p, metric10 273.57p
2026-08-16 09:55:04.944277: Marginal costs baseline metric (no standing charge): 190.7259
2026-08-16 09:55:05.434084: Marginal energy costs matrix computed: min=20.83 max=34.91
2026-08-16 09:55:05.549768: Rate array import [{'start': 595, 'end': 660, 'rate': 'expensive', 'range': '(24.1p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2105, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 595, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 09:55:05.550873: - Your estimated bill for today is £1.38 and tomorrow is £7.37
2026-08-16 09:55:05.550956: - Import rates are expensive (24.1p - 25.5p) for the next 1 hour and then free (0.0p) for the next 1 hour.
2026-08-16 09:55:05.551184: - The battery is currently at 44% and is in eco mode for the next 1 hour.
2026-08-16 09:55:05.551237: - For the next 48 hours there will be no solar generation.
2026-08-16 09:55:05.551296: - You will run out of battery in 21 hours.
2026-08-16 09:55:05.552516: - Your next charge slot will be in 1 hour where import rates will be free (0.0p).
2026-08-16 09:55:05.552581: 
2026-08-16 09:55:05.597584: Plan calculation took 1.94 seconds
2026-08-16 09:55:05.602402: No high rate period found
2026-08-16 09:55:05.738583: Import threshold used for optimisation was 23.43p
2026-08-16 09:55:05.850001: Low import rate windows [0: 08-16 09:30:00 - 08-16 10:00:00 @ 24.06, 1: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 2: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 3: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 4: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 5: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 6: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 7: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 8: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 9: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 10: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 11: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 12: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 13: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 14: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 15: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 16: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 17: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 09:55:05.860756: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 09:55:05.861096: Inverter 0 disabled charge window while waiting for schedule (now 08-16 09:55:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 09:55:05.861200: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:55:05.861398: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:55:05.861476: No export window planned
2026-08-16 09:55:05.861581: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 09:55:05.861616: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 09:55:05.861749: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 09:55:05.861898: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 09:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 09:55:05.861946: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 09:55:05.861997: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 09:55:05.862107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862553: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 09:55:05.862575: Inverter 0 count register writes 0
2026-08-16 09:55:05.888403: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 09:55:05.897750: Total inverter register writes now 826
2026-08-16 09:55:05.955808: Info: Completed run status Demand
2026-08-16 09:55:05.967284: Info: record_status Demand
2026-08-16 09:55:05.978854: Saved current settings to /config/predbat_config.json
2026-08-16 09:55:05.979177: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 09:55:28.169619: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0027 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-16 09:55:42.161963: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:55:42.162278: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:55:42.162334: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:55:42.162503: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:55:42.162551: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:55:42.162578: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:55:42.162612: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:56:02.016787: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 09:56:35.927493: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 09:57:08.167508: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 09:57:40.204553: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 09:57:56.675488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:57:56.675780: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:57:56.675920: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:57:56.676211: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:57:56.676270: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:57:56.676457: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:57:56.676586: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 09:58:13.027921: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 09:58:44.857991: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-16 09:58:44.863782: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.6%)
2026-08-16 09:58:44.864064: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.6%)
2026-08-16 09:58:48.309551: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0005 kWh (-0.7%) [drift vs teacher-forced: +0.0000 kWh]
2026-08-16 09:58:48.315543: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-16 09:58:48.315811: ML Predictor: Curriculum final pass 5/5: full dataset (57.8 days)
2026-08-16 09:58:48.315945: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 09:58:49.153515: ML Predictor: Creating dataset with 1388 hours of training data, 48 hours validation
2026-08-16 09:58:54.161237: ML Predictor: Created 16369 training samples, 576 validation samples
2026-08-16 09:58:54.220820: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0468) load(mean=0.0590 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.5683 std=4.4622) import_rate(mean=26.1589 std=2.9106) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1904 std=0.5256)
2026-08-16 09:58:54.313206: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 09:58:54.326930: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 09:58:54.375107: ML Predictor: Baseline (pre-finetune) val_mae=0.0039 kWh val_bias=-0.0001 kWh
2026-08-16 09:59:25.054984: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0081 val_mae=0.0043 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-16 09:59:55.179370: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0115 val_mae=0.0040 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-16 09:59:57.402266: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 09:59:57.402715: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 09:59:57.402864: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 09:59:57.403210: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 09:59:57.403348: Note: Inverter does not support discharge freeze - disabled
2026-08-16 09:59:57.403494: Note: Inverter does not support charge freeze - disabled
2026-08-16 09:59:57.403612: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:00:00.613741: --------------- PredBat - update at 2026-08-16 10:00:00+01:00 with clock skew 0 minutes, minutes now 600
2026-08-16 10:00:00.615255: Saved current settings to /config/predbat_config.json
2026-08-16 10:00:00.615628: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 10:00:00.615824: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:00:00.616066: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:00:00.671974: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:00:00.672332: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:00:00.672597: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:00:00.673423: Cars 1 charging from battery False 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-16 10:00:00.673654: Predbat mode is set to Control charge & discharge
2026-08-16 10:00:01.153695: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:00:01.153929: Using load_power data to fill gaps in load_today data
2026-08-16 10:00:01.882693: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 10:00:02.117562: Warn: TemperatureAPI: Failed to fetch data, status code 503
2026-08-16 10:00:02.118324: Warn: TemperatureAPI: Retrying in 1 seconds...
2026-08-16 10:00:02.769486: Processing 721 30-minute periods for power integration
2026-08-16 10:00:03.156929: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:00:03.158262: Car charging hold False, threshold 6.0kWh
2026-08-16 10:00:03.158414: Current data so far today: load 5.33kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:00:03.170905: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:00:03.171328: Standing charge is set to 49.98p
2026-08-16 10:00:03.206752: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:00:03.206843: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:00:03.207024: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 10:00:03.207419: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 10:00:03.210030: Loaded 47 datapoints of futurerate analysis
2026-08-16 10:00:03.294687: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78']
2026-08-16 10:00:03.314106: Warn: TemperatureAPI: Failed to fetch data, status code 503
2026-08-16 10:00:03.314212: Warn: TemperatureAPI: Retrying in 2 seconds...
2026-08-16 10:00:03.479953: Rate min forward looking: now 0.0p at end of forecast 21.41p
2026-08-16 10:00:03.485424: Import rates: min 0.0p, max 45.28p, average 28.23p
2026-08-16 10:00:03.678967: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:00:03.679133: Rate thresholds (for charge/export) are import 44.78p (0.0p), export -0.1p (0.0p)
2026-08-16 10:00:03.680832: High export rate found rates in range 99p to -99p
2026-08-16 10:00:03.879280: Low Import rate found rates in range 0.0p to 44.34p
2026-08-16 10:00:03.879603: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:00:03.898305: Battery level now 7.04kWh, -1hr ago 7.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:00:03.898698: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.34p, import 0.34p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:00:03.994274: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:00:03.994582: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:00:04.085197: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:00:04.112581: Today's load divergence 96.08%, in-day adjustment 88.51%, damping 0.95x, yesterday 82.97% today 96.28% blend 58.33%
2026-08-16 10:00:04.112843: Today's predicted so far 5.93kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 5.93kWh forecast extra.
2026-08-16 10:00:04.113015: Today's actual load so far 5.34kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:00:04.174132: Inverter 0: Type SK Sunsynk
2026-08-16 10:00:04.174379: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:00:04.174726: Reserve min: 7%, battery_min: 7%
2026-08-16 10:00:04.174962: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:00:04.175419: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 246W, current battery voltage 51.2V, grid power -55W, load power 302W, PV Power 0W
2026-08-16 10:00:04.175748: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:00:04.175994: Inverter 0 scheduled charge enable is False
2026-08-16 10:00:04.176178: Inverter 0 charge windows currently []
2026-08-16 10:00:04.176315: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 10:00:04.176631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:00:04.176771: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:00:04.176997: Inverter 0 scheduled discharge enable is False
2026-08-16 10:00:04.177319: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:00:04.177461: Inverter 0 discharge windows currently []
2026-08-16 10:00:04.177613: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:00:04.177755: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:00:04.177894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:00:04.286101: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:00:04.286284: Plan was last updated on 2026-08-16 09:50:00+01:00 and is now 10.0 minutes old
2026-08-16 10:00:04.286704: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 10:00:04.286794: Best export window [  ]
2026-08-16 10:00:04.287691: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:00:04.290972: Load divergence over 8.0 hours mean 359.16W, min 223.8W, max 1097.4W, std dev 100.57W, divergence 14.0%
2026-08-16 10:00:04.313421: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:00:04.313774: LoadML is_calculating True
2026-08-16 10:00:04.313844: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 10:00:04.393680: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 395.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.95kWh, PV 0.0kWh
2026-08-16 10:00:04.689135: Battery has 9.58 hours left - now at 7.04kWh
2026-08-16 10:00:04.779727: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 418.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.69kWh, PV 0.0kWh
2026-08-16 10:00:04.931466: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 283.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.69kWh, PV 0.0kWh
2026-08-16 10:00:05.038788: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 251.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.95kWh, PV 0.0kWh
2026-08-16 10:00:05.039774: Saving plan best values to HA entities
2026-08-16 10:00:05.503920: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 10:00:05.517281: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 10:00:05.526681: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.15kWh, house 1.7kWh, export 0.0kWh, metric 251.94p, metric10 283.14p
2026-08-16 10:00:05.628004: Marginal costs baseline metric (no standing charge): 201.9611
2026-08-16 10:00:06.152479: Marginal energy costs matrix computed: min=21.53 max=34.98
2026-08-16 10:00:06.352728: Rate array import [{'start': 600, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2110, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 600, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:00:06.353569: - Your estimated bill for today is £1.36 and tomorrow is £7.35
2026-08-16 10:00:06.353746: - Import rates are expensive (24.9p - 25.5p) for the next 1 hour and then free (0.0p) for the next 1 hour.
2026-08-16 10:00:06.353847: - The battery is currently at 44% and is in eco mode for the next 1 hour.
2026-08-16 10:00:06.353924: - For the next 48 hours there will be no solar generation.
2026-08-16 10:00:06.353997: - You will run out of battery in 21 hours.
2026-08-16 10:00:06.354068: - Your next charge slot will be in 1 hour where import rates will be free (0.0p).
2026-08-16 10:00:06.354171: 
2026-08-16 10:00:06.453534: Plan calculation took 2.17 seconds
2026-08-16 10:00:06.457487: No high rate period found
2026-08-16 10:00:06.637734: Import threshold used for optimisation was 23.43p
2026-08-16 10:00:06.660462: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 10:00:06.830701: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.02, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 27.8, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 28.18, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 27.38, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 26.7, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 26.31, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 25.79, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 25.86, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 26.13, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 25.86, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 26.27, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 26.14, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 27.03, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 26.28, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 25.68, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 26.1, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 24.28, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 24.94, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 24.06, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 24.39, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 24.66, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 24.06, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 25.5, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 24.94, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 24.25, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 23.49, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 23.43, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 22.33, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 22.76, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 22.3, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 21.41, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 21.65, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 22.95, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 22.83, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 36.84, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 37.54, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 41.79, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 43.7, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 44.34, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 34.79, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 34.76, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 35.62, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 35.3, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.89, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 35.71, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 32.0, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.02, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 27.8, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 28.18, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 27.38, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 26.7, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 26.31, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 25.79, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 25.86, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 26.13, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 25.86, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 26.27, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 26.14, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 27.03, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 26.28, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 25.68, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 26.1, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 24.28, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 24.94, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 24.06, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 24.39, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 24.66, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 24.06]
2026-08-16 10:00:06.859257: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 10:00:06.859446: Inverter 0 disabled charge window while waiting for schedule (now 08-16 10:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 10:00:06.859537: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:00:06.859776: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:00:06.859868: No export window planned
2026-08-16 10:00:06.859991: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:00:06.860037: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:00:06.860231: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:00:06.860431: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 10:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 10:00:06.860639: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 10:00:06.860838: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 10:00:06.861147: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861258: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861408: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:00:06.861793: Inverter 0 count register writes 0
2026-08-16 10:00:06.899608: 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-16 10:00:06.899998: Recompute is saving previous plan...
2026-08-16 10:00:06.906484: Best charge window [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 0% ]
2026-08-16 10:00:06.923445: Best export window [  ]
2026-08-16 10:00:06.925343: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:00:06.956233: Load divergence over 8.0 hours mean 359.16W, min 223.8W, max 1097.4W, std dev 100.57W, divergence 14.0%
2026-08-16 10:00:07.028162: Calculating data from yesterday for savings calculation
2026-08-16 10:00:07.070522: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 10:00:07.259948: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 10:00:07.289174: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 10:00:07.311924: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 10:00:07.360393: Yesterday: Predbat disabled was £3.46 (adjusted £3.25) vs £5.77 (adjusted £3.52), saving £-2.31 (adjusted £-0.27) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 20.6kWh
2026-08-16 10:00:07.479570: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 10:00:07.479756: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £3.52), saving £-1.93 (adjusted £0.31) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 10:00:07.500708: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:00:07.500864: LoadML is_calculating True
2026-08-16 10:00:07.500897: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 10:00:07.514962: 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(0.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-16 10:00:07.516634: Optimise levels pass started at 2026-08-16 10:00:07
2026-08-16 10:00:07.516682: Optimise all windows, total charge 94 export 1
2026-08-16 10:00:14.467311: >> Region optimisation pass width 960 gives best_metric 548.73p, best_cost 560.91p, best_cycle 42.15kWh, best_import 27.83kWh
2026-08-16 10:00:15.635894: >> Region optimisation pass width 480 gives best_metric 548.73p, best_cost 560.91p, best_cycle 42.15kWh, best_import 27.83kWh
2026-08-16 10:00:18.950518: >> Region optimisation pass width 240 gives best_metric 548.33p, best_cost 560.58p, best_cycle 43.49kWh, best_import 27.92kWh
2026-08-16 10:00:23.996779: >> Region optimisation pass width 120 gives best_metric 548.33p, best_cost 560.58p, best_cycle 43.49kWh, best_import 27.92kWh
2026-08-16 10:00:24.009602: Calculated end_record as 08-17 11:00:00 based on best_price 22.76p, next_charge_start 08-16 11:00:00, max_windows 49
2026-08-16 10:00:24.017063: Optimise levels pass ended at 2026-08-16 10:00:24, duration 16.5 seconds tried 343 combinations
2026-08-16 10:00:24.017259: Set best_price_charge_level 24.4p, best_price_export_level 0p, best_price_charge 22.76p, best_cost_export 0p, best_metric 548.33p, best_keep 0kWh, best_cycle 43.49kWh, best_carbon 0kg, best_import 27.92kWh
2026-08-16 10:00:24.077533: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 22.76p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 16.0, 16.0, 0, 0, 0, 0, 12.25, 12.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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:00:57.288187: Tweak plan optimisation started metric 162.32p, cost 177.67p
2026-08-16 10:00:58.377511: Tweak optimisation finished metric 162.32p, cost 177.67p, metric_keep 0kWh, cycle 18.06kWh, carbon 0kg, import 10.85kWh, changed 8 window(s)
2026-08-16 10:00:58.407879: Swap charge optimisation started metric 162.32p, cost 177.67p, min_improvement_swap 0.1p
2026-08-16 10:00:59.225293: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0135 val_mae=0.0045 kWh val_bias=-0.0015 kWh (-2.5%) combined=0.0034 kWh ema_combined=0.0027 kWh
2026-08-16 10:01:04.713393: Swap charge optimisation finished metric 162.32p, cost 177.67p
2026-08-16 10:01:04.911094: Raw charge windows [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 77%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 77%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.02p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 27.8p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 28.18p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 27.38p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 26.7p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 26.31p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 25.79p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 25.86p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 26.13p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 25.86p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 26.27p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 26.14p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 27.03p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 26.28p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 25.68p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 26.1p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 24.28p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 24.94p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 24.06p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 24.39p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 24.66p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 24.06p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 25.5p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 24.94p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 24.25p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 23.49p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 23.43p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 22.33p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 22.76p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 22.3p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 21.41p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 21.65p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 22.95p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 22.83p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 36.84p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 37.54p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 41.79p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 43.7p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 44.34p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 34.79p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 34.76p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 35.62p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.3p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.89p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 35.71p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 32.0p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.02p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 27.8p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 28.18p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 27.38p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 26.7p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 26.31p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.79p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 25.86p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 26.13p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 25.86p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 26.27p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 26.14p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 27.03p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.28p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 25.68p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 26.1p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 24.28p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 24.94p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 24.06p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 24.39p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 24.66p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 24.06p 100% ] reserve 1.12
2026-08-16 10:01:04.911779: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 10:01:04.912196: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 10:01:04.912559: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 14:00:00 @ 22.56p 66%, 16-08 14:00:00 - 16-08 15:00:00 @ 21.53p 77%, 16-08 15:00:00 - 16-08 16:00:00 @ 22.89p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 10:00:00 @ 24.31p 100% ] reserve 1.12
2026-08-16 10:01:05.008564: Previous plan best metric is 163.05 (cost 178.49) and new plan best metric is 162.32 (cost 177.67)
2026-08-16 10:01:05.008836: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 10:01:05.008988: Plan valid is now true after recompute was False
2026-08-16 10:01:05.097525: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 392.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:35:00, load 20.81kWh, PV 0.0kWh
2026-08-16 10:01:05.356173: Battery has 9.58 hours left - now at 7.04kWh
2026-08-16 10:01:05.474552: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 414.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:10:00, load 21.55kWh, PV 0.0kWh
2026-08-16 10:01:05.633817: predict best10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 262.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.55kWh, PV 0.0kWh
2026-08-16 10:01:05.823254: predict best end_record 08-17 11:00:00, final soc 1.12kWh, metric 228.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.81kWh, PV 0.0kWh
2026-08-16 10:01:05.823589: Saving plan best values to HA entities
2026-08-16 10:01:06.078046: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 10:01:06.092315: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 10:01:06.118496: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.18kWh, house 1.7kWh, export 0.0kWh, metric 228.47p, metric10 262.88p
2026-08-16 10:01:06.287346: Marginal costs baseline metric (no standing charge): 178.4887
2026-08-16 10:01:06.688446: Marginal energy costs matrix computed: min=21.53 max=34.98
2026-08-16 10:01:06.813357: Rate array import [{'start': 600, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1380, 'rate': 'very expensive', 'range': '(32.0p - 45.3p)'}, {'start': 1380, 'end': 2100, 'rate': 'expensive', 'range': '(24.1p - 30.0p)'}] export [{'start': 600, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:01:06.814407: - Your estimated bill for today is £1.36 and tomorrow is £7.35
2026-08-16 10:01:06.814616: - Import rates are expensive (24.9p - 25.5p) for the next 1 hour and then free (0.0p) for the next 1 hour.
2026-08-16 10:01:06.814747: - The battery is currently at 44% and is in eco mode for the next 1 hour.
2026-08-16 10:01:06.814882: - For the next 48 hours there will be no solar generation.
2026-08-16 10:01:06.815000: - You will run out of battery in 21 hours.
2026-08-16 10:01:06.815320: - Your next charge slot will be in 1 hour where import rates will be free (0.0p).
2026-08-16 10:01:06.815467: 
2026-08-16 10:01:06.865541: Plan calculation took 59.97 seconds
2026-08-16 10:01:06.866051: Inverter 0: Type SK Sunsynk
2026-08-16 10:01:06.866213: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:01:06.866589: Reserve min: 7%, battery_min: 7%
2026-08-16 10:01:06.866787: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:01:06.867274: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 244W, current battery voltage 51.2V, grid power -55W, load power 299W, PV Power 0W
2026-08-16 10:01:06.867587: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:01:06.867850: Inverter 0 scheduled charge enable is False
2026-08-16 10:01:06.867981: Inverter 0 charge windows currently []
2026-08-16 10:01:06.868153: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 10:01:06.868423: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:01:06.868583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:01:06.868735: Inverter 0 scheduled discharge enable is False
2026-08-16 10:01:06.869100: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:01:06.869246: Inverter 0 discharge windows currently []
2026-08-16 10:01:06.869389: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:01:06.869508: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:01:06.869780: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:01:07.075999: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 10:01:07.076358: Inverter 0 disabled charge window while waiting for schedule (now 08-16 10:00:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 10:01:07.076563: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:01:07.077037: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:01:07.077261: No export window planned
2026-08-16 10:01:07.077499: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:01:07.077694: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:01:07.078019: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:01:07.078354: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 10:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 10:01:07.078508: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 10:01:07.078694: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 10:01:07.078888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079076: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.079883: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.080096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.080233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.080377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.080499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.080640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.081005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.081187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:01:07.081303: Inverter 0 count register writes 0
2026-08-16 10:01:07.153417: Total inverter register writes now 826
2026-08-16 10:01:07.221082: Info: Completed run status Demand
2026-08-16 10:01:07.233777: Info: record_status Demand
2026-08-16 10:01:07.246550: Saved current settings to /config/predbat_config.json
2026-08-16 10:01:07.246890: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:01:36.464050: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0118 val_mae=0.0042 kWh val_bias=+0.0019 kWh (+3.0%) combined=0.0039 kWh ema_combined=0.0031 kWh
2026-08-16 10:01:42.441676: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:01:42.441922: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:01:42.441968: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:01:42.442168: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:01:42.442219: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:01:42.442241: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:01:42.442348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:02:06.207626: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0111 val_mae=0.0051 kWh val_bias=-0.0014 kWh (-2.2%) combined=0.0028 kWh ema_combined=0.0030 kWh
2026-08-16 10:02:39.338888: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0095 val_mae=0.0050 kWh val_bias=-0.0011 kWh (-1.7%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-16 10:03:10.587805: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0093 val_mae=0.0041 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 10:03:43.241642: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0094 val_mae=0.0041 kWh val_bias=-0.0013 kWh (-2.1%) combined=0.0028 kWh ema_combined=0.0027 kWh
2026-08-16 10:03:56.914533: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:03:56.914979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:03:56.915131: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:03:56.915392: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:03:56.915522: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:03:56.915629: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:03:56.915723: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:04:16.727546: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.5%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-16 10:04:47.640056: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0094 val_mae=0.0036 kWh val_bias=-0.0008 kWh (-1.3%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-16 10:04:47.640324: ML Predictor: Early stopping at epoch 10
2026-08-16 10:04:47.642613: ML Predictor: Restored best weights from epoch with val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 10:04:47.642920: ML Predictor: Training complete, final val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 10:04:52.788983: ML Predictor: AR rollout over holdout: ar_mae=0.0047 kWh ar_bias=-0.0002 kWh (-0.4%) [drift vs teacher-forced: +0.0008 kWh]
2026-08-16 10:04:52.794723: ML Predictor: Curriculum training complete, final val_mae=0.0039 kWh
2026-08-16 10:04:52.807424: ML Component: Training successful, val_mae=0.0039 kWh
2026-08-16 10:04:52.992511: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 10:04:52.997058: ML Component: Generating predictions load data age 57.0 days, 16658 data points
2026-08-16 10:04:53.118572: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0329 max_dow {0: 0.10211874996256083, 1: 0.10889687554407865, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.09651111107096075, 6: 0.10629687632601709}
2026-08-16 10:05:00.209437: --------------- PredBat - update at 2026-08-16 10:05:00+01:00 with clock skew 0 minutes, minutes now 605
2026-08-16 10:05:00.210941: Saved current settings to /config/predbat_config.json
2026-08-16 10:05:00.211306: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 10:05:00.211553: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:05:00.211796: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:05:00.264306: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:05:00.267017: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:05:00.267430: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:05:00.268248: Cars 1 charging from battery False 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-16 10:05:00.268567: Predbat mode is set to Control charge & discharge
2026-08-16 10:05:00.865029: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:05:00.865492: Using load_power data to fill gaps in load_today data
2026-08-16 10:05:02.280302: ML Component: Generated 576 predictions (total 29.87 kWh over 48h)
2026-08-16 10:05:02.356741: ML Component: Prediction cycle completed
2026-08-16 10:05:02.741082: ML Component: Saved 16658 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 10:05:02.800127: Processing 721 30-minute periods for power integration
2026-08-16 10:05:02.984020: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:05:02.984159: Car charging hold False, threshold 6.0kWh
2026-08-16 10:05:02.984209: Current data so far today: load 5.35kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:05:02.999886: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:05:03.000292: Standing charge is set to 49.98p
2026-08-16 10:05:03.026728: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:05:03.026888: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:05:03.303937: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:05:03.409340: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:05:03.474468: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:05:03.475250: Import rates: min 0.0p, max 49.86p, average 30.54p
2026-08-16 10:05:03.521400: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:05:03.521554: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:05:03.522913: High export rate found rates in range 99p to -99p
2026-08-16 10:05:03.616494: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:05:03.616635: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:05:03.634493: Battery level now 7.04kWh, -1hr ago 7.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:05:03.634911: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.22p, import 0.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:05:03.699742: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:05:03.699927: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:05:03.788225: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:05:03.822888: Today's load divergence 95.98%, in-day adjustment 88.52%, damping 0.95x, yesterday 82.97% today 96.18% blend 57.99%
2026-08-16 10:05:03.823009: Today's predicted so far 6.04kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.04kWh forecast extra.
2026-08-16 10:05:03.823042: Today's actual load so far 5.43kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:05:03.862337: Inverter 0: Type SK Sunsynk
2026-08-16 10:05:03.862441: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:05:03.862733: Reserve min: 7%, battery_min: 7%
2026-08-16 10:05:03.862865: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:05:03.863257: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 327W, current battery voltage 51.2V, grid power -54W, load power 382W, PV Power 0W
2026-08-16 10:05:03.863459: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:05:03.863566: Inverter 0 scheduled charge enable is False
2026-08-16 10:05:03.863602: Inverter 0 charge windows currently []
2026-08-16 10:05:03.863637: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 10:05:03.863797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:05:03.863951: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:05:03.864036: Inverter 0 scheduled discharge enable is False
2026-08-16 10:05:03.864250: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:05:03.864307: Inverter 0 discharge windows currently []
2026-08-16 10:05:03.864348: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:05:03.864384: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:05:03.864431: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:05:03.954275: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:05:03.954451: Plan was last updated on 2026-08-16 10:00:00+01:00 and is now 5.0 minutes old
2026-08-16 10:05:03.954823: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 10:05:03.954901: Best export window [  ]
2026-08-16 10:05:03.955954: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:05:03.960336: Load divergence over 8.0 hours mean 359.26W, min 213.6W, max 1026.0W, std dev 99.21W, divergence 13.81%
2026-08-16 10:05:03.989757: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:05:03.989923: LoadML is_calculating False
2026-08-16 10:05:03.990051: Creating pool of 12 processes to match your CPU count
2026-08-16 10:05:04.141791: predict base end_record 08-17 11:05:00, final soc 1.12kWh, metric 415.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:40:00, load 20.87kWh, PV 0.0kWh
2026-08-16 10:05:04.319031: Battery has 9.58 hours left - now at 7.04kWh
2026-08-16 10:05:04.377813: predict base10 end_record 08-17 11:05:00, final soc 1.12kWh, metric 439.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:15:00, load 21.61kWh, PV 0.0kWh
2026-08-16 10:05:04.475809: predict best10 end_record 08-17 11:05:00, final soc 1.44kWh, metric 285.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.61kWh, PV 0.0kWh
2026-08-16 10:05:04.574627: predict best end_record 08-17 11:05:00, final soc 1.51kWh, metric 248.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 20.87kWh, PV 0.0kWh
2026-08-16 10:05:04.574734: Saving plan best values to HA entities
2026-08-16 10:05:04.800917: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 10:05:04.810401: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:05:04.818564: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.63kWh, house 1.71kWh, export 0.0kWh, metric 248.52p, metric10 285.14p
2026-08-16 10:05:04.918775: Marginal costs baseline metric (no standing charge): 198.5353
2026-08-16 10:05:05.201475: Marginal energy costs matrix computed: min=21.66 max=36.03
2026-08-16 10:05:05.301181: Rate array import [{'start': 605, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 605, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:05:05.301867: - Your estimated bill for today is £1.36 and tomorrow is £8.23
2026-08-16 10:05:05.301917: - Import rates are expensive (24.9p - 25.5p) for the next 55 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:05:05.301941: - The battery is currently at 44% and is in eco mode for the next 55 minutes.
2026-08-16 10:05:05.301959: - For the next 48 hours there will be no solar generation.
2026-08-16 10:05:05.301981: - You will run out of battery in 21 hours.
2026-08-16 10:05:05.302003: - Your next charge slot will be in 55 minutes where import rates will be free (0.0p).
2026-08-16 10:05:05.302031: 
2026-08-16 10:05:05.363785: Plan calculation took 1.41 seconds
2026-08-16 10:05:05.368902: No high rate period found
2026-08-16 10:05:05.428183: Import threshold used for optimisation was 23.43p
2026-08-16 10:05:05.490479: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 95: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:05:05.499427: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 10:05:05.499555: Inverter 0 disabled charge window while waiting for schedule (now 08-16 10:05:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 10:05:05.499657: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:05:05.499894: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:05:05.499975: No export window planned
2026-08-16 10:05:05.500069: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:05:05.500100: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:05:05.500211: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:05:05.500371: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 10:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 10:05:05.500425: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 10:05:05.500485: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 10:05:05.500574: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500634: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500659: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500680: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:05:05.500932: Inverter 0 count register writes 0
2026-08-16 10:05:05.517009: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:05:05.521814: Total inverter register writes now 826
2026-08-16 10:05:05.567063: Info: Completed run status Demand
2026-08-16 10:05:05.575228: Info: record_status Demand
2026-08-16 10:05:05.584024: Saved current settings to /config/predbat_config.json
2026-08-16 10:05:05.584334: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:05:41.704463: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:05:41.704743: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:05:41.704792: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:05:41.705107: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:05:41.705180: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:05:41.705203: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:05:41.705221: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:06:50.209723: Info: HAHistory: Pruning history data started.
2026-08-16 10:06:50.213602: Info: HAHistory: Pruning history data completed.
2026-08-16 10:07:41.931948: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:07:41.932192: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:07:41.932226: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:07:41.932396: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:07:41.932446: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:07:41.932467: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:07:41.932484: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:09:42.165511: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:09:42.165794: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:09:42.165831: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:09:42.166037: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:09:42.166092: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:09:42.166116: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:09:42.166134: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:10:00.295984: --------------- PredBat - update at 2026-08-16 10:10:00+01:00 with clock skew 0 minutes, minutes now 610
2026-08-16 10:10:00.297045: Saved current settings to /config/predbat_config.json
2026-08-16 10:10:00.297207: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 10:10:00.297320: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:10:00.297478: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:10:00.318515: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:10:00.318644: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:10:00.318852: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:10:00.319492: Cars 1 charging from battery False 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-16 10:10:00.319623: Predbat mode is set to Control charge & discharge
2026-08-16 10:10:00.502199: Found 21602 load_today datapoints going back 27 days
2026-08-16 10:10:00.502389: Using load_power data to fill gaps in load_today data
2026-08-16 10:10:01.365812: Processing 721 30-minute periods for power integration
2026-08-16 10:10:01.553797: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:10:01.553944: Car charging hold False, threshold 6.0kWh
2026-08-16 10:10:01.554014: Current data so far today: load 5.3kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:10:01.568796: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:10:01.569296: Standing charge is set to 49.98p
2026-08-16 10:10:01.617778: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:10:01.617906: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:10:01.618260: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 10:10:01.618821: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 10:10:01.625275: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:10:01.721279: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:10:01.784090: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:10:01.784479: Import rates: min 0.0p, max 49.86p, average 30.54p
2026-08-16 10:10:01.829042: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:10:01.829178: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:10:01.830545: High export rate found rates in range 99p to -99p
2026-08-16 10:10:01.922194: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:10:01.922355: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:10:01.935661: Battery level now 7.04kWh, -1hr ago 7.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.32p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:10:01.936095: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.11p, import 0.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:10:01.994271: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:10:01.994438: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:10:02.076709: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:10:02.103653: Today's load divergence 95.36%, in-day adjustment 88.32%, damping 0.95x, yesterday 82.97% today 95.6% blend 57.64%
2026-08-16 10:10:02.103776: Today's predicted so far 6.04kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.04kWh forecast extra.
2026-08-16 10:10:02.103830: Today's actual load so far 5.35kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:10:02.141998: Inverter 0: Type SK Sunsynk
2026-08-16 10:10:02.142114: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:10:02.142328: Reserve min: 7%, battery_min: 7%
2026-08-16 10:10:02.142424: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:10:02.142755: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-16 10:10:02.142922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:10:02.143016: Inverter 0 scheduled charge enable is False
2026-08-16 10:10:02.143045: Inverter 0 charge windows currently []
2026-08-16 10:10:02.143078: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 10:10:02.143282: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:10:02.143348: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:10:02.143394: Inverter 0 scheduled discharge enable is False
2026-08-16 10:10:02.143550: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:10:02.143590: Inverter 0 discharge windows currently []
2026-08-16 10:10:02.143614: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:10:02.143636: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:10:02.143653: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:10:02.202144: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:10:02.202257: Plan was last updated on 2026-08-16 10:00:00+01:00 and is now 10.0 minutes old
2026-08-16 10:10:02.202535: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 63%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 75%, 17-08 11:00:00 - 17-08 18:30:00 @ 42.52p 100%, 17-08 19:00:00 - 18-08 01:30:00 @ 27.44p 100% ]
2026-08-16 10:10:02.202579: Best export window [  ]
2026-08-16 10:10:02.203417: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:10:02.206620: Load divergence over 8.0 hours mean 358.64W, min 222.6W, max 708.0W, std dev 83.28W, divergence 11.61%
2026-08-16 10:10:02.225246: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:10:02.225381: LoadML is_calculating False
2026-08-16 10:10:02.225447: Creating pool of 12 processes to match your CPU count
2026-08-16 10:10:02.344888: predict base end_record 08-17 11:10:00, final soc 1.12kWh, metric 414.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.8kWh, PV 0.0kWh
2026-08-16 10:10:02.469069: Battery has 9.67 hours left - now at 7.04kWh
2026-08-16 10:10:02.511899: predict base10 end_record 08-17 11:10:00, final soc 1.12kWh, metric 438.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 21.54kWh, PV 0.0kWh
2026-08-16 10:10:02.593882: predict best10 end_record 08-17 11:10:00, final soc 1.77kWh, metric 294.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 21.54kWh, PV 0.0kWh
2026-08-16 10:10:02.689911: predict best end_record 08-17 11:10:00, final soc 1.9kWh, metric 259.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 20.8kWh, PV 0.0kWh
2026-08-16 10:10:02.690010: Saving plan best values to HA entities
2026-08-16 10:10:02.848705: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 10:10:02.855264: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:10:02.861719: Best charging limit SoC's [16.0, 10.0, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.04kWh, house 1.69kWh, export 0.0kWh, metric 259.74p, metric10 294.33p
2026-08-16 10:10:02.937921: Marginal costs baseline metric (no standing charge): 209.7553
2026-08-16 10:10:03.206746: Marginal energy costs matrix computed: min=19.64 max=35.65
2026-08-16 10:10:03.286803: Rate array import [{'start': 610, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 610, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:10:03.287434: - Your estimated bill for today is £1.34 and tomorrow is £8.24
2026-08-16 10:10:03.287482: - Import rates are expensive (24.9p - 25.5p) for the next 50 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:10:03.287505: - The battery is currently at 44% and is in eco mode for the next 50 minutes.
2026-08-16 10:10:03.287523: - For the next 48 hours there will be no solar generation.
2026-08-16 10:10:03.287545: - You will run out of battery in 21 hours.
2026-08-16 10:10:03.287563: - Your next charge slot will be in 50 minutes where import rates will be free (0.0p).
2026-08-16 10:10:03.287580: 
2026-08-16 10:10:03.343724: Plan calculation took 1.14 seconds
2026-08-16 10:10:03.347101: No high rate period found
2026-08-16 10:10:03.397917: Import threshold used for optimisation was 23.43p
2026-08-16 10:10:03.450443: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 95: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:10:03.457627: Inverter 0 Charge window will be: 2026-08-16 11:00:00+01:00 - 2026-08-16 12:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 10:10:03.457783: Inverter 0 disabled charge window while waiting for schedule (now 08-16 10:10:00 target set_window_minutes 30 charge start time 08-16 11:00:00) original inverter start time 08-18 00:00:00
2026-08-16 10:10:03.457907: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:10:03.458179: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:10:03.458273: No export window planned
2026-08-16 10:10:03.458385: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:10:03.458421: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:10:03.458560: Adjust demand (idle) time computed is 00:00:00-23:59:00
2026-08-16 10:10:03.458772: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 10:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 10:10:03.458834: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 10:10:03.458921: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 10:10:03.459023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459098: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459123: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:03.459476: Inverter 0 count register writes 0
2026-08-16 10:10:03.475752: 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-16 10:10:03.475940: Recompute is saving previous plan...
2026-08-16 10:10:03.479187: Best charge window [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 0%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 0%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 0%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 0%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 0%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 0%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 0% ]
2026-08-16 10:10:03.479273: Best export window [  ]
2026-08-16 10:10:03.480088: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:10:03.483248: Load divergence over 8.0 hours mean 358.64W, min 222.6W, max 708.0W, std dev 83.28W, divergence 11.61%
2026-08-16 10:10:03.501336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:10:03.501459: LoadML is_calculating False
2026-08-16 10:10:03.501526: Creating pool of 12 processes to match your CPU count
2026-08-16 10:10:03.595007: 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(0.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-16 10:10:03.597314: Optimise levels pass started at 2026-08-16 10:10:03
2026-08-16 10:10:03.597393: Optimise all windows, total charge 95 export 1
2026-08-16 10:10:04.550434: >> Region optimisation pass width 960 gives best_metric 611.42p, best_cost 628.01p, best_cycle 40.69kWh, best_import 27.71kWh
2026-08-16 10:10:04.916619: >> Region optimisation pass width 480 gives best_metric 611.42p, best_cost 628.01p, best_cycle 40.69kWh, best_import 27.71kWh
2026-08-16 10:10:05.657022: >> Region optimisation pass width 240 gives best_metric 607.92p, best_cost 624.42p, best_cycle 40.69kWh, best_import 27.71kWh
2026-08-16 10:10:06.993710: >> Region optimisation pass width 120 gives best_metric 607.92p, best_cost 624.42p, best_cycle 40.69kWh, best_import 27.71kWh
2026-08-16 10:10:06.994108: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 50
2026-08-16 10:10:06.994210: Optimise levels pass ended at 2026-08-16 10:10:06, duration 3.4 seconds tried 344 combinations
2026-08-16 10:10:06.994290: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 607.92p, best_keep 0kWh, best_cycle 40.69kWh, best_carbon 0kg, best_import 27.71kWh
2026-08-16 10:10:07.014907: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:10:10.877622: Tweak plan optimisation started metric 155.69p, cost 225.68p
2026-08-16 10:10:11.135234: Tweak optimisation finished metric 155.69p, cost 225.68p, metric_keep 0kWh, cycle 21.55kWh, carbon 0kg, import 13.17kWh, changed 8 window(s)
2026-08-16 10:10:11.157492: Swap charge optimisation started metric 155.69p, cost 225.68p, min_improvement_swap 0.1p
2026-08-16 10:10:14.921543: Swap charge optimisation finished metric 155.69p, cost 225.68p
2026-08-16 10:10:15.053841: Raw charge windows [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 44%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100% ] reserve 1.12
2026-08-16 10:10:15.054587: Unclipped charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:10:15.054970: Unfiltered charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:10:15.055262: Filtered charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:10:15.092306: Previous plan best metric is 163.62 (cost 183.47) and new plan best metric is 155.69 (cost 225.68)
2026-08-16 10:10:15.092577: New plan metric is significantly better from previous plan, using new plan
2026-08-16 10:10:15.092623: Plan valid is now true after recompute was False
2026-08-16 10:10:15.120476: predict base end_record 08-17 11:00:00, final soc 1.12kWh, metric 411.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:50:00, load 20.67kWh, PV 0.0kWh
2026-08-16 10:10:15.232837: Battery has 9.67 hours left - now at 7.04kWh
2026-08-16 10:10:15.281116: predict base10 end_record 08-17 11:00:00, final soc 1.12kWh, metric 434.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 19:25:00, load 21.4kWh, PV 0.0kWh
2026-08-16 10:10:15.368071: predict best10 end_record 08-17 11:00:00, final soc 2.7kWh, metric 298.37p, metric_keep 0kWh, min_soc 2.7kWh @ 08-17 10:55:00, load 21.4kWh, PV 0.0kWh
2026-08-16 10:10:15.456610: predict best end_record 08-17 11:00:00, final soc 3.3kWh, metric 275.66p, metric_keep 0kWh, min_soc 3.3kWh @ 08-17 10:55:00, load 20.67kWh, PV 0.0kWh
2026-08-16 10:10:15.457250: Saving plan best values to HA entities
2026-08-16 10:10:15.628894: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:10:15.635286: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:10:15.641477: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.17kWh, house 0.0kWh, export 0.0kWh, metric 275.66p, metric10 298.37p
2026-08-16 10:10:15.721509: Marginal costs baseline metric (no standing charge): 225.6792
2026-08-16 10:10:15.997863: Marginal energy costs matrix computed: min=0.0 max=28.67
2026-08-16 10:10:16.074877: Rate array import [{'start': 610, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 610, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:10:16.075335: - Your estimated bill for today is £2.26 and tomorrow is £7.11
2026-08-16 10:10:16.075428: - Import rates are expensive (24.9p - 25.5p) for the next 50 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:10:16.075451: - The battery is currently at 44% and is charging to 44% for the next 50 minutes.
2026-08-16 10:10:16.075483: - For the next 48 hours there will be no solar generation.
2026-08-16 10:10:16.075525: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:10:16.075583: 
2026-08-16 10:10:16.136892: Plan calculation took 12.66 seconds
2026-08-16 10:10:16.137621: Inverter 0: Type SK Sunsynk
2026-08-16 10:10:16.137708: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:10:16.138026: Reserve min: 7%, battery_min: 7%
2026-08-16 10:10:16.138137: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:10:16.138620: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 267W, current battery voltage 51.2V, grid power -54W, load power 322W, PV Power 0W
2026-08-16 10:10:16.138968: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 10:10:16.139114: Inverter 0 scheduled charge enable is False
2026-08-16 10:10:16.139177: Inverter 0 charge windows currently []
2026-08-16 10:10:16.139224: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 10:10:16.139389: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:10:16.139434: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:10:16.139475: Inverter 0 scheduled discharge enable is False
2026-08-16 10:10:16.139627: Inverter 0 idle time is 08-16 00:00:00-08-16 23:59:00
2026-08-16 10:10:16.139666: Inverter 0 discharge windows currently []
2026-08-16 10:10:16.139710: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:10:16.139730: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:10:16.139748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:10:16.211510: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:10:16.211729: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:10:16.211848: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:10:16.212055: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:10:16.212293: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:10:16.212405: Inverter 0 set new demand (idle) start time to 16:00:00 was 00:00:00
2026-08-16 10:10:21.219108: Inverter 0 write_and_poll_value: Wrote 16:00:00 to idle_start_time, successfully now 16:00:00
2026-08-16 10:10:26.227691: Inverter 0 write_and_poll_value: Wrote 10:00:00 to charge_start_time, successfully now 10:00:00
2026-08-16 10:10:31.235455: Inverter 0 write_and_poll_value: Wrote 16:00:00 to charge_end_time, successfully now 16:00:00
2026-08-16 10:10:31.235597: Inverter 0 Updated start and end charge window to 10:00:00 - 16:00:00 (old 00:00:00 - 00:00:00)
2026-08-16 10:10:36.244979: Inverter 0 Wrote scheduled_charge_enable to True successfully and got on
2026-08-16 10:10:36.245125: Inverter 0 Turning on scheduled charge
2026-08-16 10:10:36.245223: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-16 10:10:41.252916: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-16 10:10:46.329686: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-16 10:10:46.329945: No export window planned
2026-08-16 10:10:46.330155: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:10:46.330199: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:10:46.330433: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:10:46.330554: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:10:46.330620: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:10:46.330731: Inverter 0 Current charge limit is 7% and new target is 44%
2026-08-16 10:10:51.378176: Inverter 0 write_and_poll_value: Wrote 44 to charge_limit, successfully now 44.0
2026-08-16 10:10:51.378465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378682: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.378781: 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-16 10:10:51.421156: 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-16 10:10:51.425438: 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-16 10:10:51.467231: 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-16 10:10:51.511149: 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-16 10:10:51.557012: 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-16 10:10:51.599958: 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-16 10:10:51.644541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644756: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:10:51.644830: Inverter 0 count register writes 2
2026-08-16 10:10:51.672776: Total inverter register writes now 828
2026-08-16 10:10:51.711245: Info: Completed run status Hold charging
2026-08-16 10:10:52.030472: Info: record_status Hold charging target 44%-44%
2026-08-16 10:10:52.037954: Saved current settings to /config/predbat_config.json
2026-08-16 10:10:52.038326: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:11:27.149433: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:11:27.149855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:11:27.149921: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:11:27.150180: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:11:27.150236: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:11:27.150279: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:11:27.150313: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:13:27.378666: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:13:27.378944: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:13:27.379014: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:13:27.379157: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:13:27.379213: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:13:27.379234: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:13:27.379251: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:15:00.570921: --------------- PredBat - update at 2026-08-16 10:15:00+01:00 with clock skew 0 minutes, minutes now 615
2026-08-16 10:15:00.571738: Saved current settings to /config/predbat_config.json
2026-08-16 10:15:00.571901: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 10:15:00.572037: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:15:00.572139: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:15:00.591433: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:15:00.591567: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:15:00.591839: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:15:00.592435: Cars 1 charging from battery False 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-16 10:15:00.592563: Predbat mode is set to Control charge & discharge
2026-08-16 10:15:00.787870: Found 21602 load_today datapoints going back 27 days
2026-08-16 10:15:00.788019: Using load_power data to fill gaps in load_today data
2026-08-16 10:15:01.652121: Processing 721 30-minute periods for power integration
2026-08-16 10:15:01.844092: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:15:01.844238: Car charging hold False, threshold 6.0kWh
2026-08-16 10:15:01.844286: Current data so far today: load 5.3kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:15:01.860609: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:15:01.861369: Standing charge is set to 49.98p
2026-08-16 10:15:01.911873: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:15:01.911983: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:15:01.912213: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 10:15:01.912703: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 10:15:01.919343: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:15:01.996439: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:15:02.045434: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:15:02.045845: Import rates: min 0.0p, max 49.86p, average 30.55p
2026-08-16 10:15:02.080397: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:15:02.080538: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:15:02.081642: High export rate found rates in range 99p to -99p
2026-08-16 10:15:02.155319: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:15:02.155448: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:15:02.168938: Battery level now 7.04kWh, -1hr ago 7.26kWh, at midnight 12.21kWh, battery value change in the last hour -0.22p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:15:02.169442: 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-16 10:15:02.222453: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:15:02.222671: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:15:02.305102: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:15:02.333494: Today's load divergence 94.82%, in-day adjustment 88.14%, damping 0.95x, yesterday 82.97% today 95.08% blend 57.29%
2026-08-16 10:15:02.333614: Today's predicted so far 6.05kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.05kWh forecast extra.
2026-08-16 10:15:02.333655: Today's actual load so far 5.28kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:15:02.373427: Inverter 0: Type SK Sunsynk
2026-08-16 10:15:02.373520: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:15:02.373716: Reserve min: 7%, battery_min: 7%
2026-08-16 10:15:02.373789: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:15:02.374053: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 4W, current battery voltage 51.2V, grid power -377W, load power 377W, PV Power 0W
2026-08-16 10:15:02.374210: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:15:02.374298: Inverter 0 scheduled charge enable is True
2026-08-16 10:15:02.374345: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:15:02.374433: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:15:02.374554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:15:02.374608: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:15:02.374647: Inverter 0 scheduled discharge enable is False
2026-08-16 10:15:02.374767: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:15:02.374804: Inverter 0 discharge windows currently []
2026-08-16 10:15:02.374826: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:15:02.374845: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:15:02.374862: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:15:02.435713: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:15:02.435870: Plan was last updated on 2026-08-16 10:10:00+01:00 and is now 5.0 minutes old
2026-08-16 10:15:02.436204: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:15:02.436250: Best export window [  ]
2026-08-16 10:15:02.437124: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:15:02.440246: Load divergence over 8.0 hours mean 358.91W, min 244.8W, max 864.0W, std dev 99.32W, divergence 13.84%
2026-08-16 10:15:02.460359: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:15:02.460524: LoadML is_calculating False
2026-08-16 10:15:02.460616: Creating pool of 12 processes to match your CPU count
2026-08-16 10:15:02.589371: predict base end_record 08-17 11:05:00, final soc 6.16kWh, metric 508.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.68kWh, PV 0.0kWh
2026-08-16 10:15:02.723661: Battery has 14.25 hours left - now at 7.04kWh
2026-08-16 10:15:02.763414: predict base10 end_record 08-17 11:05:00, final soc 5.32kWh, metric 502.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:20:00, load 21.41kWh, PV 0.0kWh
2026-08-16 10:15:02.833119: predict best10 end_record 08-17 11:05:00, final soc 3.04kWh, metric 308.31p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.41kWh, PV 0.0kWh
2026-08-16 10:15:02.909098: predict best end_record 08-17 11:05:00, final soc 3.71kWh, metric 287.49p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.68kWh, PV 0.0kWh
2026-08-16 10:15:02.909184: Saving plan best values to HA entities
2026-08-16 10:15:03.072369: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:15:03.079227: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:15:03.085099: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.61kWh, house 0kWh, export 0.0kWh, metric 287.49p, metric10 308.31p
2026-08-16 10:15:03.152290: Marginal costs baseline metric (no standing charge): 237.5016
2026-08-16 10:15:03.379410: Marginal energy costs matrix computed: min=0.0 max=28.24
2026-08-16 10:15:03.449666: Rate array import [{'start': 615, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 615, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:15:03.450110: - Your estimated bill for today is £2.24 and tomorrow is £7.13
2026-08-16 10:15:03.450170: - Import rates are expensive (24.9p - 25.5p) for the next 45 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:15:03.450206: - The battery is currently at 44% and is charging to 44% for the next 45 minutes.
2026-08-16 10:15:03.450235: - For the next 48 hours there will be no solar generation.
2026-08-16 10:15:03.450284: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:15:03.450330: 
2026-08-16 10:15:03.502220: Plan calculation took 1.07 seconds
2026-08-16 10:15:03.505019: No high rate period found
2026-08-16 10:15:03.552315: Import threshold used for optimisation was 25.5p
2026-08-16 10:15:03.600789: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 95: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:15:03.608779: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:15:03.608931: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:15:03.609210: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:15:03.609337: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:15:03.609554: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:15:03.609966: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:15:03.610139: No export window planned
2026-08-16 10:15:03.610319: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:15:03.610370: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:15:03.610602: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:15:03.610733: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:15:03.610824: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:15:03.610910: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:15:03.611074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611141: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611444: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611494: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611540: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611599: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611712: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611769: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.611974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.612012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.612049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.612086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.612133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:15:03.612187: Inverter 0 count register writes 0
2026-08-16 10:15:03.628714: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:15:03.633558: Total inverter register writes now 828
2026-08-16 10:15:03.665396: Info: Completed run status Hold charging
2026-08-16 10:15:03.671643: Info: record_status Hold charging target 44%-44%
2026-08-16 10:15:03.678255: Saved current settings to /config/predbat_config.json
2026-08-16 10:15:03.678558: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:15:41.792553: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:15:41.792813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:15:41.792849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:15:41.793020: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:15:41.793067: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:15:41.793086: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:15:41.793101: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:17:42.009826: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:17:42.010106: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:17:42.010166: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:17:42.010338: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:17:42.010403: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:17:42.010439: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:17:42.010457: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:19:42.242461: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:19:42.242767: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:19:42.242804: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:19:42.243000: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:19:42.243040: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:19:42.243061: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:19:42.243079: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:20:00.335879: --------------- PredBat - update at 2026-08-16 10:20:00+01:00 with clock skew 0 minutes, minutes now 620
2026-08-16 10:20:00.336700: Saved current settings to /config/predbat_config.json
2026-08-16 10:20:00.336833: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 10:20:00.336919: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:20:00.337074: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:20:00.356827: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:20:00.356995: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:20:00.357169: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:20:00.357880: Cars 1 charging from battery False 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-16 10:20:00.358437: Predbat mode is set to Control charge & discharge
2026-08-16 10:20:00.550014: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:20:00.550179: Using load_power data to fill gaps in load_today data
2026-08-16 10:20:01.265499: Processing 721 30-minute periods for power integration
2026-08-16 10:20:01.426930: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:20:01.427074: Car charging hold False, threshold 6.0kWh
2026-08-16 10:20:01.427135: Current data so far today: load 5.43kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:20:01.439879: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:20:01.440367: Standing charge is set to 49.98p
2026-08-16 10:20:01.489961: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:20:01.490083: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:20:01.490306: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 10:20:01.490836: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 10:20:01.497166: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:20:01.586667: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:20:01.636536: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:20:01.637000: Import rates: min 0.0p, max 49.86p, average 30.55p
2026-08-16 10:20:01.671390: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:20:01.671540: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:20:01.672665: High export rate found rates in range 99p to -99p
2026-08-16 10:20:01.744420: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:20:01.744591: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:20:01.757236: Battery level now 7.04kWh, -1hr ago 7.2kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:20:01.757649: 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-16 10:20:01.811876: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:20:01.812025: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:20:01.880023: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:20:01.903472: Today's load divergence 95.43%, in-day adjustment 88.43%, damping 0.95x, yesterday 82.97% today 95.66% blend 56.94%
2026-08-16 10:20:01.903592: Today's predicted so far 6.07kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.07kWh forecast extra.
2026-08-16 10:20:01.903637: Today's actual load so far 5.39kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:20:01.940217: Inverter 0: Type SK Sunsynk
2026-08-16 10:20:01.940303: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:20:01.940521: Reserve min: 7%, battery_min: 7%
2026-08-16 10:20:01.940601: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:20:01.940918: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 6W, current battery voltage 51.2V, grid power -329W, load power 329W, PV Power 0W
2026-08-16 10:20:01.941120: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:20:01.941222: Inverter 0 scheduled charge enable is True
2026-08-16 10:20:01.941284: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:20:01.941411: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:20:01.941575: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:20:01.941612: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:20:01.941651: Inverter 0 scheduled discharge enable is False
2026-08-16 10:20:01.941815: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:20:01.941852: Inverter 0 discharge windows currently []
2026-08-16 10:20:01.941872: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:20:01.941887: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:20:01.941919: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:20:02.008099: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:20:02.008220: Plan was last updated on 2026-08-16 10:10:00+01:00 and is now 10.0 minutes old
2026-08-16 10:20:02.008551: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:20:02.008597: Best export window [  ]
2026-08-16 10:20:02.009740: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:20:02.012805: Load divergence over 8.0 hours mean 362.13W, min 244.2W, max 891.6W, std dev 97.29W, divergence 13.43%
2026-08-16 10:20:02.032194: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:20:02.032324: LoadML is_calculating False
2026-08-16 10:20:02.032390: Creating pool of 12 processes to match your CPU count
2026-08-16 10:20:02.154130: predict base end_record 08-17 11:10:00, final soc 6.55kWh, metric 520.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.84kWh, PV 0.0kWh
2026-08-16 10:20:02.290250: Battery has 14.17 hours left - now at 7.04kWh
2026-08-16 10:20:02.336351: predict base10 end_record 08-17 11:10:00, final soc 5.65kWh, metric 513.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.58kWh, PV 0.0kWh
2026-08-16 10:20:02.428877: predict best10 end_record 08-17 11:10:00, final soc 3.35kWh, metric 318.77p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.58kWh, PV 0.0kWh
2026-08-16 10:20:02.513838: predict best end_record 08-17 11:10:00, final soc 4.09kWh, metric 299.76p, metric_keep 0kWh, min_soc 3.31kWh @ 08-17 10:55:00, load 20.84kWh, PV 0.0kWh
2026-08-16 10:20:02.513959: Saving plan best values to HA entities
2026-08-16 10:20:02.682832: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:20:02.689294: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:20:02.695888: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 14.06kWh, house 0.0kWh, export 0.0kWh, metric 299.76p, metric10 318.77p
2026-08-16 10:20:02.773590: Marginal costs baseline metric (no standing charge): 249.7752
2026-08-16 10:20:03.084688: Marginal energy costs matrix computed: min=0.0 max=27.88
2026-08-16 10:20:03.158402: Rate array import [{'start': 620, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 620, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:20:03.158773: - Your estimated bill for today is £2.23 and tomorrow is £7.13
2026-08-16 10:20:03.158813: - Import rates are expensive (24.9p - 25.5p) for the next 40 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:20:03.158832: - The battery is currently at 44% and is charging to 44% for the next 40 minutes.
2026-08-16 10:20:03.158847: - For the next 48 hours there will be no solar generation.
2026-08-16 10:20:03.158861: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:20:03.158874: 
2026-08-16 10:20:03.213213: Plan calculation took 1.20 seconds
2026-08-16 10:20:03.216540: No high rate period found
2026-08-16 10:20:03.269306: Import threshold used for optimisation was 25.5p
2026-08-16 10:20:03.330803: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 95: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:20:03.339735: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:20:03.339887: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:20:03.340113: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:20:03.340225: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:20:03.340457: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:20:03.340772: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:20:03.340938: No export window planned
2026-08-16 10:20:03.341170: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:20:03.341216: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:20:03.341411: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:20:03.341547: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:20:03.341654: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:20:03.341758: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:20:03.341965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342022: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342377: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342439: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342524: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342595: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342729: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342785: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.342982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.343006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.343029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.343055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:03.343076: Inverter 0 count register writes 0
2026-08-16 10:20:03.360598: 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-16 10:20:03.360797: Recompute is saving previous plan...
2026-08-16 10:20:03.364166: Best charge window [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 44%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 44%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 44%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 44%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 44%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 44%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 44%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 44%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 44%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 44%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 44%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 44%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 44%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 44%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 44%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 44%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 44%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 44%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 44%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 44%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 44%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 44%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 44%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 44%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 44%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 44%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 44%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 44%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 44%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 44%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 44%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 44%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 44%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 44%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 44%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 44%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 44%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 44%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 44%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 44%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 44%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 44%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 44%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 44%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 44%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 44%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 44%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 44%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 44%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 44%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 44%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 44%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 44%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 44%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 44%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 44%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 44%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 44%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 44%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 44%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 44%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 44%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 44%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 44%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 44%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 44%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 44%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 44%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 44%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 44%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 44%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 44%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 44%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 44%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 44%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 44%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 44%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 44%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 44%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 44%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 44%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 44%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 44%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 44%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 44% ]
2026-08-16 10:20:03.364393: Best export window [  ]
2026-08-16 10:20:03.365667: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:20:03.368804: Load divergence over 8.0 hours mean 362.13W, min 244.2W, max 891.6W, std dev 97.29W, divergence 13.43%
2026-08-16 10:20:03.386134: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:20:03.386259: LoadML is_calculating False
2026-08-16 10:20:03.386332: Creating pool of 12 processes to match your CPU count
2026-08-16 10:20:03.478367: 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(0.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-16 10:20:03.480660: Optimise levels pass started at 2026-08-16 10:20:03
2026-08-16 10:20:03.480742: Optimise all windows, total charge 95 export 1
2026-08-16 10:20:04.389830: >> Region optimisation pass width 960 gives best_metric 611.5p, best_cost 628.11p, best_cycle 40.51kWh, best_import 27.7kWh
2026-08-16 10:20:04.793177: >> Region optimisation pass width 480 gives best_metric 611.5p, best_cost 628.11p, best_cycle 40.51kWh, best_import 27.7kWh
2026-08-16 10:20:05.485440: >> Region optimisation pass width 240 gives best_metric 608.04p, best_cost 624.55p, best_cycle 40.51kWh, best_import 27.7kWh
2026-08-16 10:20:06.793316: >> Region optimisation pass width 120 gives best_metric 608.04p, best_cost 624.55p, best_cycle 40.51kWh, best_import 27.7kWh
2026-08-16 10:20:06.793759: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 50
2026-08-16 10:20:06.793855: Optimise levels pass ended at 2026-08-16 10:20:06, duration 3.3 seconds tried 344 combinations
2026-08-16 10:20:06.793957: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 608.04p, best_keep 0kWh, best_cycle 40.51kWh, best_carbon 0kg, best_import 27.7kWh
2026-08-16 10:20:06.810746: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 0, 16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:20:10.693023: Tweak plan optimisation started metric 153.29p, cost 223.41p
2026-08-16 10:20:10.958443: Tweak optimisation finished metric 153.29p, cost 223.41p, metric_keep 0kWh, cycle 21.55kWh, carbon 0kg, import 13.09kWh, changed 8 window(s)
2026-08-16 10:20:10.979195: Swap charge optimisation started metric 153.29p, cost 223.41p, min_improvement_swap 0.1p
2026-08-16 10:20:15.566569: Swap charge optimisation finished metric 153.29p, cost 223.41p
2026-08-16 10:20:15.699582: Raw charge windows [ 16-08 10:00:00 - 16-08 10:30:00 @ 25.5p 44%, 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100% ] reserve 1.12
2026-08-16 10:20:15.700335: Unclipped charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:20:15.700901: Unfiltered charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:20:15.701320: Filtered charge windows [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:20:15.739581: Previous plan best metric is 153.29 (cost 223.41) and new plan best metric is 153.29 (cost 223.41)
2026-08-16 10:20:15.739869: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 10:20:15.740159: Plan valid is now true after recompute was False
2026-08-16 10:20:15.770330: predict base end_record 08-17 11:00:00, final soc 5.78kWh, metric 494.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.71kWh, PV 0.0kWh
2026-08-16 10:20:15.887997: Battery has 14.17 hours left - now at 7.04kWh
2026-08-16 10:20:15.933928: predict base10 end_record 08-17 11:00:00, final soc 5.0kWh, metric 490.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.44kWh, PV 0.0kWh
2026-08-16 10:20:16.003880: predict best10 end_record 08-17 11:00:00, final soc 2.71kWh, metric 296.02p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.44kWh, PV 0.0kWh
2026-08-16 10:20:16.085833: predict best end_record 08-17 11:00:00, final soc 3.31kWh, metric 273.4p, metric_keep 0kWh, min_soc 3.31kWh @ 08-17 10:55:00, load 20.71kWh, PV 0.0kWh
2026-08-16 10:20:16.085941: Saving plan best values to HA entities
2026-08-16 10:20:16.254247: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:20:16.260197: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:20:16.266143: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.09kWh, house 0.0kWh, export 0.0kWh, metric 273.4p, metric10 296.02p
2026-08-16 10:20:16.354279: Marginal costs baseline metric (no standing charge): 223.4134
2026-08-16 10:20:16.600077: Marginal energy costs matrix computed: min=0.0 max=27.88
2026-08-16 10:20:16.665752: Rate array import [{'start': 620, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 620, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:20:16.666085: - Your estimated bill for today is £2.23 and tomorrow is £7.13
2026-08-16 10:20:16.666150: - Import rates are expensive (24.9p - 25.5p) for the next 40 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:20:16.666168: - The battery is currently at 44% and is charging to 44% for the next 40 minutes.
2026-08-16 10:20:16.666183: - For the next 48 hours there will be no solar generation.
2026-08-16 10:20:16.666197: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:20:16.666211: 
2026-08-16 10:20:16.717118: Plan calculation took 13.36 seconds
2026-08-16 10:20:16.717472: Inverter 0: Type SK Sunsynk
2026-08-16 10:20:16.717529: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:20:16.717747: Reserve min: 7%, battery_min: 7%
2026-08-16 10:20:16.717815: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:20:16.718108: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 6W, current battery voltage 51.2V, grid power -329W, load power 329W, PV Power 0W
2026-08-16 10:20:16.718312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:20:16.718405: Inverter 0 scheduled charge enable is True
2026-08-16 10:20:16.718452: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:20:16.718551: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:20:16.718650: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:20:16.718681: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:20:16.718712: Inverter 0 scheduled discharge enable is False
2026-08-16 10:20:16.718814: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:20:16.718846: Inverter 0 discharge windows currently []
2026-08-16 10:20:16.718864: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:20:16.718879: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:20:16.718893: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:20:16.778082: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:20:16.778265: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:20:16.778458: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:20:16.778599: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:20:16.778802: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:20:16.779009: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:20:16.779122: No export window planned
2026-08-16 10:20:16.779242: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:20:16.779279: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:20:16.779439: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:20:16.779545: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:20:16.779612: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:20:16.779666: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:20:16.779790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.779837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.779865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.779899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.779925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.779965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780141: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780209: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780268: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780323: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780379: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780432: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780483: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:20:16.780837: Inverter 0 count register writes 0
2026-08-16 10:20:16.807609: Total inverter register writes now 828
2026-08-16 10:20:16.845221: Info: Completed run status Hold charging
2026-08-16 10:20:16.852096: Info: record_status Hold charging target 44%-44%
2026-08-16 10:20:16.859265: Saved current settings to /config/predbat_config.json
2026-08-16 10:20:16.859572: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:20:56.970281: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:20:56.970585: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:20:56.970624: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:20:56.970781: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:20:56.970822: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:20:56.970844: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:20:56.970862: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:22:03.736827: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 10:22:04.822819: Processing 1345 30-minute periods for power integration
2026-08-16 10:22:04.930219: ML Component: Car charging hold False, car energy reported load False
2026-08-16 10:22:05.033626: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:22:05.137196: ML Temperature data points: 49781
2026-08-16 10:22:05.417039: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 10:22:05.462723: ML Component: Data fetch completed, load data age 57.0 days, 16676 data points
2026-08-16 10:22:05.462900: ML Component: No training needed, model age is 0.25 hours
2026-08-16 10:22:05.462997: ML Component: Generating predictions load data age 57.0 days, 16676 data points
2026-08-16 10:22:05.610536: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0254 max_dow {0: 0.10211874996256083, 1: 0.10889687554407865, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.09651111107096075, 6: 0.10629687632601709}
2026-08-16 10:22:13.558738: ML Component: Generated 576 predictions (total 29.19 kWh over 48h)
2026-08-16 10:22:13.610054: ML Component: Prediction cycle completed
2026-08-16 10:22:13.733587: ML Component: Saved 16676 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 10:22:57.212361: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:22:57.212654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:22:57.212709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:22:57.212892: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:22:57.212930: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:22:57.213030: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:22:57.213053: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:24:57.447247: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:24:57.447708: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:24:57.447779: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:24:57.448023: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:24:57.448086: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:24:57.448135: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:24:57.448177: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:25:00.541901: --------------- PredBat - update at 2026-08-16 10:25:00+01:00 with clock skew 0 minutes, minutes now 625
2026-08-16 10:25:00.542944: Saved current settings to /config/predbat_config.json
2026-08-16 10:25:00.543124: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 10:25:00.543235: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:25:00.543339: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:25:00.568379: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:25:00.568581: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:25:00.568774: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:25:00.569351: Cars 1 charging from battery False 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-16 10:25:00.569498: Predbat mode is set to Control charge & discharge
2026-08-16 10:25:00.765818: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:25:00.765968: Using load_power data to fill gaps in load_today data
2026-08-16 10:25:01.611416: Processing 721 30-minute periods for power integration
2026-08-16 10:25:01.798402: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:25:01.798558: Car charging hold False, threshold 6.0kWh
2026-08-16 10:25:01.798608: Current data so far today: load 5.45kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:25:01.813484: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:25:01.813960: Standing charge is set to 49.98p
2026-08-16 10:25:01.866928: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:25:01.867054: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:25:01.867305: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 10:25:01.867736: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 10:25:01.874774: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:25:01.971434: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:25:02.035083: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:25:02.035557: Import rates: min 0.0p, max 49.86p, average 30.56p
2026-08-16 10:25:02.079407: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:25:02.079555: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:25:02.081010: High export rate found rates in range 99p to -99p
2026-08-16 10:25:02.171861: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:25:02.172006: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:25:02.184549: Battery level now 7.04kWh, -1hr ago 7.2kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:25:02.184922: 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-16 10:25:02.246232: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 62.95p, import 12.96p, export 0.0p, carbon 0.0kg
2026-08-16 10:25:02.246375: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:25:02.329217: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:25:02.355803: Today's load divergence 95.47%, in-day adjustment 88.49%, damping 0.95x, yesterday 82.97% today 95.69% blend 56.6%
2026-08-16 10:25:02.355905: Today's predicted so far 6.09kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.09kWh forecast extra.
2026-08-16 10:25:02.355957: Today's actual load so far 5.41kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:25:02.393559: Inverter 0: Type SK Sunsynk
2026-08-16 10:25:02.393650: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:25:02.393851: Reserve min: 7%, battery_min: 7%
2026-08-16 10:25:02.393924: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:25:02.394213: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 6W, current battery voltage 51.2V, grid power -373W, load power 373W, PV Power 0W
2026-08-16 10:25:02.394385: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:25:02.394495: Inverter 0 scheduled charge enable is True
2026-08-16 10:25:02.394552: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:25:02.394646: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:25:02.394773: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:25:02.394810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:25:02.394848: Inverter 0 scheduled discharge enable is False
2026-08-16 10:25:02.394978: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:25:02.395015: Inverter 0 discharge windows currently []
2026-08-16 10:25:02.395038: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:25:02.395061: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:25:02.395079: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:25:02.462867: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:25:02.462980: Plan was last updated on 2026-08-16 10:20:00+01:00 and is now 5.0 minutes old
2026-08-16 10:25:02.463296: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:25:02.463349: Best export window [  ]
2026-08-16 10:25:02.464111: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:25:02.467278: Load divergence over 8.0 hours mean 365.64W, min 240.6W, max 912.0W, std dev 98.52W, divergence 13.47%
2026-08-16 10:25:02.485703: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:25:02.485810: LoadML is_calculating False
2026-08-16 10:25:02.485879: Creating pool of 12 processes to match your CPU count
2026-08-16 10:25:02.609810: predict base end_record 08-17 11:05:00, final soc 6.16kWh, metric 506.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.77kWh, PV 0.0kWh
2026-08-16 10:25:02.743383: Battery has 14.08 hours left - now at 7.04kWh
2026-08-16 10:25:02.787575: predict base10 end_record 08-17 11:05:00, final soc 5.32kWh, metric 501.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.5kWh, PV 0.0kWh
2026-08-16 10:25:02.867782: predict best10 end_record 08-17 11:05:00, final soc 3.03kWh, metric 306.73p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.5kWh, PV 0.0kWh
2026-08-16 10:25:02.954567: predict best end_record 08-17 11:05:00, final soc 3.7kWh, metric 285.97p, metric_keep 0kWh, min_soc 3.31kWh @ 08-17 10:55:00, load 20.77kWh, PV 0.0kWh
2026-08-16 10:25:02.954667: Saving plan best values to HA entities
2026-08-16 10:25:03.144993: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:25:03.151671: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:25:03.157415: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.54kWh, house 0.0kWh, export 0.0kWh, metric 285.97p, metric10 306.73p
2026-08-16 10:25:03.255485: Marginal costs baseline metric (no standing charge): 235.9826
2026-08-16 10:25:03.556557: Marginal energy costs matrix computed: min=0.0 max=27.5
2026-08-16 10:25:03.643933: Rate array import [{'start': 625, 'end': 660, 'rate': 'expensive', 'range': '(24.9p - 25.5p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 625, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:25:03.644416: - Your estimated bill for today is £2.23 and tomorrow is £7.14
2026-08-16 10:25:03.644486: - Import rates are expensive (24.9p - 25.5p) for the next 35 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:25:03.644513: - The battery is currently at 44% and is charging to 44% for the next 35 minutes.
2026-08-16 10:25:03.644532: - For the next 48 hours there will be no solar generation.
2026-08-16 10:25:03.644552: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:25:03.644570: 
2026-08-16 10:25:03.705079: Plan calculation took 1.24 seconds
2026-08-16 10:25:03.708570: No high rate period found
2026-08-16 10:25:03.778086: Import threshold used for optimisation was 25.5p
2026-08-16 10:25:03.866282: Low import rate windows [0: 08-16 10:00:00 - 08-16 10:30:00 @ 25.5, 1: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 2: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 3: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 4: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 5: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 6: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 7: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 8: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 9: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 10: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 11: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 12: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 13: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 14: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 15: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 16: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 17: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 18: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 19: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 20: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 21: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 22: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 23: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 24: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 25: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 26: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 27: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 28: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 29: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 30: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 31: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 32: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 33: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 34: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 35: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 36: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 37: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 38: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 39: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 40: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 41: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 42: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 43: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 44: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 45: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 46: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 47: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 48: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 49: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 50: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 51: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 52: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 53: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 54: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 55: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 56: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 57: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 58: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 59: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 60: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 61: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 62: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 63: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 64: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 65: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 66: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 67: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 68: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 69: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 70: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 71: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 72: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 73: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 74: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 75: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 76: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 77: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 78: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 79: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 80: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 81: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 82: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 83: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 84: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 85: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 86: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 87: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 88: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 89: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 90: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 91: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 92: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 93: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 94: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 95: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:25:03.881066: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:25:03.881390: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:25:03.881667: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:25:03.881785: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:25:03.881953: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:25:03.882212: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:25:03.882352: No export window planned
2026-08-16 10:25:03.882504: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:25:03.882552: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:25:03.882774: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:25:03.882906: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:25:03.882998: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:25:03.883095: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:25:03.883257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883659: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883708: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883750: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883795: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883837: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883881: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.883918: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:25:03.884406: Inverter 0 count register writes 0
2026-08-16 10:25:03.909684: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:25:03.917916: Total inverter register writes now 828
2026-08-16 10:25:03.961555: Info: Completed run status Hold charging
2026-08-16 10:25:03.968143: Info: record_status Hold charging target 44%-44%
2026-08-16 10:25:03.976814: Saved current settings to /config/predbat_config.json
2026-08-16 10:25:03.977273: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:25:42.098249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:25:42.098554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:25:42.098598: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:25:42.098773: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:25:42.098829: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:25:42.098852: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:25:42.098897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:27:42.323126: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:27:42.323402: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:27:42.323453: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:27:42.323761: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:27:42.323809: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:27:42.323832: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:27:42.323850: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:29:56.571313: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:29:56.571624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:29:56.571671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:29:56.571810: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:29:56.571850: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:29:56.571870: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:29:56.571888: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:30:00.658203: --------------- PredBat - update at 2026-08-16 10:30:00+01:00 with clock skew 0 minutes, minutes now 630
2026-08-16 10:30:00.658982: Saved current settings to /config/predbat_config.json
2026-08-16 10:30:00.659124: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 10:30:00.659203: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:30:00.659316: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:30:00.690647: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:30:00.690808: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:30:00.691050: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:30:00.693234: Cars 1 charging from battery False 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-16 10:30:00.693450: Predbat mode is set to Control charge & discharge
2026-08-16 10:30:00.930805: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:30:00.930986: Using load_power data to fill gaps in load_today data
2026-08-16 10:30:01.661215: Processing 721 30-minute periods for power integration
2026-08-16 10:30:01.827345: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:30:01.827490: Car charging hold False, threshold 6.0kWh
2026-08-16 10:30:01.827532: Current data so far today: load 5.4kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:30:01.839380: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:30:01.839786: Standing charge is set to 49.98p
2026-08-16 10:30:01.893243: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:30:01.893343: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:30:01.893553: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 10:30:01.893925: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 10:30:01.899756: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:30:01.990582: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:30:02.041290: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:30:02.041705: Import rates: min 0.0p, max 49.86p, average 30.56p
2026-08-16 10:30:02.075893: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:30:02.076017: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:30:02.077101: High export rate found rates in range 99p to -99p
2026-08-16 10:30:02.149049: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:30:02.149173: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:30:02.162922: Battery level now 7.04kWh, -1hr ago 7.2kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:30:02.163237: Last hour: net energy 0.08kWh, import 0.08kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 1.94p, import 1.94p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:30:02.217663: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 65.42p, import 15.43p, export 0.0p, carbon 0.0kg
2026-08-16 10:30:02.217796: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:30:02.284295: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:30:02.306793: Today's load divergence 94.56%, in-day adjustment 88.16%, damping 0.95x, yesterday 82.97% today 94.84% blend 56.25%
2026-08-16 10:30:02.306974: Today's predicted so far 6.24kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.24kWh forecast extra.
2026-08-16 10:30:02.307016: Today's actual load so far 5.43kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:30:02.345512: Inverter 0: Type SK Sunsynk
2026-08-16 10:30:02.345656: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:30:02.345945: Reserve min: 7%, battery_min: 7%
2026-08-16 10:30:02.346063: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:30:02.346460: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 5W, current battery voltage 51.2V, grid power -322W, load power 322W, PV Power 0W
2026-08-16 10:30:02.346701: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:30:02.346827: Inverter 0 scheduled charge enable is True
2026-08-16 10:30:02.346904: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:30:02.347049: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:30:02.347238: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:30:02.347291: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:30:02.347345: Inverter 0 scheduled discharge enable is False
2026-08-16 10:30:02.347549: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:30:02.347601: Inverter 0 discharge windows currently []
2026-08-16 10:30:02.347663: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:30:02.347701: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:30:02.347726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:30:02.405700: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:30:02.405799: Plan was last updated on 2026-08-16 10:20:00+01:00 and is now 10.0 minutes old
2026-08-16 10:30:02.406050: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:30:02.406088: Best export window [  ]
2026-08-16 10:30:02.406762: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:30:02.409300: Load divergence over 8.0 hours mean 370.01W, min 223.8W, max 1097.4W, std dev 113.96W, divergence 15.4%
2026-08-16 10:30:02.424632: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:30:02.424754: LoadML is_calculating False
2026-08-16 10:30:02.424812: Creating pool of 12 processes to match your CPU count
2026-08-16 10:30:02.531611: predict base end_record 08-17 11:10:00, final soc 6.55kWh, metric 520.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.7kWh, PV 0.0kWh
2026-08-16 10:30:02.676234: Battery has 14.0 hours left - now at 7.04kWh
2026-08-16 10:30:02.721778: predict base10 end_record 08-17 11:10:00, final soc 5.65kWh, metric 512.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.43kWh, PV 0.0kWh
2026-08-16 10:30:02.804817: predict best10 end_record 08-17 11:10:00, final soc 3.36kWh, metric 318.56p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.43kWh, PV 0.0kWh
2026-08-16 10:30:02.894879: predict best end_record 08-17 11:10:00, final soc 4.09kWh, metric 299.68p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.7kWh, PV 0.0kWh
2026-08-16 10:30:02.894986: Saving plan best values to HA entities
2026-08-16 10:30:03.121617: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:30:03.128450: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:30:03.134485: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.95kWh, house 0.0kWh, export 0.0kWh, metric 299.68p, metric10 318.56p
2026-08-16 10:30:03.216458: Marginal costs baseline metric (no standing charge): 249.6987
2026-08-16 10:30:03.523606: Marginal energy costs matrix computed: min=0.0 max=27.1
2026-08-16 10:30:03.603493: Rate array import [{'start': 630, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 630, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:30:03.603991: - Your estimated bill for today is £2.23 and tomorrow is £7.12
2026-08-16 10:30:03.604041: - Import rates are expensive (24.9p) for the next 30 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:30:03.604067: - The battery is currently at 44% and is charging to 44% for the next 30 minutes.
2026-08-16 10:30:03.604085: - For the next 48 hours there will be no solar generation.
2026-08-16 10:30:03.604103: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:30:03.604125: 
2026-08-16 10:30:03.664733: Plan calculation took 1.26 seconds
2026-08-16 10:30:03.668245: No high rate period found
2026-08-16 10:30:03.727363: Import threshold used for optimisation was 25.5p
2026-08-16 10:30:03.787133: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72]
2026-08-16 10:30:03.794901: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:30:03.795014: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:30:03.795172: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:30:03.795253: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:30:03.795384: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:30:03.795652: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:30:03.795797: No export window planned
2026-08-16 10:30:03.795939: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:30:03.795983: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:30:03.796167: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:30:03.796265: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:30:03.796319: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:30:03.796375: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:30:03.796481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796674: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796722: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796748: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796770: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796794: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796814: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796833: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.796991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.797023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.797045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.797064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:03.797081: Inverter 0 count register writes 0
2026-08-16 10:30:03.822868: 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-16 10:30:03.823163: Recompute is saving previous plan...
2026-08-16 10:30:03.826868: Best charge window [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 44%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 44%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 44%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 44%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 44%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 44%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 44%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 44%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 44%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 44%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 44%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 44%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 44%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 44%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 44%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 44%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 44%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 44%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 44%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 44%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 44%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 44%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 44%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 44%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 44%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 44%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 44%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 44%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 44%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 44%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 44%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 44%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 44%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 44%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 44%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 44%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 44%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 44%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 44%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 44%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 44%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 44%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 44%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 44%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 44%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 44%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 44%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 44%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 44%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 44%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 44%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 44%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 44%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 44%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 44%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 44%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 44%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 44%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 44%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 44%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 44%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 44%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 44%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 44%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 44%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 44%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 44%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 44%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 44%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 44%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 44%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 44%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 44%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 44%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 44%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 44%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 44%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 44%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 44%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 44%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 44%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 44%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 44%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 44% ]
2026-08-16 10:30:03.826995: Best export window [  ]
2026-08-16 10:30:03.827937: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:30:03.831376: Load divergence over 8.0 hours mean 370.01W, min 223.8W, max 1097.4W, std dev 113.96W, divergence 15.4%
2026-08-16 10:30:03.858007: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:30:03.858156: LoadML is_calculating False
2026-08-16 10:30:03.858230: Creating pool of 12 processes to match your CPU count
2026-08-16 10:30:03.955812: 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(0.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-16 10:30:03.958145: Optimise levels pass started at 2026-08-16 10:30:03
2026-08-16 10:30:03.958226: Optimise all windows, total charge 95 export 1
2026-08-16 10:30:04.945869: >> Region optimisation pass width 960 gives best_metric 614.62p, best_cost 631.14p, best_cycle 38.34kWh, best_import 27.55kWh
2026-08-16 10:30:05.368977: >> Region optimisation pass width 480 gives best_metric 614.62p, best_cost 631.14p, best_cycle 38.34kWh, best_import 27.55kWh
2026-08-16 10:30:06.190632: >> Region optimisation pass width 240 gives best_metric 611.45p, best_cost 627.97p, best_cycle 40.3kWh, best_import 27.7kWh
2026-08-16 10:30:07.628596: >> Region optimisation pass width 120 gives best_metric 611.45p, best_cost 627.97p, best_cycle 40.3kWh, best_import 27.7kWh
2026-08-16 10:30:07.629015: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 49
2026-08-16 10:30:07.629097: Optimise levels pass ended at 2026-08-16 10:30:07, duration 3.7 seconds tried 351 combinations
2026-08-16 10:30:07.629170: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 611.45p, best_keep 0kWh, best_cycle 40.3kWh, best_carbon 0kg, best_import 27.7kWh
2026-08-16 10:30:07.649547: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:30:11.796529: Tweak plan optimisation started metric 152.99p, cost 223.28p
2026-08-16 10:30:12.070205: Tweak optimisation finished metric 152.99p, cost 223.28p, metric_keep 0kWh, cycle 21.54kWh, carbon 0kg, import 12.98kWh, changed 8 window(s)
2026-08-16 10:30:12.095821: Swap charge optimisation started metric 152.99p, cost 223.28p, min_improvement_swap 0.1p
2026-08-16 10:30:15.862366: Swap charge optimisation finished metric 152.99p, cost 223.28p
2026-08-16 10:30:15.962156: Raw charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100% ] reserve 1.12
2026-08-16 10:30:15.962791: Unclipped charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:30:15.963070: Unfiltered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:30:15.963281: Filtered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ] reserve 1.12
2026-08-16 10:30:15.994104: Previous plan best metric is 152.99 (cost 223.28) and new plan best metric is 152.99 (cost 223.28)
2026-08-16 10:30:15.994362: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 10:30:15.994601: Plan valid is now true after recompute was False
2026-08-16 10:30:16.017792: predict base end_record 08-17 11:00:00, final soc 5.78kWh, metric 493.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.57kWh, PV 0.0kWh
2026-08-16 10:30:16.144773: Battery has 14.0 hours left - now at 7.04kWh
2026-08-16 10:30:16.182830: predict base10 end_record 08-17 11:00:00, final soc 5.0kWh, metric 490.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.29kWh, PV 0.0kWh
2026-08-16 10:30:16.259684: predict best10 end_record 08-17 11:00:00, final soc 2.71kWh, metric 295.75p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.29kWh, PV 0.0kWh
2026-08-16 10:30:16.340255: predict best end_record 08-17 11:00:00, final soc 3.32kWh, metric 273.26p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.57kWh, PV 0.0kWh
2026-08-16 10:30:16.340348: Saving plan best values to HA entities
2026-08-16 10:30:16.485935: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:30:16.490987: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:30:16.496601: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 12.98kWh, house 0.0kWh, export 0.0kWh, metric 273.26p, metric10 295.75p
2026-08-16 10:30:16.568915: Marginal costs baseline metric (no standing charge): 223.2796
2026-08-16 10:30:16.794420: Marginal energy costs matrix computed: min=0.0 max=27.1
2026-08-16 10:30:16.857229: Rate array import [{'start': 630, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 630, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:30:16.857588: - Your estimated bill for today is £2.23 and tomorrow is £7.12
2026-08-16 10:30:16.857627: - Import rates are expensive (24.9p) for the next 30 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:30:16.857646: - The battery is currently at 44% and is charging to 44% for the next 30 minutes.
2026-08-16 10:30:16.857662: - For the next 48 hours there will be no solar generation.
2026-08-16 10:30:16.857676: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:30:16.857689: 
2026-08-16 10:30:16.907497: Plan calculation took 13.08 seconds
2026-08-16 10:30:16.907899: Inverter 0: Type SK Sunsynk
2026-08-16 10:30:16.907950: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:30:16.908184: Reserve min: 7%, battery_min: 7%
2026-08-16 10:30:16.908274: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:30:16.908724: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 6W, current battery voltage 51.2V, grid power -332W, load power 333W, PV Power 0W
2026-08-16 10:30:16.909022: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:30:16.909170: Inverter 0 scheduled charge enable is True
2026-08-16 10:30:16.909229: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:30:16.909342: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:30:16.909490: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:30:16.909538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:30:16.909580: Inverter 0 scheduled discharge enable is False
2026-08-16 10:30:16.909781: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:30:16.909824: Inverter 0 discharge windows currently []
2026-08-16 10:30:16.909854: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:30:16.909886: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:30:16.909907: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:30:16.970887: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:30:16.971022: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:30:16.971160: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:30:16.971246: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:30:16.971417: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:30:16.971608: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:30:16.971706: No export window planned
2026-08-16 10:30:16.971826: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:30:16.971863: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:30:16.971999: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:30:16.972091: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:30:16.972150: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:30:16.972202: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:30:16.972311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972558: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972588: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972623: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972650: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972681: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972712: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972737: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.972929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.973010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.973151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:30:16.973195: Inverter 0 count register writes 0
2026-08-16 10:30:16.993448: Total inverter register writes now 828
2026-08-16 10:30:17.026605: Info: Completed run status Hold charging
2026-08-16 10:30:17.035839: Info: record_status Hold charging target 44%-44%
2026-08-16 10:30:17.044965: Saved current settings to /config/predbat_config.json
2026-08-16 10:30:17.045233: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:30:57.153348: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:30:57.153642: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:30:57.153715: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:30:57.153864: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:30:57.153914: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:30:57.153935: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:30:57.153953: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:32:57.380335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:32:57.380594: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:32:57.380632: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:32:57.380787: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:32:57.380835: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:32:57.380856: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:32:57.380870: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:35:00.609328: --------------- PredBat - update at 2026-08-16 10:35:00+01:00 with clock skew 0 minutes, minutes now 635
2026-08-16 10:35:00.610143: Saved current settings to /config/predbat_config.json
2026-08-16 10:35:00.610292: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 10:35:00.610404: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:35:00.610503: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:35:00.630281: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:35:00.630407: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:35:00.630628: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:35:00.631165: Cars 1 charging from battery False 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-16 10:35:00.631287: Predbat mode is set to Control charge & discharge
2026-08-16 10:35:00.841266: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:35:00.841589: Using load_power data to fill gaps in load_today data
2026-08-16 10:35:01.696257: Processing 721 30-minute periods for power integration
2026-08-16 10:35:01.889954: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:35:01.890102: Car charging hold False, threshold 6.0kWh
2026-08-16 10:35:01.890151: Current data so far today: load 5.4kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:35:01.904931: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:35:01.905477: Standing charge is set to 49.98p
2026-08-16 10:35:01.955666: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:35:01.955816: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:35:01.956112: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 10:35:01.956789: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 10:35:01.964314: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:35:02.061889: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:35:02.126247: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:35:02.126788: Import rates: min 0.0p, max 49.86p, average 30.56p
2026-08-16 10:35:02.170943: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:35:02.171072: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:35:02.172392: High export rate found rates in range 99p to -99p
2026-08-16 10:35:02.264991: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:35:02.265145: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:35:02.278940: Battery level now 7.04kWh, -1hr ago 7.2kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:35:02.279481: Last hour: net energy 0.07kWh, import 0.07kWh, export 0.0kWh, car 0kWh, load 0.2kWh, net cost 1.77p, import 1.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:35:02.337487: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 65.42p, import 15.43p, export 0.0p, carbon 0.0kg
2026-08-16 10:35:02.337686: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:35:02.421414: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:35:02.450897: Today's load divergence 94.21%, in-day adjustment 88.05%, damping 0.95x, yesterday 82.97% today 94.5% blend 55.9%
2026-08-16 10:35:02.450998: Today's predicted so far 6.35kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.35kWh forecast extra.
2026-08-16 10:35:02.451030: Today's actual load so far 5.5kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:35:02.485653: Inverter 0: Type SK Sunsynk
2026-08-16 10:35:02.485746: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:35:02.485933: Reserve min: 7%, battery_min: 7%
2026-08-16 10:35:02.486004: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:35:02.486273: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 3W, current battery voltage 51.2V, grid power -371W, load power 370W, PV Power 0W
2026-08-16 10:35:02.486432: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:35:02.486516: Inverter 0 scheduled charge enable is True
2026-08-16 10:35:02.486586: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:35:02.486682: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:35:02.486833: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:35:02.486871: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:35:02.486907: Inverter 0 scheduled discharge enable is False
2026-08-16 10:35:02.487042: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:35:02.487086: Inverter 0 discharge windows currently []
2026-08-16 10:35:02.487130: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:35:02.487153: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:35:02.487171: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:35:02.555173: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:35:02.555303: Plan was last updated on 2026-08-16 10:30:00+01:00 and is now 5.0 minutes old
2026-08-16 10:35:02.555646: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:35:02.555691: Best export window [  ]
2026-08-16 10:35:02.556516: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:35:02.559765: Load divergence over 8.0 hours mean 374.75W, min 213.6W, max 1026.0W, std dev 118.58W, divergence 15.82%
2026-08-16 10:35:02.578143: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:35:02.578279: LoadML is_calculating False
2026-08-16 10:35:02.578350: Creating pool of 12 processes to match your CPU count
2026-08-16 10:35:02.704422: predict base end_record 08-17 11:05:00, final soc 6.16kWh, metric 505.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.58kWh, PV 0.0kWh
2026-08-16 10:35:02.837752: Battery has 13.92 hours left - now at 7.04kWh
2026-08-16 10:35:02.882223: predict base10 end_record 08-17 11:05:00, final soc 5.32kWh, metric 499.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:20:00, load 21.3kWh, PV 0.0kWh
2026-08-16 10:35:02.963025: predict best10 end_record 08-17 11:05:00, final soc 3.04kWh, metric 305.65p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.3kWh, PV 0.0kWh
2026-08-16 10:35:03.049670: predict best end_record 08-17 11:05:00, final soc 3.7kWh, metric 285.06p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.58kWh, PV 0.0kWh
2026-08-16 10:35:03.049770: Saving plan best values to HA entities
2026-08-16 10:35:03.244325: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:35:03.251060: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:35:03.256801: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.41kWh, house 0.0kWh, export 0.0kWh, metric 285.06p, metric10 305.65p
2026-08-16 10:35:03.339454: Marginal costs baseline metric (no standing charge): 235.0745
2026-08-16 10:35:03.614685: Marginal energy costs matrix computed: min=0.0 max=27.05
2026-08-16 10:35:03.689105: Rate array import [{'start': 635, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 635, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:35:03.689527: - Your estimated bill for today is £2.22 and tomorrow is £7.10
2026-08-16 10:35:03.689587: - Import rates are expensive (24.9p) for the next 25 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:35:03.689618: - The battery is currently at 44% and is charging to 44% for the next 25 minutes.
2026-08-16 10:35:03.689641: - For the next 48 hours there will be no solar generation.
2026-08-16 10:35:03.689659: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:35:03.689682: 
2026-08-16 10:35:03.742911: Plan calculation took 1.19 seconds
2026-08-16 10:35:03.746398: No high rate period found
2026-08-16 10:35:03.806999: Import threshold used for optimisation was 24.94p
2026-08-16 10:35:03.864672: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 95: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 10:35:03.873609: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:35:03.873736: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:35:03.873926: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:35:03.874016: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:35:03.874172: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:35:03.874419: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:35:03.874548: No export window planned
2026-08-16 10:35:03.874696: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:35:03.874733: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:35:03.874871: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:35:03.874963: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:35:03.875049: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:35:03.875113: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:35:03.875220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875436: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875471: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875501: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875557: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875604: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875634: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:35:03.875879: Inverter 0 count register writes 0
2026-08-16 10:35:03.894592: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:35:03.900426: Total inverter register writes now 828
2026-08-16 10:35:03.962938: Info: Completed run status Hold charging
2026-08-16 10:35:03.971845: Info: record_status Hold charging target 44%-44%
2026-08-16 10:35:03.981024: Saved current settings to /config/predbat_config.json
2026-08-16 10:35:03.981428: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:35:42.097204: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:35:42.097530: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:35:42.097581: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:35:42.097732: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:35:42.097803: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:35:42.097826: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:35:42.097848: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:37:42.324048: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:37:42.324482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:37:42.324574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:37:42.324837: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:37:42.324894: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:37:42.324978: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:37:42.325026: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:39:56.581298: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:39:56.581571: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:39:56.581616: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:39:56.581960: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:39:56.582019: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:39:56.582043: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:39:56.582061: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:40:00.665377: --------------- PredBat - update at 2026-08-16 10:40:00+01:00 with clock skew 0 minutes, minutes now 640
2026-08-16 10:40:00.666206: Saved current settings to /config/predbat_config.json
2026-08-16 10:40:00.666420: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 10:40:00.666523: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:40:00.666683: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:40:00.690081: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:40:00.690245: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:40:00.690519: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:40:00.691222: Cars 1 charging from battery False 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-16 10:40:00.691356: Predbat mode is set to Control charge & discharge
2026-08-16 10:40:00.887757: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:40:00.887976: Using load_power data to fill gaps in load_today data
2026-08-16 10:40:01.759201: Processing 721 30-minute periods for power integration
2026-08-16 10:40:01.949178: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:40:01.949330: Car charging hold False, threshold 6.0kWh
2026-08-16 10:40:01.949380: Current data so far today: load 5.53kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:40:01.964474: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:40:01.965069: Standing charge is set to 49.98p
2026-08-16 10:40:02.013169: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:40:02.013280: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:40:02.268496: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:40:02.365121: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:40:02.426611: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:40:02.427069: Import rates: min 0.0p, max 49.86p, average 30.57p
2026-08-16 10:40:02.469514: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:40:02.469634: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:40:02.471153: High export rate found rates in range 99p to -99p
2026-08-16 10:40:02.566307: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:40:02.566451: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:40:02.580493: Battery level now 7.04kWh, -1hr ago 7.2kWh, at midnight 12.21kWh, battery value change in the last hour -0.16p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:40:02.580987: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.6p, import 1.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:40:02.644383: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 65.42p, import 15.43p, export 0.0p, carbon 0.0kg
2026-08-16 10:40:02.644585: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:40:02.730162: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:40:02.757830: Today's load divergence 94.56%, in-day adjustment 88.24%, damping 0.95x, yesterday 82.97% today 94.83% blend 55.56%
2026-08-16 10:40:02.757939: Today's predicted so far 6.37kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.37kWh forecast extra.
2026-08-16 10:40:02.757971: Today's actual load so far 5.57kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:40:02.797934: Inverter 0: Type SK Sunsynk
2026-08-16 10:40:02.798028: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:40:02.798228: Reserve min: 7%, battery_min: 7%
2026-08-16 10:40:02.798308: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:40:02.798600: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 4W, current battery voltage 51.2V, grid power -324W, load power 324W, PV Power 0W
2026-08-16 10:40:02.798806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:40:02.798898: Inverter 0 scheduled charge enable is True
2026-08-16 10:40:02.798951: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:40:02.799046: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:40:02.799168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:40:02.799204: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:40:02.799240: Inverter 0 scheduled discharge enable is False
2026-08-16 10:40:02.799367: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:40:02.799404: Inverter 0 discharge windows currently []
2026-08-16 10:40:02.799426: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:40:02.799449: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:40:02.799466: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:40:02.873966: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:40:02.874075: Plan was last updated on 2026-08-16 10:30:00+01:00 and is now 10.0 minutes old
2026-08-16 10:40:02.874383: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:40:02.874425: Best export window [  ]
2026-08-16 10:40:02.875265: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:40:02.879139: Load divergence over 8.0 hours mean 376.16W, min 222.6W, max 797.4W, std dev 106.11W, divergence 14.1%
2026-08-16 10:40:02.897989: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:40:02.898254: LoadML is_calculating False
2026-08-16 10:40:02.898715: Creating pool of 12 processes to match your CPU count
2026-08-16 10:40:03.032635: predict base end_record 08-17 11:10:00, final soc 6.55kWh, metric 517.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.72kWh, PV 0.0kWh
2026-08-16 10:40:03.187851: Battery has 13.83 hours left - now at 7.04kWh
2026-08-16 10:40:03.233423: predict base10 end_record 08-17 11:10:00, final soc 5.65kWh, metric 509.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:20:00, load 21.44kWh, PV 0.0kWh
2026-08-16 10:40:03.334383: predict best10 end_record 08-17 11:10:00, final soc 3.35kWh, metric 315.38p, metric_keep 0kWh, min_soc 2.7kWh @ 08-17 10:55:00, load 21.44kWh, PV 0.0kWh
2026-08-16 10:40:03.425092: predict best end_record 08-17 11:10:00, final soc 4.09kWh, metric 296.66p, metric_keep 0kWh, min_soc 3.31kWh @ 08-17 10:55:00, load 20.72kWh, PV 0.0kWh
2026-08-16 10:40:03.425215: Saving plan best values to HA entities
2026-08-16 10:40:03.591381: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:40:03.598608: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:40:03.604710: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.83kWh, house 0.0kWh, export 0.0kWh, metric 296.66p, metric10 315.38p
2026-08-16 10:40:03.679487: Marginal costs baseline metric (no standing charge): 246.6765
2026-08-16 10:40:03.902491: Marginal energy costs matrix computed: min=0.0 max=27.32
2026-08-16 10:40:03.975926: Rate array import [{'start': 640, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 640, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:40:03.976296: - Your estimated bill for today is £2.20 and tomorrow is £7.11
2026-08-16 10:40:03.976333: - Import rates are expensive (24.9p) for the next 20 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:40:03.976352: - The battery is currently at 44% and is charging to 44% for the next 20 minutes.
2026-08-16 10:40:03.976367: - For the next 48 hours there will be no solar generation.
2026-08-16 10:40:03.976381: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:40:03.976396: 
2026-08-16 10:40:04.029480: Plan calculation took 1.16 seconds
2026-08-16 10:40:04.033110: No high rate period found
2026-08-16 10:40:04.094554: Import threshold used for optimisation was 24.94p
2026-08-16 10:40:04.154745: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 95: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 10:40:04.162961: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:40:04.163094: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:40:04.163281: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:40:04.163372: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:40:04.163547: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:40:04.163901: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:40:04.164048: No export window planned
2026-08-16 10:40:04.164176: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:40:04.164214: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:40:04.164349: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:40:04.164441: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:40:04.164530: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:40:04.164589: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:40:04.164716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.164904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165025: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165081: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165115: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165147: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165178: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165203: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165232: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:04.165484: Inverter 0 count register writes 0
2026-08-16 10:40:04.183002: 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-16 10:40:04.183214: Recompute is saving previous plan...
2026-08-16 10:40:04.186680: Best charge window [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 44%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 44%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 44%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 44%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 44%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 44%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 44%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 44%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 44%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 44%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 44%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 44%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 44%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 44%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 44%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 44%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 44%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 44%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 44%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 44%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 44%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 44%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 44%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 44%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 44%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 44%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 44%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 44%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 44%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 44%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 44%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 44%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 44%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 44%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 44%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 44%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 44%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 44%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 44%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 44%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 44%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 44%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 44%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 44%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 44%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 44%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 44%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 44%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 44%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 44%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 44%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 44%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 44%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 44%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 44%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 44%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 44%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 44%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 44%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 44%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 44%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 44%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 44%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 44%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 44%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 44%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 44%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 44%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 44%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 44%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 44%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 44%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 44%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 44%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 44%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 44%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 44%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 44%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 44%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 44%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 44%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 44%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 44%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 44%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 44% ]
2026-08-16 10:40:04.186783: Best export window [  ]
2026-08-16 10:40:04.187586: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:40:04.190744: Load divergence over 8.0 hours mean 376.16W, min 222.6W, max 797.4W, std dev 106.11W, divergence 14.1%
2026-08-16 10:40:04.208825: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:40:04.208938: LoadML is_calculating False
2026-08-16 10:40:04.209042: Creating pool of 12 processes to match your CPU count
2026-08-16 10:40:04.306388: 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(0.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-16 10:40:04.308453: Optimise levels pass started at 2026-08-16 10:40:04
2026-08-16 10:40:04.308522: Optimise all windows, total charge 95 export 1
2026-08-16 10:40:05.241921: >> Region optimisation pass width 960 gives best_metric 615.12p, best_cost 631.65p, best_cycle 38.08kWh, best_import 27.55kWh
2026-08-16 10:40:05.655152: >> Region optimisation pass width 480 gives best_metric 615.12p, best_cost 631.65p, best_cycle 38.08kWh, best_import 27.55kWh
2026-08-16 10:40:06.449288: >> Region optimisation pass width 240 gives best_metric 612.06p, best_cost 628.61p, best_cycle 40.03kWh, best_import 27.69kWh
2026-08-16 10:40:07.859349: >> Region optimisation pass width 120 gives best_metric 612.06p, best_cost 628.61p, best_cycle 40.03kWh, best_import 27.69kWh
2026-08-16 10:40:07.859773: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 49
2026-08-16 10:40:07.859873: Optimise levels pass ended at 2026-08-16 10:40:07, duration 3.6 seconds tried 349 combinations
2026-08-16 10:40:07.859959: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 612.06p, best_keep 0kWh, best_cycle 40.03kWh, best_carbon 0kg, best_import 27.69kWh
2026-08-16 10:40:07.882276: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:40:11.493238: Tweak plan optimisation started metric 150.25p, cost 220.39p
2026-08-16 10:40:11.746622: Tweak optimisation finished metric 150.25p, cost 220.39p, metric_keep 0kWh, cycle 21.55kWh, carbon 0kg, import 12.87kWh, changed 8 window(s)
2026-08-16 10:40:11.767131: Swap charge optimisation started metric 150.25p, cost 220.39p, min_improvement_swap 0.1p
2026-08-16 10:40:15.367442: Swap charge optimisation finished metric 150.25p, cost 220.39p
2026-08-16 10:40:15.469107: Raw charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100% ] reserve 1.12
2026-08-16 10:40:15.469696: Unclipped charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:40:15.469955: Unfiltered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:40:15.470179: Filtered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:40:15.501803: Previous plan best metric is 150.25 (cost 220.39) and new plan best metric is 150.25 (cost 220.39)
2026-08-16 10:40:15.502060: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 10:40:15.502245: Plan valid is now true after recompute was False
2026-08-16 10:40:15.525913: predict base end_record 08-17 11:00:00, final soc 5.78kWh, metric 491.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.59kWh, PV 0.0kWh
2026-08-16 10:40:15.629924: Battery has 13.83 hours left - now at 7.04kWh
2026-08-16 10:40:15.666823: predict base10 end_record 08-17 11:00:00, final soc 5.0kWh, metric 487.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:20:00, load 21.3kWh, PV 0.0kWh
2026-08-16 10:40:15.738604: predict best10 end_record 08-17 11:00:00, final soc 2.7kWh, metric 292.72p, metric_keep 0kWh, min_soc 2.7kWh @ 08-17 10:55:00, load 21.3kWh, PV 0.0kWh
2026-08-16 10:40:15.809808: predict best end_record 08-17 11:00:00, final soc 3.31kWh, metric 270.37p, metric_keep 0kWh, min_soc 3.31kWh @ 08-17 10:55:00, load 20.59kWh, PV 0.0kWh
2026-08-16 10:40:15.809894: Saving plan best values to HA entities
2026-08-16 10:40:15.963624: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:40:15.969296: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:40:15.975016: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 12.87kWh, house 0.0kWh, export 0.0kWh, metric 270.37p, metric10 292.72p
2026-08-16 10:40:16.055109: Marginal costs baseline metric (no standing charge): 220.3884
2026-08-16 10:40:16.298970: Marginal energy costs matrix computed: min=0.0 max=27.32
2026-08-16 10:40:16.363026: Rate array import [{'start': 640, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 640, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:40:16.363443: - Your estimated bill for today is £2.20 and tomorrow is £7.11
2026-08-16 10:40:16.363488: - Import rates are expensive (24.9p) for the next 20 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:40:16.363510: - The battery is currently at 44% and is charging to 44% for the next 20 minutes.
2026-08-16 10:40:16.363529: - For the next 48 hours there will be no solar generation.
2026-08-16 10:40:16.363546: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:40:16.363565: 
2026-08-16 10:40:16.419290: Plan calculation took 12.24 seconds
2026-08-16 10:40:16.419705: Inverter 0: Type SK Sunsynk
2026-08-16 10:40:16.419754: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:40:16.419993: Reserve min: 7%, battery_min: 7%
2026-08-16 10:40:16.420075: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:40:16.420464: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 4W, current battery voltage 51.2V, grid power -324W, load power 324W, PV Power 0W
2026-08-16 10:40:16.420726: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:40:16.420840: Inverter 0 scheduled charge enable is True
2026-08-16 10:40:16.420897: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:40:16.421025: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:40:16.421196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:40:16.421235: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:40:16.421273: Inverter 0 scheduled discharge enable is False
2026-08-16 10:40:16.421397: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:40:16.421434: Inverter 0 discharge windows currently []
2026-08-16 10:40:16.421456: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:40:16.421475: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:40:16.421493: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:40:16.475882: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:40:16.476014: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:40:16.476152: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:40:16.476236: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:40:16.476361: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:40:16.476556: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:40:16.476665: No export window planned
2026-08-16 10:40:16.476805: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:40:16.476843: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:40:16.477033: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:40:16.477133: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:40:16.477197: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:40:16.477250: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:40:16.477360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477598: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477634: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477665: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477708: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477741: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477796: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477825: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.477996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.478029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.478054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:40:16.478074: Inverter 0 count register writes 0
2026-08-16 10:40:16.504670: Total inverter register writes now 828
2026-08-16 10:40:16.544405: Info: Completed run status Hold charging
2026-08-16 10:40:16.551701: Info: record_status Hold charging target 44%-44%
2026-08-16 10:40:16.560822: Saved current settings to /config/predbat_config.json
2026-08-16 10:40:16.561202: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:40:56.676556: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:40:56.676867: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:40:56.676939: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:40:56.677183: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:40:56.677222: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:40:56.677243: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:40:56.677261: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:42:56.941571: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:42:56.941875: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:42:56.941925: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:42:56.942083: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:42:56.942125: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:42:56.942146: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:42:56.942163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:44:57.162642: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:44:57.163079: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:44:57.163143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:44:57.163415: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:44:57.163472: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:44:57.163513: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:44:57.163548: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:45:00.246010: --------------- PredBat - update at 2026-08-16 10:45:00+01:00 with clock skew 0 minutes, minutes now 645
2026-08-16 10:45:00.246830: Saved current settings to /config/predbat_config.json
2026-08-16 10:45:00.246990: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-16 10:45:00.247074: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:45:00.247175: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:45:00.267662: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:45:00.267824: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:45:00.268090: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:45:00.268869: Cars 1 charging from battery False 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-16 10:45:00.269116: Predbat mode is set to Control charge & discharge
2026-08-16 10:45:00.477667: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:45:00.477829: Using load_power data to fill gaps in load_today data
2026-08-16 10:45:01.359231: Processing 721 30-minute periods for power integration
2026-08-16 10:45:01.550208: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:45:01.550356: Car charging hold False, threshold 6.0kWh
2026-08-16 10:45:01.550405: Current data so far today: load 5.55kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:45:01.565158: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:45:01.565650: Standing charge is set to 49.98p
2026-08-16 10:45:01.614131: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:45:01.614263: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:45:01.614699: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 10:45:01.615090: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 5.0 minutes
2026-08-16 10:45:01.621533: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:45:01.716989: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:45:01.781365: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:45:01.781857: Import rates: min 0.0p, max 49.86p, average 30.57p
2026-08-16 10:45:01.824882: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:45:01.825062: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:45:01.826463: High export rate found rates in range 99p to -99p
2026-08-16 10:45:01.917141: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:45:01.917322: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:45:01.929884: Battery level now 7.04kWh, -1hr ago 7.13kWh, at midnight 12.21kWh, battery value change in the last hour -0.09p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:45:01.930361: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.43p, import 1.43p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:45:01.990366: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 65.42p, import 15.43p, export 0.0p, carbon 0.0kg
2026-08-16 10:45:01.990514: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:45:02.064495: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:45:02.086436: Today's load divergence 94.11%, in-day adjustment 88.09%, damping 0.95x, yesterday 82.97% today 94.4% blend 55.21%
2026-08-16 10:45:02.086526: Today's predicted so far 6.38kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.38kWh forecast extra.
2026-08-16 10:45:02.086553: Today's actual load so far 5.51kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:45:02.120047: Inverter 0: Type SK Sunsynk
2026-08-16 10:45:02.120154: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:45:02.120323: Reserve min: 7%, battery_min: 7%
2026-08-16 10:45:02.120380: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:45:02.120646: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power 5W, current battery voltage 51.2V, grid power -394W, load power 394W, PV Power 0W
2026-08-16 10:45:02.120777: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:45:02.120850: Inverter 0 scheduled charge enable is True
2026-08-16 10:45:02.120887: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:45:02.121019: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:45:02.121152: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:45:02.121182: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:45:02.121214: Inverter 0 scheduled discharge enable is False
2026-08-16 10:45:02.121350: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:45:02.121384: Inverter 0 discharge windows currently []
2026-08-16 10:45:02.121402: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:45:02.121417: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:45:02.121431: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:45:02.175939: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:45:02.176050: Plan was last updated on 2026-08-16 10:40:00+01:00 and is now 5.0 minutes old
2026-08-16 10:45:02.176447: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:45:02.176520: Best export window [  ]
2026-08-16 10:45:02.177481: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:45:02.180623: Load divergence over 8.0 hours mean 377.23W, min 244.8W, max 864.0W, std dev 117.38W, divergence 15.56%
2026-08-16 10:45:02.199250: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:45:02.199439: LoadML is_calculating False
2026-08-16 10:45:02.199512: Creating pool of 12 processes to match your CPU count
2026-08-16 10:45:02.309704: predict base end_record 08-17 11:05:00, final soc 6.16kWh, metric 502.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.61kWh, PV 0.0kWh
2026-08-16 10:45:02.436220: Battery has 13.75 hours left - now at 7.04kWh
2026-08-16 10:45:02.477472: predict base10 end_record 08-17 11:05:00, final soc 5.32kWh, metric 496.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:20:00, load 21.33kWh, PV 0.0kWh
2026-08-16 10:45:02.554433: predict best10 end_record 08-17 11:05:00, final soc 3.04kWh, metric 302.59p, metric_keep 0kWh, min_soc 2.72kWh @ 08-17 10:55:00, load 21.33kWh, PV 0.0kWh
2026-08-16 10:45:02.633243: predict best end_record 08-17 11:05:00, final soc 3.71kWh, metric 282.12p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.61kWh, PV 0.0kWh
2026-08-16 10:45:02.633485: Saving plan best values to HA entities
2026-08-16 10:45:02.790498: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:45:02.797895: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:45:02.803554: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.3kWh, house 0kWh, export 0.0kWh, metric 282.12p, metric10 302.59p
2026-08-16 10:45:02.882281: Marginal costs baseline metric (no standing charge): 232.1365
2026-08-16 10:45:03.162315: Marginal energy costs matrix computed: min=0.0 max=27.53
2026-08-16 10:45:03.242204: Rate array import [{'start': 645, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 645, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:45:03.242648: - Your estimated bill for today is £2.19 and tomorrow is £7.13
2026-08-16 10:45:03.242696: - Import rates are expensive (24.9p) for the next 15 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:45:03.242719: - The battery is currently at 44% and is charging to 44% for the next 15 minutes.
2026-08-16 10:45:03.242738: - For the next 48 hours there will be no solar generation.
2026-08-16 10:45:03.242756: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:45:03.242772: 
2026-08-16 10:45:03.297719: Plan calculation took 1.12 seconds
2026-08-16 10:45:03.301314: No high rate period found
2026-08-16 10:45:03.358425: Import threshold used for optimisation was 24.94p
2026-08-16 10:45:03.416653: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 95: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 10:45:03.424535: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:45:03.424666: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:45:03.424877: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:45:03.425023: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:45:03.425205: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:45:03.425476: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:45:03.425613: No export window planned
2026-08-16 10:45:03.425742: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:45:03.425778: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:45:03.425914: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:45:03.426005: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:45:03.426062: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:45:03.426132: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:45:03.426244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426503: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426540: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426571: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426601: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426630: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426662: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426687: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426949: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:45:03.426970: Inverter 0 count register writes 0
2026-08-16 10:45:03.444895: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:45:03.450530: Total inverter register writes now 828
2026-08-16 10:45:03.487038: Info: Completed run status Hold charging
2026-08-16 10:45:03.493824: Info: record_status Hold charging target 44%-44%
2026-08-16 10:45:03.501835: Saved current settings to /config/predbat_config.json
2026-08-16 10:45:03.502278: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:45:41.623450: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:45:41.623738: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:45:41.623818: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:45:41.624007: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:45:41.624053: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:45:41.624075: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:45:41.624093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:47:41.845566: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:47:41.845897: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:47:41.845991: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:47:41.846157: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:47:41.846196: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:47:41.846224: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:47:41.846252: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:49:42.069410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:49:42.069707: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:49:42.069764: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:49:42.069914: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:49:42.069953: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:49:42.069975: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:49:42.069993: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:50:00.168039: --------------- PredBat - update at 2026-08-16 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-16 10:50:00.168989: Saved current settings to /config/predbat_config.json
2026-08-16 10:50:00.629146: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:50:00.629275: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:50:00.650881: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:50:00.651018: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:50:00.651239: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:50:00.651943: Cars 1 charging from battery False 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-16 10:50:00.652078: Predbat mode is set to Control charge & discharge
2026-08-16 10:50:00.865137: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:50:00.865654: Using load_power data to fill gaps in load_today data
2026-08-16 10:50:01.663972: Processing 721 30-minute periods for power integration
2026-08-16 10:50:01.823160: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:50:01.823299: Car charging hold False, threshold 6.0kWh
2026-08-16 10:50:01.823340: Current data so far today: load 5.65kWh, import 0.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:50:01.835562: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:50:01.836015: Standing charge is set to 49.98p
2026-08-16 10:50:01.888101: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:50:01.888199: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:50:01.888427: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 10:50:01.888844: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 10.0 minutes
2026-08-16 10:50:01.893688: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:50:01.974777: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:50:02.025575: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:50:02.025981: Import rates: min 0.0p, max 49.86p, average 30.58p
2026-08-16 10:50:02.061782: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:50:02.061914: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:50:02.063003: High export rate found rates in range 99p to -99p
2026-08-16 10:50:02.136876: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:50:02.137023: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:50:02.148673: Battery level now 7.04kWh, -1hr ago 7.13kWh, at midnight 12.21kWh, battery value change in the last hour -0.09p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:50:02.149154: Last hour: net energy 0.15kWh, import 0.15kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 3.76p, import 3.76p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:50:02.208154: Today's energy total net 0.7kWh, import 0.7kWh, export 0.0kWh, cost 67.93p, import 17.94p, export 0.0p, carbon 0.0kg
2026-08-16 10:50:02.208358: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:50:02.293744: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:50:02.325022: Today's load divergence 94.51%, in-day adjustment 88.3%, damping 0.95x, yesterday 82.97% today 94.78% blend 54.86%
2026-08-16 10:50:02.325128: Today's predicted so far 6.42kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.42kWh forecast extra.
2026-08-16 10:50:02.325160: Today's actual load so far 5.61kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:50:02.367753: Inverter 0: Type SK Sunsynk
2026-08-16 10:50:02.367852: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:50:02.368081: Reserve min: 7%, battery_min: 7%
2026-08-16 10:50:02.368194: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:50:02.368592: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -84W, current battery voltage 51.2V, grid power -431W, load power 327W, PV Power 0W
2026-08-16 10:50:02.368830: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:50:02.368934: Inverter 0 scheduled charge enable is True
2026-08-16 10:50:02.369031: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:50:02.369138: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:50:02.369294: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:50:02.369349: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:50:02.369395: Inverter 0 scheduled discharge enable is False
2026-08-16 10:50:02.369528: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:50:02.369564: Inverter 0 discharge windows currently []
2026-08-16 10:50:02.369587: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:50:02.369617: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:50:02.369657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:50:02.439076: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:50:02.439204: Plan was last updated on 2026-08-16 10:40:00+01:00 and is now 10.0 minutes old
2026-08-16 10:50:02.439588: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:50:02.439652: Best export window [  ]
2026-08-16 10:50:02.440569: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:50:02.443818: Load divergence over 8.0 hours mean 379.27W, min 244.2W, max 891.6W, std dev 113.66W, divergence 14.98%
2026-08-16 10:50:02.463878: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:50:02.464052: LoadML is_calculating False
2026-08-16 10:50:02.464145: Creating pool of 12 processes to match your CPU count
2026-08-16 10:50:02.594973: predict base end_record 08-17 11:10:00, final soc 6.55kWh, metric 517.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.73kWh, PV 0.0kWh
2026-08-16 10:50:02.726926: Battery has 13.67 hours left - now at 7.04kWh
2026-08-16 10:50:02.773842: predict base10 end_record 08-17 11:10:00, final soc 5.65kWh, metric 509.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.45kWh, PV 0.0kWh
2026-08-16 10:50:02.855258: predict best10 end_record 08-17 11:10:00, final soc 3.36kWh, metric 315.17p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.45kWh, PV 0.0kWh
2026-08-16 10:50:02.938902: predict best end_record 08-17 11:10:00, final soc 4.09kWh, metric 296.57p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.73kWh, PV 0.0kWh
2026-08-16 10:50:02.939014: Saving plan best values to HA entities
2026-08-16 10:50:03.118749: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:50:03.125481: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:50:03.131961: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.73kWh, house 0.0kWh, export 0.0kWh, metric 296.57p, metric10 315.17p
2026-08-16 10:50:03.211127: Marginal costs baseline metric (no standing charge): 246.5826
2026-08-16 10:50:03.483892: Marginal energy costs matrix computed: min=0.0 max=27.78
2026-08-16 10:50:03.558277: Rate array import [{'start': 650, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 650, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:50:03.558739: - Your estimated bill for today is £2.20 and tomorrow is £7.13
2026-08-16 10:50:03.558788: - Import rates are expensive (24.9p) for the next 10 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:50:03.558811: - The battery is currently at 44% and is charging to 44% for the next 10 minutes.
2026-08-16 10:50:03.558830: - For the next 48 hours there will be no solar generation.
2026-08-16 10:50:03.558847: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:50:03.558864: 
2026-08-16 10:50:03.612757: Plan calculation took 1.17 seconds
2026-08-16 10:50:03.616170: No high rate period found
2026-08-16 10:50:03.668531: Import threshold used for optimisation was 24.94p
2026-08-16 10:50:03.726573: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 95: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 10:50:03.734444: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:50:03.734572: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:50:03.734799: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:50:03.734892: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:50:03.735083: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:50:03.735353: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:50:03.735487: No export window planned
2026-08-16 10:50:03.735626: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:50:03.735662: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:50:03.735833: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:50:03.735934: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:50:03.736026: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 7.04kWh
2026-08-16 10:50:03.736097: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:50:03.736235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736463: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736498: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736553: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736582: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736613: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736639: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736805: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:03.736905: Inverter 0 count register writes 0
2026-08-16 10:50:03.753769: 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-16 10:50:03.753970: Recompute is saving previous plan...
2026-08-16 10:50:03.757355: Best charge window [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 44%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 44%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 44%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 44%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 44%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 44%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 44%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 44%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 44%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 44%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 44%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 44%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 44%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 44%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 44%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 44%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 44%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 44%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 44%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 44%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 44%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 44%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 44%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 44%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 44%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 44%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 44%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 44%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 44%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 44%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 44%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 44%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 44%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 44%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 44%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 44%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 44%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 44%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 44%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 44%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 44%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 44%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 44%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 44%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 44%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 44%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 44%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 44%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 44%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 44%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 44%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 44%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 44%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 44%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 44%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 44%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 44%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 44%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 44%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 44%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 44%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 44%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 44%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 44%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 44%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 44%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 44%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 44%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 44%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 44%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 44%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 44%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 44%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 44%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 44%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 44%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 44%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 44%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 44%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 44%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 44%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 44%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 44%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 44%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 44% ]
2026-08-16 10:50:03.757464: Best export window [  ]
2026-08-16 10:50:03.758272: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:50:03.761419: Load divergence over 8.0 hours mean 379.27W, min 244.2W, max 891.6W, std dev 113.66W, divergence 14.98%
2026-08-16 10:50:03.778654: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:50:03.778788: LoadML is_calculating False
2026-08-16 10:50:03.778858: Creating pool of 12 processes to match your CPU count
2026-08-16 10:50:03.872685: 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(0.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-16 10:50:03.875177: Optimise levels pass started at 2026-08-16 10:50:03
2026-08-16 10:50:03.875254: Optimise all windows, total charge 95 export 1
2026-08-16 10:50:04.806091: >> Region optimisation pass width 960 gives best_metric 618.02p, best_cost 634.73p, best_cycle 39.82kWh, best_import 27.68kWh
2026-08-16 10:50:05.193769: >> Region optimisation pass width 480 gives best_metric 618.02p, best_cost 634.73p, best_cycle 39.82kWh, best_import 27.68kWh
2026-08-16 10:50:05.901290: >> Region optimisation pass width 240 gives best_metric 614.62p, best_cost 631.19p, best_cycle 39.82kWh, best_import 27.68kWh
2026-08-16 10:50:07.223629: >> Region optimisation pass width 120 gives best_metric 614.62p, best_cost 631.19p, best_cycle 39.82kWh, best_import 27.68kWh
2026-08-16 10:50:07.224005: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 49
2026-08-16 10:50:07.224077: Optimise levels pass ended at 2026-08-16 10:50:07, duration 3.3 seconds tried 343 combinations
2026-08-16 10:50:07.224173: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 614.62p, best_keep 0kWh, best_cycle 39.82kWh, best_carbon 0kg, best_import 27.68kWh
2026-08-16 10:50:07.242514: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [0, 16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 10:50:11.124520: Tweak plan optimisation started metric 149.84p, cost 220.22p
2026-08-16 10:50:11.443076: Tweak optimisation finished metric 149.84p, cost 220.22p, metric_keep 0kWh, cycle 21.54kWh, carbon 0kg, import 12.76kWh, changed 8 window(s)
2026-08-16 10:50:11.463474: Swap charge optimisation started metric 149.84p, cost 220.22p, min_improvement_swap 0.1p
2026-08-16 10:50:15.489233: Swap charge optimisation finished metric 149.84p, cost 220.22p
2026-08-16 10:50:15.591605: Raw charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100% ] reserve 1.12
2026-08-16 10:50:15.592243: Unclipped charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:50:15.592528: Unfiltered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:50:15.592798: Filtered charge windows [ 16-08 10:30:00 - 16-08 11:00:00 @ 24.94p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 10:50:15.623002: Previous plan best metric is 149.84 (cost 220.22) and new plan best metric is 149.84 (cost 220.22)
2026-08-16 10:50:15.623231: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 10:50:15.623420: Plan valid is now true after recompute was False
2026-08-16 10:50:15.646410: predict base end_record 08-17 11:00:00, final soc 5.78kWh, metric 490.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.6kWh, PV 0.0kWh
2026-08-16 10:50:15.751194: Battery has 13.67 hours left - now at 7.04kWh
2026-08-16 10:50:15.787111: predict base10 end_record 08-17 11:00:00, final soc 5.0kWh, metric 486.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.31kWh, PV 0.0kWh
2026-08-16 10:50:15.864506: predict best10 end_record 08-17 11:00:00, final soc 2.71kWh, metric 292.42p, metric_keep 0kWh, min_soc 2.71kWh @ 08-17 10:55:00, load 21.31kWh, PV 0.0kWh
2026-08-16 10:50:15.933661: predict best end_record 08-17 11:00:00, final soc 3.32kWh, metric 270.2p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.6kWh, PV 0.0kWh
2026-08-16 10:50:15.933761: Saving plan best values to HA entities
2026-08-16 10:50:16.095302: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:50:16.102470: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:50:16.109916: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 12.76kWh, house 0.0kWh, export 0.0kWh, metric 270.2p, metric10 292.42p
2026-08-16 10:50:16.181331: Marginal costs baseline metric (no standing charge): 220.2209
2026-08-16 10:50:16.416334: Marginal energy costs matrix computed: min=0.0 max=27.78
2026-08-16 10:50:16.490370: Rate array import [{'start': 650, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 650, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:50:16.490807: - Your estimated bill for today is £2.20 and tomorrow is £7.13
2026-08-16 10:50:16.490874: - Import rates are expensive (24.9p) for the next 10 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:50:16.490902: - The battery is currently at 44% and is charging to 44% for the next 10 minutes.
2026-08-16 10:50:16.490922: - For the next 48 hours there will be no solar generation.
2026-08-16 10:50:16.490940: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:50:16.490978: 
2026-08-16 10:50:16.550974: Plan calculation took 12.80 seconds
2026-08-16 10:50:16.551422: Inverter 0: Type SK Sunsynk
2026-08-16 10:50:16.551480: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:50:16.551766: Reserve min: 7%, battery_min: 7%
2026-08-16 10:50:16.551892: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:50:16.552289: Inverter 0 SoC: 7.02kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -65W, current battery voltage 51.2V, grid power -410W, load power 351W, PV Power 0W
2026-08-16 10:50:16.552576: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:50:16.552719: Inverter 0 scheduled charge enable is True
2026-08-16 10:50:16.552808: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:50:16.553003: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:50:16.553190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:50:16.553233: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:50:16.553283: Inverter 0 scheduled discharge enable is False
2026-08-16 10:50:16.553478: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:50:16.553524: Inverter 0 discharge windows currently []
2026-08-16 10:50:16.553550: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:50:16.553593: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:50:16.553636: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:50:16.622118: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:50:16.622283: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:50:16.622440: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:50:16.622517: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:50:16.622643: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:50:16.622858: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:50:16.622976: No export window planned
2026-08-16 10:50:16.623092: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:50:16.623129: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:50:16.623268: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:50:16.623360: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:50:16.623420: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 7.04kWh
2026-08-16 10:50:16.623473: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:50:16.623582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623884: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623914: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623944: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.623977: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624003: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624028: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624053: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:50:16.624291: Inverter 0 count register writes 0
2026-08-16 10:50:16.648612: Total inverter register writes now 828
2026-08-16 10:50:16.687448: Info: Completed run status Hold charging
2026-08-16 10:50:16.694422: Info: record_status Hold charging target 44%-44%
2026-08-16 10:50:16.701967: Saved current settings to /config/predbat_config.json
2026-08-16 10:50:16.702295: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:50:56.818330: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:50:56.818655: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:50:56.818740: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:50:56.818995: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:50:56.819051: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:50:56.819076: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:50:56.819093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:52:15.376692: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 10:52:16.468247: Processing 1345 30-minute periods for power integration
2026-08-16 10:52:16.575022: ML Component: Car charging hold False, car energy reported load False
2026-08-16 10:52:16.679539: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:52:16.784336: ML Temperature data points: 49751
2026-08-16 10:52:17.073113: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 10:52:17.122817: ML Component: Data fetch completed, load data age 57.0 days, 16682 data points
2026-08-16 10:52:17.122968: ML Component: No training needed, model age is 0.75 hours
2026-08-16 10:52:17.123039: ML Component: Generating predictions load data age 57.0 days, 16682 data points
2026-08-16 10:52:17.267484: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0364 max_dow {0: 0.10211874996256083, 1: 0.10889687554407865, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.09651111107096075, 6: 0.10629687632601709}
2026-08-16 10:52:22.192045: ML Component: Generated 576 predictions (total 29.19 kWh over 48h)
2026-08-16 10:52:22.249544: ML Component: Prediction cycle completed
2026-08-16 10:52:22.380180: ML Component: Saved 16682 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 10:52:57.333943: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:52:57.334220: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:52:57.334264: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:52:57.334437: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:52:57.334477: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:52:57.334498: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:52:57.334516: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:55:00.561453: --------------- PredBat - update at 2026-08-16 10:55:00+01:00 with clock skew 0 minutes, minutes now 655
2026-08-16 10:55:00.562237: Saved current settings to /config/predbat_config.json
2026-08-16 10:55:00.562387: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 10:55:00.562467: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 10:55:00.562570: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 10:55:00.583247: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 10:55:00.583379: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 10:55:00.583546: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 10:55:00.584124: Cars 1 charging from battery False 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-16 10:55:00.584271: Predbat mode is set to Control charge & discharge
2026-08-16 10:55:00.778725: Found 21602 load_today datapoints going back 28 days
2026-08-16 10:55:00.778880: Using load_power data to fill gaps in load_today data
2026-08-16 10:55:01.637887: Processing 721 30-minute periods for power integration
2026-08-16 10:55:01.838003: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 10:55:01.838153: Car charging hold False, threshold 6.0kWh
2026-08-16 10:55:01.838201: Current data so far today: load 5.7kWh, import 0.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 10:55:01.852854: Cars: SoC: [12.892000000000001]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 10:55:01.853374: Standing charge is set to 49.98p
2026-08-16 10:55:01.900624: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 10:55:01.900799: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 10:55:01.901187: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 10:55:01.901621: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 15.0 minutes
2026-08-16 10:55:01.907919: Loaded 95 datapoints of futurerate analysis
2026-08-16 10:55:02.005197: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44']
2026-08-16 10:55:02.067040: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 10:55:02.067404: Import rates: min 0.0p, max 49.86p, average 30.58p
2026-08-16 10:55:02.110114: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 10:55:02.110248: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 10:55:02.111581: High export rate found rates in range 99p to -99p
2026-08-16 10:55:02.202645: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 10:55:02.202790: Car 0 charging is not planned as it is not plugged in
2026-08-16 10:55:02.215661: Battery level now 7.04kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.17p, rate_forward 1.0p
2026-08-16 10:55:02.216085: Last hour: net energy 0.14kWh, import 0.14kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.59p, import 3.59p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 10:55:02.272480: Today's energy total net 0.7kWh, import 0.7kWh, export 0.0kWh, cost 67.93p, import 17.94p, export 0.0p, carbon 0.0kg
2026-08-16 10:55:02.272621: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 10:55:02.356791: Using weighted-bucket historical load forecast over 14 days
2026-08-16 10:55:02.383198: Today's load divergence 94.61%, in-day adjustment 88.39%, damping 0.95x, yesterday 82.97% today 94.87% blend 54.51%
2026-08-16 10:55:02.383301: Today's predicted so far 6.45kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 6.45kWh forecast extra.
2026-08-16 10:55:02.383335: Today's actual load so far 5.65kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-16 10:55:02.421331: Inverter 0: Type SK Sunsynk
2026-08-16 10:55:02.421425: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 10:55:02.421610: Reserve min: 7%, battery_min: 7%
2026-08-16 10:55:02.421682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 10:55:02.421968: Inverter 0 SoC: 7.02kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -409W, load power 396W, PV Power 0W
2026-08-16 10:55:02.422150: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:55:02.422243: Inverter 0 scheduled charge enable is True
2026-08-16 10:55:02.422294: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 10:55:02.422395: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 10:55:02.422517: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:55:02.422553: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:55:02.422591: Inverter 0 scheduled discharge enable is False
2026-08-16 10:55:02.422709: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:55:02.422745: Inverter 0 discharge windows currently []
2026-08-16 10:55:02.422768: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:55:02.422791: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:55:02.422808: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:55:02.488338: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 10:55:02.488453: Plan was last updated on 2026-08-16 10:50:00+01:00 and is now 5.0 minutes old
2026-08-16 10:55:02.488773: Best charge window [ 16-08 10:00:00 - 16-08 11:00:00 @ 25.22p 44%, 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 10:55:02.488816: Best export window [  ]
2026-08-16 10:55:02.489742: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 10:55:02.492994: Load divergence over 8.0 hours mean 380.74W, min 240.6W, max 912.0W, std dev 111.4W, divergence 14.63%
2026-08-16 10:55:02.511299: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 10:55:02.511417: LoadML is_calculating False
2026-08-16 10:55:02.511483: Creating pool of 12 processes to match your CPU count
2026-08-16 10:55:02.635493: predict base end_record 08-17 11:05:00, final soc 6.16kWh, metric 503.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.68kWh, PV 0.0kWh
2026-08-16 10:55:02.766509: Battery has 13.58 hours left - now at 7.02kWh
2026-08-16 10:55:02.810579: predict base10 end_record 08-17 11:05:00, final soc 5.32kWh, metric 497.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.39kWh, PV 0.0kWh
2026-08-16 10:55:02.896800: predict best10 end_record 08-17 11:05:00, final soc 3.04kWh, metric 303.35p, metric_keep 0kWh, min_soc 2.72kWh @ 08-17 10:55:00, load 21.39kWh, PV 0.0kWh
2026-08-16 10:55:02.979511: predict best end_record 08-17 11:05:00, final soc 3.71kWh, metric 282.95p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.68kWh, PV 0.0kWh
2026-08-16 10:55:02.979610: Saving plan best values to HA entities
2026-08-16 10:55:03.151576: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 10:55:03.158154: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 10:55:03.165161: Best charging limit SoC's [7.0, 16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.22kWh, house 0.0kWh, export 0.0kWh, metric 282.95p, metric10 303.35p
2026-08-16 10:55:03.241753: Marginal costs baseline metric (no standing charge): 232.9658
2026-08-16 10:55:03.510627: Marginal energy costs matrix computed: min=0.0 max=28.01
2026-08-16 10:55:03.579084: Rate array import [{'start': 655, 'end': 660, 'rate': 'expensive', 'range': '(24.9p)'}, {'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 655, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 10:55:03.579434: - Your estimated bill for today is £2.20 and tomorrow is £7.14
2026-08-16 10:55:03.579474: - Import rates are expensive (24.9p) for the next 5 minutes and then free (0.0p) for the next 1 hour.
2026-08-16 10:55:03.579493: - The battery is currently at 44% and is charging to 44% for the next 5 minutes.
2026-08-16 10:55:03.579508: - For the next 48 hours there will be no solar generation.
2026-08-16 10:55:03.579522: - You will reach a minimum of 21% battery in 24 hours.
2026-08-16 10:55:03.579536: 
2026-08-16 10:55:03.633597: Plan calculation took 1.15 seconds
2026-08-16 10:55:03.638512: No high rate period found
2026-08-16 10:55:03.686806: Import threshold used for optimisation was 24.94p
2026-08-16 10:55:03.747961: Low import rate windows [0: 08-16 10:30:00 - 08-16 11:00:00 @ 24.94, 1: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 2: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 3: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 4: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 5: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 6: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 7: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 8: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 9: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 10: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 11: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 12: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 13: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 14: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 15: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 16: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 17: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 18: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 19: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 20: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 21: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 22: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 23: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 24: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 25: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 26: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 27: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 28: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 29: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 30: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 31: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 32: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 33: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 34: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 35: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 36: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 37: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 38: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 39: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 40: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 41: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 42: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 43: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 44: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 45: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 46: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 47: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 48: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 49: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 50: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 51: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 52: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 53: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 54: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 55: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 56: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 57: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 58: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 59: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 60: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 61: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 62: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 63: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 64: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 65: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 66: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 67: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 68: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 69: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 70: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 71: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 72: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 73: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 74: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 75: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 76: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 77: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 78: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 79: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 80: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 81: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 82: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 83: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 84: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 85: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 86: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 87: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 88: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 89: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 90: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 91: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 92: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 93: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 94: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 95: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 10:55:03.753940: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 10:00:00
2026-08-16 10:55:03.754068: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 44%
2026-08-16 10:55:03.754253: Inverter 0 Target SoC 44%, (this inverter 44%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 10:55:03.754336: Inverter 0 Hold charging as SoC 44% is above target SoC 44% (global soc target 44%) set_discharge_during_charge True
2026-08-16 10:55:03.754473: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:55:03.754677: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:55:03.754789: No export window planned
2026-08-16 10:55:03.754893: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 10:55:03.754923: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 10:55:03.755052: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 10:55:03.755156: Inverter 0 setting charging SoC to 44% as per target
2026-08-16 10:55:03.755217: Inverter 0 adjust target SoC for charge to 44% (7.04kWh/16.0kWh 16.0kWh) based on going from 44% -> 44% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 7.04kWh
2026-08-16 10:55:03.755275: Inverter 0 Current Target SoC is 44%, already at target
2026-08-16 10:55:03.755371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755580: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755608: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755633: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755658: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755682: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755710: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755730: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.755967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.756032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 10:55:03.756060: Inverter 0 count register writes 0
2026-08-16 10:55:03.770661: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 10:55:03.775597: Total inverter register writes now 828
2026-08-16 10:55:03.804851: Info: Completed run status Hold charging
2026-08-16 10:55:03.811524: Info: record_status Hold charging target 44%-44%
2026-08-16 10:55:03.817601: Saved current settings to /config/predbat_config.json
2026-08-16 10:55:03.817866: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 10:55:41.925760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:55:41.926074: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:55:41.926127: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:55:41.926284: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:55:41.926330: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:55:41.926352: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:55:41.926375: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:57:42.156286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:57:42.156662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:57:42.156719: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:57:42.156891: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:57:42.157013: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:57:42.157060: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:57:42.157082: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 10:59:42.387500: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 10:59:42.387828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 10:59:42.387900: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 10:59:42.388139: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 10:59:42.388195: Note: Inverter does not support discharge freeze - disabled
2026-08-16 10:59:42.388235: Note: Inverter does not support charge freeze - disabled
2026-08-16 10:59:42.388256: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:00:00.496659: --------------- PredBat - update at 2026-08-16 11:00:00+01:00 with clock skew 0 minutes, minutes now 660
2026-08-16 11:00:00.497685: Saved current settings to /config/predbat_config.json
2026-08-16 11:00:00.497847: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 11:00:00.498000: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:00:00.498147: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:00:00.521634: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:00:00.521845: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:00:00.522155: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:00:00.523217: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:00:00.523456: Predbat mode is set to Control charge & discharge
2026-08-16 11:00:00.771481: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:00:00.771672: Using load_power data to fill gaps in load_today data
2026-08-16 11:00:01.700856: Processing 721 30-minute periods for power integration
2026-08-16 11:00:01.919748: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:00:01.920147: Car charging hold False, threshold 6.0kWh
2026-08-16 11:00:01.920214: Current data so far today: load 5.6kWh, import 0.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:00:01.939804: Cars: SoC: [8.204]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:00:01.940829: Standing charge is set to 49.98p
2026-08-16 11:00:01.996753: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:00:01.996864: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:00:01.997170: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 11:00:01.997692: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 20.0 minutes
2026-08-16 11:00:02.005543: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:00:02.115435: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:00:02.184607: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:00:02.185592: Import rates: min 0.0p, max 49.86p, average 30.59p
2026-08-16 11:00:02.229940: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:00:02.230076: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:00:02.231306: High export rate found rates in range 99p to -99p
2026-08-16 11:00:02.330033: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:00:02.330453: Car 0 plan charging from 8.204kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}], ready by 16:00:00
2026-08-16 11:00:02.331403: Car 0 charging plan is: [{'start': 660, 'end': 690, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 890, 'kwh': 2.276, 'average': 21.65, 'cost': 49.28, 'octopus': False}]
2026-08-16 11:00:02.353952: Battery level now 7.02kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour -0.02p, change today -5.18p, rate_forward 1.0p
2026-08-16 11:00:02.354281: Last hour: net energy 0.24kWh, import 0.24kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 5.91p, import 5.91p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:00:02.433698: Today's energy total net 0.8kWh, import 0.8kWh, export 0.0kWh, cost 70.42p, import 20.44p, export 0.0p, carbon 0.0kg
2026-08-16 11:00:02.433872: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:00:02.529020: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:00:02.552255: Today's load divergence 93.45%, in-day adjustment 87.92%, damping 0.95x, yesterday 82.97% today 93.78% blend 54.17%
2026-08-16 11:00:02.552351: Today's predicted so far 6.58kWh with 0.0kWh car/iBoost excluded, 0.07kWh import ignored, and 6.58kWh forecast extra.
2026-08-16 11:00:02.552379: Today's actual load so far 5.62kWh with 0.0kWh car/iBoost excluded, and 0.07kWh import ignored.
2026-08-16 11:00:02.597832: Inverter 0: Type SK Sunsynk
2026-08-16 11:00:02.598214: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:00:02.598628: Reserve min: 7%, battery_min: 7%
2026-08-16 11:00:02.599959: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:00:02.600559: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -18W, current battery voltage 51.2V, grid power -337W, load power 320W, PV Power 0W
2026-08-16 11:00:02.600873: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:00:02.601104: Inverter 0 scheduled charge enable is True
2026-08-16 11:00:02.601213: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:00:02.601420: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 44.0%, power 5.0kW
2026-08-16 11:00:02.601681: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:00:02.601751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:00:02.601840: Inverter 0 scheduled discharge enable is False
2026-08-16 11:00:02.602094: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:00:02.602167: Inverter 0 discharge windows currently []
2026-08-16 11:00:02.602219: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:00:02.602283: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:00:02.602328: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:00:02.686977: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:00:02.687111: Plan was last updated on 2026-08-16 10:50:00+01:00 and is now 10.0 minutes old
2026-08-16 11:00:02.687160: Current charge window has expired, removing it
2026-08-16 11:00:02.687588: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 11:00:02.687649: Best export window [  ]
2026-08-16 11:00:02.689026: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:00:02.694722: Load divergence over 8.0 hours mean 382.27W, min 253.2W, max 1097.4W, std dev 115.19W, divergence 15.07%
2026-08-16 11:00:02.720479: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:00:02.720614: LoadML is_calculating False
2026-08-16 11:00:02.720682: Creating pool of 12 processes to match your CPU count
2026-08-16 11:00:02.863050: predict base end_record 08-17 11:10:00, final soc 6.55kWh, metric 516.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.56kWh, PV 0.0kWh
2026-08-16 11:00:03.024690: Battery has 13.5 hours left - now at 7.04kWh
2026-08-16 11:00:03.074597: predict base10 end_record 08-17 11:10:00, final soc 5.65kWh, metric 508.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.27kWh, PV 0.0kWh
2026-08-16 11:00:03.169098: predict best10 end_record 08-17 11:10:00, final soc 3.37kWh, metric 315.02p, metric_keep 0kWh, min_soc 2.73kWh @ 08-17 10:55:00, load 21.27kWh, PV 0.0kWh
2026-08-16 11:00:03.278025: predict best end_record 08-17 11:10:00, final soc 4.11kWh, metric 296.54p, metric_keep 0kWh, min_soc 3.33kWh @ 08-17 10:55:00, load 20.56kWh, PV 0.0kWh
2026-08-16 11:00:03.278997: Saving plan best values to HA entities
2026-08-16 11:00:03.558353: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:00:03.567731: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:00:03.578639: Best charging limit SoC's [16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.62kWh, house 0.0kWh, export 0.0kWh, metric 296.54p, metric10 315.02p
2026-08-16 11:00:03.692252: Marginal costs baseline metric (no standing charge): 246.5527
2026-08-16 11:00:04.040922: Marginal energy costs matrix computed: min=0.0 max=28.21
2026-08-16 11:00:04.138054: Rate array import [{'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 660, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:00:04.138542: - Your estimated bill for today is £2.20 and tomorrow is £7.11
2026-08-16 11:00:04.138600: - Import rates are free (0.0p) for the next 1 hour and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:00:04.138624: - The battery is currently at 44% and is charging to 73% for the next 1 hour.
2026-08-16 11:00:04.138643: - For the next 48 hours there will be no solar generation.
2026-08-16 11:00:04.138662: - You will reach a minimum of 21% battery in 23 hours.
2026-08-16 11:00:04.138679: - Your car is currently charging.
2026-08-16 11:00:04.138696: 
2026-08-16 11:00:04.204818: Plan calculation took 1.52 seconds
2026-08-16 11:00:04.208546: No high rate period found
2026-08-16 11:00:04.294182: Import threshold used for optimisation was 24.94p
2026-08-16 11:00:04.377278: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53]
2026-08-16 11:00:04.387795: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:00:04.387928: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 11:00:04.388193: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:00:04.388505: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:00:04.388785: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:00:04.388897: No export window planned
2026-08-16 11:00:04.389077: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:00:04.389121: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:00:04.389300: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:00:04.389437: Car charging from battery is off, next slot for car 0 is 08-16 11:00:00 - 08-16 11:30:00
2026-08-16 11:00:04.389520: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:00:04.389573: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:00:04.389613: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:00:04.389674: Inverter 0 Current charge limit is 44% and new target is 100%
2026-08-16 11:00:09.490753: Inverter 0 write_and_poll_value: Wrote 100 to charge_limit, successfully now 100.0
2026-08-16 11:00:09.491029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:09.491332: 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-16 11:00:09.568895: 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-16 11:00:09.672820: 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-16 11:00:09.776673: 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-16 11:00:09.880695: 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-16 11:00:09.984397: 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-16 11:00:10.087994: 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-16 11:00:10.192575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:10.192840: Inverter 0 count register writes 1
2026-08-16 11:00:10.214146: 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-16 11:00:10.214371: Recompute is saving previous plan...
2026-08-16 11:00:10.217494: Best charge window [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 44%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 44%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 44%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 44%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 44%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 44%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 44%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 44%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 44%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 44%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 44%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 44%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 44%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 44%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 44%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 44%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 44%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 44%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 44%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 44%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 44%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 44%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 44%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 44%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 44%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 44%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 44%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 44%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 44%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 44%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 44%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 44%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 44%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 44%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 44%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 44%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 44%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 44%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 44%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 44%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 44%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 44%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 44%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 44%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 44%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 44%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 44%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 44%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 44%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 44%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 44%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 44%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 44%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 44%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 44%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 44%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 44%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 44%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 44%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 44%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 44%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 44%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 44%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 44%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 44%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 44%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 44%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 44%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 44%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 44%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 44%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 44%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 44%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 44%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 44%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 44%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 44%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 44%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 44%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 44%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 44%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 44%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 44%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 44%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 44% ]
2026-08-16 11:00:10.217576: Best export window [  ]
2026-08-16 11:00:10.218355: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:00:10.221424: Load divergence over 8.0 hours mean 382.27W, min 253.2W, max 1097.4W, std dev 115.19W, divergence 15.07%
2026-08-16 11:00:10.238568: Calculating data from yesterday for savings calculation
2026-08-16 11:00:10.250890: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 11:00:10.298615: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 11:00:10.313952: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 11:00:10.335132: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 11:00:10.371772: Yesterday: Predbat disabled was £3.46 (adjusted £3.2) vs £5.77 (adjusted £2.98), saving £-2.31 (adjusted £0.22) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 25.58kWh
2026-08-16 11:00:10.481163: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 11:00:10.481335: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £2.98), saving £-1.93 (adjusted £0.86) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 11:00:10.553336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:00:10.553893: LoadML is_calculating False
2026-08-16 11:00:10.553992: Creating pool of 12 processes to match your CPU count
2026-08-16 11:00:10.640375: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 11:00:10.661407: 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(0.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-16 11:00:10.663590: Optimise levels pass started at 2026-08-16 11:00:10
2026-08-16 11:00:10.663673: Optimise all windows, total charge 95 export 1
2026-08-16 11:00:11.423073: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 11:00:11.605548: >> Region optimisation pass width 960 gives best_metric 620.76p, best_cost 637.29p, best_cycle 37.65kWh, best_import 27.53kWh
2026-08-16 11:00:12.045917: >> Region optimisation pass width 480 gives best_metric 620.76p, best_cost 637.29p, best_cycle 37.65kWh, best_import 27.53kWh
2026-08-16 11:00:12.987584: >> Region optimisation pass width 240 gives best_metric 617.83p, best_cost 634.42p, best_cycle 39.61kWh, best_import 27.67kWh
2026-08-16 11:00:14.584368: >> Region optimisation pass width 120 gives best_metric 617.83p, best_cost 634.42p, best_cycle 39.61kWh, best_import 27.67kWh
2026-08-16 11:00:14.584735: Calculated end_record as 08-17 11:00:00 based on best_price 26.72p, next_charge_start 08-16 11:00:00, max_windows 48
2026-08-16 11:00:14.584811: Optimise levels pass ended at 2026-08-16 11:00:14, duration 3.9 seconds tried 317 combinations
2026-08-16 11:00:14.584884: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 617.83p, best_keep 0kWh, best_cycle 39.61kWh, best_carbon 0kg, best_import 27.67kWh
2026-08-16 11:00:14.607398: Starting detailed optimisation end_record 08-17 11:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [16.0, 16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 11:00:18.781564: Tweak plan optimisation started metric 149.47p, cost 220.13p
2026-08-16 11:00:19.065308: Tweak optimisation finished metric 149.47p, cost 220.13p, metric_keep 0kWh, cycle 21.53kWh, carbon 0kg, import 12.65kWh, changed 8 window(s)
2026-08-16 11:00:19.090681: Swap charge optimisation started metric 149.47p, cost 220.13p, min_improvement_swap 0.1p
2026-08-16 11:00:23.101817: Swap charge optimisation finished metric 149.47p, cost 220.13p
2026-08-16 11:00:23.232852: Raw charge windows [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100% ] reserve 1.12
2026-08-16 11:00:23.233638: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 11:00:23.233996: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 11:00:23.234361: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:00:00 @ 28.01p 100% ] reserve 1.12
2026-08-16 11:00:23.280328: Previous plan best metric is 149.47 (cost 220.13) and new plan best metric is 149.47 (cost 220.13)
2026-08-16 11:00:23.281163: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 11:00:23.281409: Plan valid is now true after recompute was False
2026-08-16 11:00:23.311414: predict base end_record 08-17 11:00:00, final soc 5.78kWh, metric 490.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:30:00, load 20.43kWh, PV 0.0kWh
2026-08-16 11:00:23.438767: Battery has 13.5 hours left - now at 7.04kWh
2026-08-16 11:00:23.486099: predict base10 end_record 08-17 11:00:00, final soc 5.0kWh, metric 486.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 00:15:00, load 21.13kWh, PV 0.0kWh
2026-08-16 11:00:23.566878: predict best10 end_record 08-17 11:00:00, final soc 2.73kWh, metric 292.21p, metric_keep 0kWh, min_soc 2.73kWh @ 08-17 10:55:00, load 21.13kWh, PV 0.0kWh
2026-08-16 11:00:23.653497: predict best end_record 08-17 11:00:00, final soc 3.33kWh, metric 270.12p, metric_keep 0kWh, min_soc 3.33kWh @ 08-17 10:55:00, load 20.43kWh, PV 0.0kWh
2026-08-16 11:00:23.654240: Saving plan best values to HA entities
2026-08-16 11:00:23.817872: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:00:23.823414: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:00:23.828783: Best charging limit SoC's [16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 12.65kWh, house 0.0kWh, export 0.0kWh, metric 270.12p, metric10 292.21p
2026-08-16 11:00:23.907840: Marginal costs baseline metric (no standing charge): 220.1336
2026-08-16 11:00:24.221371: Marginal energy costs matrix computed: min=0.0 max=28.21
2026-08-16 11:00:24.304469: Rate array import [{'start': 660, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2100, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 660, 'end': 2100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:00:24.304926: - Your estimated bill for today is £2.20 and tomorrow is £7.11
2026-08-16 11:00:24.305056: - Import rates are free (0.0p) for the next 1 hour and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:00:24.305099: - The battery is currently at 44% and is charging to 73% for the next 1 hour.
2026-08-16 11:00:24.305120: - For the next 48 hours there will be no solar generation.
2026-08-16 11:00:24.305138: - You will reach a minimum of 21% battery in 23 hours.
2026-08-16 11:00:24.305155: - Your car is currently charging.
2026-08-16 11:00:24.305172: 
2026-08-16 11:00:24.376796: Plan calculation took 14.16 seconds
2026-08-16 11:00:24.377324: Inverter 0: Type SK Sunsynk
2026-08-16 11:00:24.377402: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:00:24.377633: Reserve min: 7%, battery_min: 7%
2026-08-16 11:00:24.377714: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:00:24.378049: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -262W, current battery voltage 51.2V, grid power -578W, load power 337W, PV Power 0W
2026-08-16 11:00:24.378311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:00:24.378415: Inverter 0 scheduled charge enable is True
2026-08-16 11:00:24.378474: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:00:24.378572: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:00:24.378700: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:00:24.378737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:00:24.378774: Inverter 0 scheduled discharge enable is False
2026-08-16 11:00:24.378904: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:00:24.378941: Inverter 0 discharge windows currently []
2026-08-16 11:00:24.378964: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:00:24.378983: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:00:24.379005: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:00:24.439811: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:00:24.439981: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 11:00:24.440127: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:00:24.440324: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:00:24.440521: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:00:24.440610: No export window planned
2026-08-16 11:00:24.440733: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:00:24.440770: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:00:24.440908: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:00:24.441119: Car charging from battery is off, next slot for car 0 is 08-16 11:00:00 - 08-16 11:30:00
2026-08-16 11:00:24.441227: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:00:24.441301: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:00:24.441346: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:00:24.441398: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:00:24.441518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441753: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441789: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441819: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441849: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441875: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441902: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441926: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.441991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:00:24.442172: Inverter 0 count register writes 0
2026-08-16 11:00:24.469376: Total inverter register writes now 829
2026-08-16 11:00:24.508337: Info: Completed run status Charging, Hold for car
2026-08-16 11:00:24.777734: Info: record_status Charging, Hold for car target 44%-100.0%
2026-08-16 11:00:24.784799: Saved current settings to /config/predbat_config.json
2026-08-16 11:00:24.785192: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:00:56.896857: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:00:56.897240: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:00:56.897344: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:00:56.897582: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:00:56.897648: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:00:56.897704: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:00:56.897749: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:02:57.123542: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:02:57.123786: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:02:57.123849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:02:57.123981: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:02:57.124015: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:02:57.124032: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:02:57.124047: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:04:57.335905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:04:57.336186: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:04:57.336225: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:04:57.336391: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:04:57.336448: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:04:57.336472: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:04:57.336490: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:05:00.416165: --------------- PredBat - update at 2026-08-16 11:05:00+01:00 with clock skew 0 minutes, minutes now 665
2026-08-16 11:05:00.417095: Saved current settings to /config/predbat_config.json
2026-08-16 11:05:00.417278: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 11:05:00.417449: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:05:00.417586: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:05:00.439236: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:05:00.439367: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:05:00.439567: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:05:00.440075: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:05:00.440202: Predbat mode is set to Control charge & discharge
2026-08-16 11:05:00.670383: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:05:00.670851: Using load_power data to fill gaps in load_today data
2026-08-16 11:05:01.602312: Processing 721 30-minute periods for power integration
2026-08-16 11:05:01.859718: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:05:01.859878: Car charging hold False, threshold 6.0kWh
2026-08-16 11:05:01.859926: Current data so far today: load 5.6kWh, import 0.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:05:01.875879: Cars: SoC: [8.204]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:05:01.877457: Standing charge is set to 49.98p
2026-08-16 11:05:01.931331: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:05:01.931457: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:05:01.931669: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 11:05:01.932109: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 25.0 minutes
2026-08-16 11:05:01.938310: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:05:02.041852: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:05:02.112518: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:05:02.113048: Import rates: min 0.0p, max 49.86p, average 30.63p
2026-08-16 11:05:02.160141: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:05:02.160293: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:05:02.161611: High export rate found rates in range 99p to -99p
2026-08-16 11:05:02.263382: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:05:02.263829: Car 0 plan charging from 8.204kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:05:02.265961: Car 0 charging plan is: [{'start': 665, 'end': 690, 'kwh': 3.083, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 895, 'kwh': 2.892, 'average': 21.65, 'cost': 62.62, 'octopus': False}]
2026-08-16 11:05:02.321940: Battery level now 7.04kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.17p, rate_forward 1.0p
2026-08-16 11:05:02.322330: Last hour: net energy 0.23kWh, import 0.23kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 5.73p, import 5.73p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:05:02.416399: Today's energy total net 0.8kWh, import 0.8kWh, export 0.0kWh, cost 70.42p, import 20.44p, export 0.0p, carbon 0.0kg
2026-08-16 11:05:02.416657: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:05:02.516604: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:05:02.544574: Today's load divergence 93.02%, in-day adjustment 87.77%, damping 0.95x, yesterday 82.97% today 93.37% blend 53.82%
2026-08-16 11:05:02.544679: Today's predicted so far 6.7kWh with 0.0kWh car/iBoost excluded, 0.1kWh import ignored, and 6.7kWh forecast extra.
2026-08-16 11:05:02.544711: Today's actual load so far 5.68kWh with 0.0kWh car/iBoost excluded, and 0.1kWh import ignored.
2026-08-16 11:05:02.585522: Inverter 0: Type SK Sunsynk
2026-08-16 11:05:02.585616: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:05:02.585799: Reserve min: 7%, battery_min: 7%
2026-08-16 11:05:02.585869: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:05:02.586136: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 0W, current battery power -4471W, current battery voltage 51.2V, grid power -5264W, load power 268W, PV Power 0W
2026-08-16 11:05:02.586306: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:05:02.586396: Inverter 0 scheduled charge enable is True
2026-08-16 11:05:02.586463: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:05:02.586556: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:05:02.586678: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:05:02.586713: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:05:02.586749: Inverter 0 scheduled discharge enable is False
2026-08-16 11:05:02.586871: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:05:02.586907: Inverter 0 discharge windows currently []
2026-08-16 11:05:02.586929: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:05:02.586951: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:05:02.586968: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:05:02.649848: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:05:02.649960: Plan was last updated on 2026-08-16 11:00:00+01:00 and is now 5.0 minutes old
2026-08-16 11:05:02.650240: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 11:05:02.650283: Best export window [  ]
2026-08-16 11:05:02.651202: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:05:02.654391: Load divergence over 8.0 hours mean 385.39W, min 261.0W, max 1026.0W, std dev 116.26W, divergence 15.08%
2026-08-16 11:05:02.673457: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:05:02.673592: LoadML is_calculating False
2026-08-16 11:05:02.673665: Creating pool of 12 processes to match your CPU count
2026-08-16 11:05:02.808673: predict base end_record 08-17 11:05:00, final soc 9.11kWh, metric 455.99p, metric_keep 0kWh, min_soc 4.07kWh @ 08-17 09:55:00, load 20.44kWh, PV 0.0kWh
2026-08-16 11:05:02.960079: Battery has 48.0 hours left - now at 7.04kWh
2026-08-16 11:05:03.007503: predict base10 end_record 08-17 11:05:00, final soc 7.7kWh, metric 451.68p, metric_keep 0kWh, min_soc 3.5kWh @ 08-17 09:55:00, load 21.14kWh, PV 0.0kWh
2026-08-16 11:05:03.092598: predict best10 end_record 08-17 11:05:00, final soc 3.05kWh, metric 311.78p, metric_keep 0kWh, min_soc 2.73kWh @ 08-17 10:55:00, load 21.14kWh, PV 0.0kWh
2026-08-16 11:05:03.181132: predict best end_record 08-17 11:05:00, final soc 3.72kWh, metric 292.89p, metric_keep 0kWh, min_soc 3.33kWh @ 08-17 10:55:00, load 20.44kWh, PV 0.0kWh
2026-08-16 11:05:03.181234: Saving plan best values to HA entities
2026-08-16 11:05:03.363923: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:05:03.370354: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:05:03.377030: Best charging limit SoC's [16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.08kWh, house 0.0kWh, export 0.0kWh, metric 292.89p, metric10 311.78p
2026-08-16 11:05:03.457871: Marginal costs baseline metric (no standing charge): 242.9062
2026-08-16 11:05:03.778881: Marginal energy costs matrix computed: min=0.0 max=28.28
2026-08-16 11:05:03.855566: Rate array import [{'start': 665, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2105, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 665, 'end': 2105, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:05:03.855972: - Your estimated bill for today is £2.30 and tomorrow is £7.09
2026-08-16 11:05:03.856017: - Import rates are free (0.0p) for the next 55 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:05:03.856038: - The battery is currently at 44% and is charging to 73% for the next 55 minutes.
2026-08-16 11:05:03.856056: - For the next 48 hours there will be no solar generation.
2026-08-16 11:05:03.856073: - You will reach a minimum of 21% battery in 23 hours.
2026-08-16 11:05:03.856090: - Your car is currently charging.
2026-08-16 11:05:03.856107: 
2026-08-16 11:05:03.917325: Plan calculation took 1.27 seconds
2026-08-16 11:05:03.921373: No high rate period found
2026-08-16 11:05:03.977486: Import threshold used for optimisation was 23.43p
2026-08-16 11:05:04.041540: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 95: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:05:04.052262: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:05:04.052407: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 44%, target 100%
2026-08-16 11:05:04.052612: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:05:04.052837: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:05:04.053155: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:05:04.053272: No export window planned
2026-08-16 11:05:04.053409: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:05:04.053467: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:05:04.053610: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:05:04.053720: Car charging from battery is off, next slot for car 0 is 08-16 11:05:00 - 08-16 11:30:00
2026-08-16 11:05:04.053793: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:05:04.053839: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:05:04.053899: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:05:04.053957: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:05:04.054073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054288: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054317: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054345: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054371: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054404: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054513: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054594: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:05:04.054886: Inverter 0 count register writes 0
2026-08-16 11:05:04.071970: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:05:04.078306: Total inverter register writes now 829
2026-08-16 11:05:04.112297: Info: Completed run status Charging, Hold for car
2026-08-16 11:05:04.119260: Info: record_status Charging, Hold for car target 44%-100.0%
2026-08-16 11:05:04.126667: Saved current settings to /config/predbat_config.json
2026-08-16 11:05:04.127083: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:05:42.250097: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:05:42.250432: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:05:42.250521: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:05:42.250787: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:05:42.250830: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:05:42.250851: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:05:42.250869: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:07:02.876969: Info: HAHistory: Pruning history data started.
2026-08-16 11:07:02.880915: Info: HAHistory: Pruning history data completed.
2026-08-16 11:07:42.477029: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:07:42.477371: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:07:42.477424: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:07:42.477631: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:07:42.477680: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:07:42.477710: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:07:42.477740: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:09:56.726853: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:09:56.727157: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:09:56.727203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:09:56.727363: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:09:56.727427: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:09:56.727448: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:09:56.727466: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:10:00.810116: --------------- PredBat - update at 2026-08-16 11:10:00+01:00 with clock skew 0 minutes, minutes now 670
2026-08-16 11:10:00.810948: Saved current settings to /config/predbat_config.json
2026-08-16 11:10:00.811117: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 11:10:00.811185: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:10:00.811275: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:10:00.831365: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:10:00.831492: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:10:00.831676: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:10:00.832268: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:10:00.832390: Predbat mode is set to Control charge & discharge
2026-08-16 11:10:01.018994: Found 21602 load_today datapoints going back 27 days
2026-08-16 11:10:01.019171: Using load_power data to fill gaps in load_today data
2026-08-16 11:10:01.902617: Processing 721 30-minute periods for power integration
2026-08-16 11:10:02.088611: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:10:02.088781: Car charging hold False, threshold 6.0kWh
2026-08-16 11:10:02.088839: Current data so far today: load 5.72kWh, import 1.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:10:02.104380: Cars: SoC: [9.962]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:10:02.104996: Standing charge is set to 49.98p
2026-08-16 11:10:02.152910: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:10:02.153074: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:10:02.153375: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 11:10:02.153849: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 30.0 minutes
2026-08-16 11:10:02.160095: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:10:02.258017: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:10:02.316584: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:10:02.317045: Import rates: min 0.0p, max 49.86p, average 30.68p
2026-08-16 11:10:02.352236: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:10:02.352361: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:10:02.353589: High export rate found rates in range 99p to -99p
2026-08-16 11:10:02.429417: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:10:02.429856: Car 0 plan charging from 9.962kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:10:02.430779: Car 0 charging plan is: [{'start': 670, 'end': 690, 'kwh': 2.467, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 885, 'kwh': 1.599, 'average': 21.65, 'cost': 34.62, 'octopus': False}]
2026-08-16 11:10:02.443876: Battery level now 7.04kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.17p, rate_forward 1.0p
2026-08-16 11:10:02.444282: Last hour: net energy 0.62kWh, import 0.62kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 9.53p, import 9.53p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:10:02.492492: Today's energy total net 1.2kWh, import 1.2kWh, export 0.0kWh, cost 75.41p, import 25.42p, export 0.0p, carbon 0.0kg
2026-08-16 11:10:02.492621: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:10:02.575260: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:10:02.597429: Today's load divergence 93.6%, in-day adjustment 88.06%, damping 0.95x, yesterday 82.97% today 93.92% blend 53.47%
2026-08-16 11:10:02.597508: Today's predicted so far 6.72kWh with 0.0kWh car/iBoost excluded, 0.35kWh import ignored, and 6.72kWh forecast extra.
2026-08-16 11:10:02.597534: Today's actual load so far 5.78kWh with 0.0kWh car/iBoost excluded, and 0.35kWh import ignored.
2026-08-16 11:10:02.627936: Inverter 0: Type SK Sunsynk
2026-08-16 11:10:02.628031: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:10:02.628237: Reserve min: 7%, battery_min: 7%
2026-08-16 11:10:02.628334: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:10:02.628644: Inverter 0 SoC: 7.14kW 45%, current charge rate 5000W, current discharge rate 0W, current battery power -4479W, current battery voltage 51.2V, grid power -5426W, load power 430W, PV Power 0W
2026-08-16 11:10:02.628808: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:10:02.628918: Inverter 0 scheduled charge enable is True
2026-08-16 11:10:02.629022: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:10:02.629141: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:10:02.629280: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:10:02.629330: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:10:02.629381: Inverter 0 scheduled discharge enable is False
2026-08-16 11:10:02.629527: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:10:02.629576: Inverter 0 discharge windows currently []
2026-08-16 11:10:02.629609: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:10:02.629637: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:10:02.629652: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:10:02.685679: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:10:02.685790: Plan was last updated on 2026-08-16 11:00:00+01:00 and is now 10.0 minutes old
2026-08-16 11:10:02.686082: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 72%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 10:30:00 @ 28.48p 100% ]
2026-08-16 11:10:02.686128: Best export window [  ]
2026-08-16 11:10:02.686962: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:10:02.690157: Load divergence over 8.0 hours mean 380.83W, min 250.2W, max 797.4W, std dev 99.5W, divergence 13.06%
2026-08-16 11:10:02.709649: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:10:02.709771: LoadML is_calculating False
2026-08-16 11:10:02.709860: Creating pool of 12 processes to match your CPU count
2026-08-16 11:10:02.830742: predict base end_record 08-17 11:10:00, final soc 9.49kWh, metric 481.06p, metric_keep 0kWh, min_soc 4.06kWh @ 08-17 09:55:00, load 20.58kWh, PV 0.0kWh
2026-08-16 11:10:02.959818: Battery has 48.0 hours left - now at 7.14kWh
2026-08-16 11:10:02.997870: predict base10 end_record 08-17 11:10:00, final soc 8.01kWh, metric 473.37p, metric_keep 0kWh, min_soc 3.49kWh @ 08-17 09:55:00, load 21.29kWh, PV 0.0kWh
2026-08-16 11:10:03.069164: predict best10 end_record 08-17 11:10:00, final soc 3.36kWh, metric 333.62p, metric_keep 0kWh, min_soc 2.72kWh @ 08-17 10:55:00, load 21.29kWh, PV 0.0kWh
2026-08-16 11:10:03.141574: predict best end_record 08-17 11:10:00, final soc 4.1kWh, metric 318.17p, metric_keep 0kWh, min_soc 3.32kWh @ 08-17 10:55:00, load 20.58kWh, PV 0.0kWh
2026-08-16 11:10:03.141668: Saving plan best values to HA entities
2026-08-16 11:10:03.317994: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:10:03.324198: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:10:03.329269: Best charging limit SoC's [16.0, 11.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 13.39kWh, house 0.0kWh, export 0.0kWh, metric 318.17p, metric10 333.62p
2026-08-16 11:10:03.405308: Marginal costs baseline metric (no standing charge): 268.1832
2026-08-16 11:10:03.661821: Marginal energy costs matrix computed: min=0.0 max=28.45
2026-08-16 11:10:03.733832: Rate array import [{'start': 670, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2110, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 670, 'end': 2110, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:10:03.734287: - Your estimated bill for today is £2.42 and tomorrow is £7.11
2026-08-16 11:10:03.734339: - Import rates are free (0.0p) for the next 50 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:10:03.734375: - The battery is currently at 45% and is charging to 73% for the next 50 minutes.
2026-08-16 11:10:03.734403: - For the next 48 hours there will be no solar generation.
2026-08-16 11:10:03.734441: - You will reach a minimum of 21% battery in 23 hours.
2026-08-16 11:10:03.734465: - Your car is currently charging.
2026-08-16 11:10:03.734489: 
2026-08-16 11:10:03.789813: Plan calculation took 1.10 seconds
2026-08-16 11:10:03.792596: No high rate period found
2026-08-16 11:10:03.846724: Import threshold used for optimisation was 23.43p
2026-08-16 11:10:03.894704: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 95: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:10:03.902085: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:10:03.902222: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 45%, target 100%
2026-08-16 11:10:03.902377: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:10:03.902558: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:10:03.902772: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:10:03.902864: No export window planned
2026-08-16 11:10:03.902984: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:10:03.903016: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:10:03.903131: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:10:03.903223: Car charging from battery is off, next slot for car 0 is 08-16 11:10:00 - 08-16 11:30:00
2026-08-16 11:10:03.903308: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:10:03.903349: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:10:03.903381: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:10:03.903429: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:10:03.903532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903738: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903768: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903814: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903857: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903878: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903898: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.903993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:03.904109: Inverter 0 count register writes 0
2026-08-16 11:10:03.919056: 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-16 11:10:03.919231: Recompute is saving previous plan...
2026-08-16 11:10:03.921893: Best charge window [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ]
2026-08-16 11:10:03.921993: Best export window [  ]
2026-08-16 11:10:03.922659: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:10:03.925194: Load divergence over 8.0 hours mean 380.83W, min 250.2W, max 797.4W, std dev 99.5W, divergence 13.06%
2026-08-16 11:10:03.939513: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:10:03.939621: LoadML is_calculating False
2026-08-16 11:10:03.939689: Creating pool of 12 processes to match your CPU count
2026-08-16 11:10:04.033553: 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(0.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-16 11:10:04.035278: Optimise levels pass started at 2026-08-16 11:10:04
2026-08-16 11:10:04.035351: Optimise all windows, total charge 95 export 1
2026-08-16 11:10:05.403705: >> Region optimisation pass width 960 gives best_metric 631.96p, best_cost 648.93p, best_cycle 24.32kWh, best_import 26.49kWh
2026-08-16 11:10:07.415829: >> Region optimisation pass width 480 gives best_metric 645.97p, best_cost 662.72p, best_cycle 32.54kWh, best_import 27.08kWh
2026-08-16 11:10:10.459663: >> Region optimisation pass width 240 gives best_metric 643.66p, best_cost 660.61p, best_cycle 33.45kWh, best_import 27.14kWh
2026-08-16 11:10:12.619441: >> Region optimisation pass width 120 gives best_metric 638.96p, best_cost 655.82p, best_cycle 33.95kWh, best_import 27.18kWh
2026-08-16 11:10:12.620000: Calculated end_record as 08-17 11:30:00 based on best_price 27.3p, next_charge_start 08-16 11:30:00, max_windows 49
2026-08-16 11:10:12.620110: Optimise levels pass ended at 2026-08-16 11:10:12, duration 8.6 seconds tried 407 combinations
2026-08-16 11:10:12.620227: Set best_price_charge_level 29.4p, best_price_export_level 0p, best_price_charge 27.3p, best_cost_export 0p, best_metric 638.96p, best_keep 0kWh, best_cycle 33.95kWh, best_carbon 0kg, best_import 27.18kWh
2026-08-16 11:10:12.642860: Starting detailed optimisation end_record 08-17 11:30:00, best_price_charge 27.3p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [16.0, 16.0, 0, 16.0, 0, 0, 16.0, 16.0, 0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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-16 11:10:16.991983: Tweak plan optimisation started metric 180.61p, cost 229.35p
2026-08-16 11:10:17.259181: Tweak optimisation finished metric 180.61p, cost 229.35p, metric_keep 0kWh, cycle 21.37kWh, carbon 0kg, import 11.89kWh, changed 8 window(s)
2026-08-16 11:10:17.284357: Swap charge optimisation started metric 180.61p, cost 229.35p, min_improvement_swap 0.1p
2026-08-16 11:10:20.710979: Swap charge optimisation finished metric 180.61p, cost 229.35p
2026-08-16 11:10:20.815473: Raw charge windows [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 72%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 72%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 97%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 97%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 97%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ] reserve 1.12
2026-08-16 11:10:20.816109: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:10:20.816431: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:10:20.816666: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:10:20.851122: Previous plan best metric is 197.7 (cost 322.04) and new plan best metric is 180.61 (cost 229.35)
2026-08-16 11:10:20.851367: New plan metric is significantly better from previous plan, using new plan
2026-08-16 11:10:20.851407: Plan valid is now true after recompute was False
2026-08-16 11:10:20.877535: predict base end_record 08-17 11:30:00, final soc 11.04kWh, metric 534.91p, metric_keep 0kWh, min_soc 4.06kWh @ 08-17 09:55:00, load 20.89kWh, PV 0.0kWh
2026-08-16 11:10:20.979902: Battery has 48.0 hours left - now at 7.14kWh
2026-08-16 11:10:21.020596: predict base10 end_record 08-17 11:30:00, final soc 9.31kWh, metric 520.04p, metric_keep 0kWh, min_soc 3.49kWh @ 08-17 09:55:00, load 21.61kWh, PV 0.0kWh
2026-08-16 11:10:21.097251: predict best10 end_record 08-17 11:30:00, final soc 1.73kWh, metric 298.22p, metric_keep 0kWh, min_soc 1.73kWh @ 08-17 11:25:00, load 21.61kWh, PV 0.0kWh
2026-08-16 11:10:21.171418: predict best end_record 08-17 11:30:00, final soc 2.35kWh, metric 279.33p, metric_keep 0kWh, min_soc 2.35kWh @ 08-17 11:25:00, load 20.89kWh, PV 0.0kWh
2026-08-16 11:10:21.171505: Saving plan best values to HA entities
2026-08-16 11:10:21.335107: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:10:21.340040: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:10:21.344872: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 11.89kWh, house 0.0kWh, export 0.0kWh, metric 279.33p, metric10 298.22p
2026-08-16 11:10:21.413619: Marginal costs baseline metric (no standing charge): 229.3451
2026-08-16 11:10:21.661401: Marginal energy costs matrix computed: min=0.0 max=31.75
2026-08-16 11:10:21.718843: Rate array import [{'start': 670, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2130, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 670, 'end': 2130, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:10:21.719156: - Your estimated bill for today is £2.29 and tomorrow is £7.26
2026-08-16 11:10:21.719220: - Import rates are free (0.0p) for the next 50 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:10:21.719239: - The battery is currently at 45% and is charging to 69% for the next 50 minutes.
2026-08-16 11:10:21.719253: - For the next 48 hours there will be no solar generation.
2026-08-16 11:10:21.719286: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:10:21.719301: - Your car is currently charging.
2026-08-16 11:10:21.719318: 
2026-08-16 11:10:21.771672: Plan calculation took 17.85 seconds
2026-08-16 11:10:21.772226: Inverter 0: Type SK Sunsynk
2026-08-16 11:10:21.772280: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:10:21.772515: Reserve min: 7%, battery_min: 7%
2026-08-16 11:10:21.772595: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:10:21.772971: Inverter 0 SoC: 7.5kW 47%, current charge rate 5000W, current discharge rate 0W, current battery power -4479W, current battery voltage 51.2V, grid power -5426W, load power 430W, PV Power 0W
2026-08-16 11:10:21.773218: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:10:21.773331: Inverter 0 scheduled charge enable is True
2026-08-16 11:10:21.773389: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:10:21.773485: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:10:21.773609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:10:21.773645: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:10:21.773682: Inverter 0 scheduled discharge enable is False
2026-08-16 11:10:21.773809: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:10:21.773862: Inverter 0 discharge windows currently []
2026-08-16 11:10:21.773888: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:10:21.773912: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:10:21.773930: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:10:21.826947: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:10:21.827058: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 11:10:21.827195: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:10:21.827333: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:10:21.827505: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:10:21.827595: No export window planned
2026-08-16 11:10:21.827689: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:10:21.827719: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:10:21.827829: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:10:21.827932: Car charging from battery is off, next slot for car 0 is 08-16 11:10:00 - 08-16 11:30:00
2026-08-16 11:10:21.827989: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:10:21.828032: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:10:21.828058: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:10:21.828107: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:10:21.828200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828409: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828443: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828468: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828490: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828511: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828532: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828552: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828603: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:10:21.828745: Inverter 0 count register writes 0
2026-08-16 11:10:21.849753: Total inverter register writes now 829
2026-08-16 11:10:21.882340: Info: Completed run status Charging, Hold for car
2026-08-16 11:10:21.890259: Info: record_status Charging, Hold for car target 47%-100.0%
2026-08-16 11:10:21.898536: Saved current settings to /config/predbat_config.json
2026-08-16 11:10:21.899001: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:10:57.009693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:10:57.009980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:10:57.010023: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:10:57.010159: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:10:57.010198: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:10:57.010219: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:10:57.010237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:12:57.232702: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:12:57.233044: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:12:57.233114: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:12:57.233265: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:12:57.233305: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:12:57.233327: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:12:57.233344: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:14:57.468980: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:14:57.469255: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:14:57.469406: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:14:57.469655: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:14:57.469729: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:14:57.469751: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:14:57.469769: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:15:00.560603: --------------- PredBat - update at 2026-08-16 11:15:00+01:00 with clock skew 0 minutes, minutes now 675
2026-08-16 11:15:00.561391: Saved current settings to /config/predbat_config.json
2026-08-16 11:15:00.561524: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 11:15:00.561599: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:15:00.561754: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:15:00.579173: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:15:00.579285: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:15:00.579439: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:15:00.579905: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:15:00.580007: Predbat mode is set to Control charge & discharge
2026-08-16 11:15:00.755783: Found 21602 load_today datapoints going back 27 days
2026-08-16 11:15:00.755942: Using load_power data to fill gaps in load_today data
2026-08-16 11:15:01.456873: Processing 721 30-minute periods for power integration
2026-08-16 11:15:01.624028: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:15:01.624189: Car charging hold False, threshold 6.0kWh
2026-08-16 11:15:01.624238: Current data so far today: load 5.75kWh, import 1.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:15:01.639373: Cars: SoC: [9.962]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:15:01.639950: Standing charge is set to 49.98p
2026-08-16 11:15:01.687704: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:15:01.687812: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:15:01.688080: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 35.0 minutes
2026-08-16 11:15:01.688564: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 35.0 minutes
2026-08-16 11:15:01.694534: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:15:01.781147: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:15:01.842121: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:15:01.842517: Import rates: min 0.0p, max 49.86p, average 30.73p
2026-08-16 11:15:01.881246: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:15:01.881375: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:15:01.882669: High export rate found rates in range 99p to -99p
2026-08-16 11:15:01.960624: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:15:01.961012: Car 0 plan charging from 9.962kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:15:01.961913: Car 0 charging plan is: [{'start': 675, 'end': 690, 'kwh': 1.85, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 890, 'kwh': 2.215, 'average': 21.65, 'cost': 47.96, 'octopus': False}]
2026-08-16 11:15:01.976594: Battery level now 7.14kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 0.1p, change today -5.06p, rate_forward 1.0p
2026-08-16 11:15:01.977076: Last hour: net energy 0.61kWh, import 0.61kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 9.35p, import 9.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:15:02.028785: Today's energy total net 1.2kWh, import 1.2kWh, export 0.0kWh, cost 75.41p, import 25.42p, export 0.0p, carbon 0.0kg
2026-08-16 11:15:02.028909: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:15:02.097246: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:15:02.119159: Today's load divergence 93.0%, in-day adjustment 87.83%, damping 0.95x, yesterday 82.97% today 93.35% blend 53.12%
2026-08-16 11:15:02.119239: Today's predicted so far 6.74kWh with 0.0kWh car/iBoost excluded, 0.37kWh import ignored, and 6.74kWh forecast extra.
2026-08-16 11:15:02.119266: Today's actual load so far 5.72kWh with 0.0kWh car/iBoost excluded, and 0.37kWh import ignored.
2026-08-16 11:15:02.152533: Inverter 0: Type SK Sunsynk
2026-08-16 11:15:02.152621: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:15:02.152782: Reserve min: 7%, battery_min: 7%
2026-08-16 11:15:02.152845: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:15:02.153103: Inverter 0 SoC: 7.5kW 47%, current charge rate 5000W, current discharge rate 0W, current battery power -4492W, current battery voltage 51.2V, grid power -5479W, load power 484W, PV Power 0W
2026-08-16 11:15:02.153246: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:15:02.153320: Inverter 0 scheduled charge enable is True
2026-08-16 11:15:02.153357: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:15:02.153428: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:15:02.153529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:15:02.153560: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:15:02.153590: Inverter 0 scheduled discharge enable is False
2026-08-16 11:15:02.153714: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:15:02.153747: Inverter 0 discharge windows currently []
2026-08-16 11:15:02.153766: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:15:02.153781: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:15:02.153795: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:15:02.205985: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:15:02.206084: Plan was last updated on 2026-08-16 11:10:00+01:00 and is now 5.0 minutes old
2026-08-16 11:15:02.206351: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:15:02.206388: Best export window [  ]
2026-08-16 11:15:02.207060: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:15:02.209585: Load divergence over 8.0 hours mean 377.91W, min 247.2W, max 816.0W, std dev 101.35W, divergence 13.41%
2026-08-16 11:15:02.224869: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:15:02.225003: LoadML is_calculating False
2026-08-16 11:15:02.225083: Creating pool of 12 processes to match your CPU count
2026-08-16 11:15:02.343765: predict base end_record 08-17 11:35:00, final soc 11.44kWh, metric 549.32p, metric_keep 0kWh, min_soc 4.07kWh @ 08-17 09:55:00, load 20.92kWh, PV 0.0kWh
2026-08-16 11:15:02.462214: Battery has 48.0 hours left - now at 7.5kWh
2026-08-16 11:15:02.501350: predict base10 end_record 08-17 11:35:00, final soc 9.65kWh, metric 531.12p, metric_keep 0kWh, min_soc 3.51kWh @ 08-17 09:55:00, load 21.64kWh, PV 0.0kWh
2026-08-16 11:15:02.572273: predict best10 end_record 08-17 11:35:00, final soc 2.07kWh, metric 309.26p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:25:00, load 21.64kWh, PV 0.0kWh
2026-08-16 11:15:02.645416: predict best end_record 08-17 11:35:00, final soc 2.76kWh, metric 293.73p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 11:25:00, load 20.92kWh, PV 0.0kWh
2026-08-16 11:15:02.645511: Saving plan best values to HA entities
2026-08-16 11:15:02.812300: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:15:02.817340: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:15:02.822280: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 11.96kWh, house 0.0kWh, export 0.0kWh, metric 293.73p, metric10 309.26p
2026-08-16 11:15:02.891121: Marginal costs baseline metric (no standing charge): 243.7497
2026-08-16 11:15:03.141364: Marginal energy costs matrix computed: min=0.0 max=31.81
2026-08-16 11:15:03.205857: Rate array import [{'start': 675, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2135, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 675, 'end': 2135, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:15:03.206244: - Your estimated bill for today is £2.30 and tomorrow is £7.27
2026-08-16 11:15:03.206286: - Import rates are free (0.0p) for the next 45 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:15:03.206305: - The battery is currently at 47% and is charging to 69% for the next 45 minutes.
2026-08-16 11:15:03.206320: - For the next 48 hours there will be no solar generation.
2026-08-16 11:15:03.206334: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:15:03.206352: - Your car is currently charging.
2026-08-16 11:15:03.206371: 
2026-08-16 11:15:03.258533: Plan calculation took 1.05 seconds
2026-08-16 11:15:03.262022: No high rate period found
2026-08-16 11:15:03.309720: Import threshold used for optimisation was 23.43p
2026-08-16 11:15:03.360998: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 95: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:15:03.368400: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:15:03.368527: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 47%, target 100%
2026-08-16 11:15:03.368751: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:15:03.369027: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:15:03.369298: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:15:03.369402: No export window planned
2026-08-16 11:15:03.369527: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:15:03.369563: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:15:03.369719: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:15:03.369828: Car charging from battery is off, next slot for car 0 is 08-16 11:15:00 - 08-16 11:30:00
2026-08-16 11:15:03.369903: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:15:03.369949: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:15:03.369980: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:15:03.370034: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:15:03.370149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370414: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370449: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370480: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370506: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370532: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370564: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370589: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:15:03.370860: Inverter 0 count register writes 0
2026-08-16 11:15:03.387075: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:15:03.393165: Total inverter register writes now 829
2026-08-16 11:15:03.428985: Info: Completed run status Charging, Hold for car
2026-08-16 11:15:03.435272: Info: record_status Charging, Hold for car target 47%-100.0%
2026-08-16 11:15:03.442313: Saved current settings to /config/predbat_config.json
2026-08-16 11:15:03.442643: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:15:41.559776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:15:41.560029: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:15:41.560071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:15:41.560217: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:15:41.560252: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:15:41.560269: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:15:41.560283: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:17:41.784771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:17:41.785099: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:17:41.785214: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:17:41.785373: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:17:41.785407: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:17:41.785434: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:17:41.785465: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:19:42.011238: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:19:42.011608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:19:42.011679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:19:42.011931: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:19:42.012008: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:19:42.012063: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:19:42.012131: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:20:00.111854: --------------- PredBat - update at 2026-08-16 11:20:00+01:00 with clock skew 0 minutes, minutes now 680
2026-08-16 11:20:00.112594: Saved current settings to /config/predbat_config.json
2026-08-16 11:20:00.112719: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 11:20:00.112819: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:20:00.113003: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:20:00.133539: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:20:00.133669: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:20:00.133859: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:20:00.134396: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:20:00.134520: Predbat mode is set to Control charge & discharge
2026-08-16 11:20:00.332860: Found 21602 load_today datapoints going back 27 days
2026-08-16 11:20:00.333056: Using load_power data to fill gaps in load_today data
2026-08-16 11:20:01.125885: Processing 721 30-minute periods for power integration
2026-08-16 11:20:01.285514: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:20:01.286886: Car charging hold False, threshold 6.0kWh
2026-08-16 11:20:01.286971: Current data so far today: load 5.85kWh, import 2.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:20:01.302751: Cars: SoC: [9.962]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:20:01.304321: Standing charge is set to 49.98p
2026-08-16 11:20:01.353690: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:20:01.353836: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:20:01.354148: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 40.0 minutes
2026-08-16 11:20:01.354677: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 40.0 minutes
2026-08-16 11:20:01.360903: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:20:01.460673: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:20:01.523097: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:20:01.523569: Import rates: min 0.0p, max 49.86p, average 30.78p
2026-08-16 11:20:01.567554: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:20:01.567704: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:20:01.569013: High export rate found rates in range 99p to -99p
2026-08-16 11:20:01.661244: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:20:01.661633: Car 0 plan charging from 9.962kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:20:01.662651: Car 0 charging plan is: [{'start': 680, 'end': 690, 'kwh': 1.233, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 895, 'kwh': 2.832, 'average': 21.65, 'cost': 61.3, 'octopus': False}]
2026-08-16 11:20:01.680120: Battery level now 7.5kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 0.46p, change today -4.71p, rate_forward 1.0p
2026-08-16 11:20:01.680499: Last hour: net energy 1.51kWh, import 1.51kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 9.17p, import 9.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:20:01.743223: Today's energy total net 2.1kWh, import 2.1kWh, export 0.0kWh, cost 75.41p, import 25.42p, export 0.0p, carbon 0.0kg
2026-08-16 11:20:01.743369: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:20:01.813297: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:20:01.836830: Today's load divergence 93.22%, in-day adjustment 87.97%, damping 0.95x, yesterday 82.97% today 93.56% blend 52.78%
2026-08-16 11:20:01.836920: Today's predicted so far 6.79kWh with 0.0kWh car/iBoost excluded, 1.18kWh import ignored, and 6.79kWh forecast extra.
2026-08-16 11:20:01.836994: Today's actual load so far 5.8kWh with 0.0kWh car/iBoost excluded, and 1.18kWh import ignored.
2026-08-16 11:20:01.869609: Inverter 0: Type SK Sunsynk
2026-08-16 11:20:01.869695: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:20:01.869878: Reserve min: 7%, battery_min: 7%
2026-08-16 11:20:01.869941: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:20:01.870250: Inverter 0 SoC: 8.2kW 51%, current charge rate 5000W, current discharge rate 0W, current battery power -4503W, current battery voltage 51.2V, grid power -5564W, load power 568W, PV Power 0W
2026-08-16 11:20:01.870397: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:20:01.870472: Inverter 0 scheduled charge enable is True
2026-08-16 11:20:01.870536: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:20:01.870608: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:20:01.870738: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:20:01.870793: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:20:01.870827: Inverter 0 scheduled discharge enable is False
2026-08-16 11:20:01.870959: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:20:01.870990: Inverter 0 discharge windows currently []
2026-08-16 11:20:01.871009: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:20:01.871024: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:20:01.871038: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:20:01.930091: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:20:01.930191: Plan was last updated on 2026-08-16 11:10:00+01:00 and is now 10.0 minutes old
2026-08-16 11:20:01.930463: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:20:01.930499: Best export window [  ]
2026-08-16 11:20:01.931179: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:20:01.933821: Load divergence over 8.0 hours mean 377.92W, min 244.2W, max 845.4W, std dev 94.94W, divergence 12.56%
2026-08-16 11:20:01.949592: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:20:01.949707: LoadML is_calculating False
2026-08-16 11:20:01.949784: Creating pool of 12 processes to match your CPU count
2026-08-16 11:20:02.076865: predict base end_record 08-17 11:40:00, final soc 11.85kWh, metric 555.57p, metric_keep 0kWh, min_soc 4.09kWh @ 08-17 09:55:00, load 21.04kWh, PV 0.0kWh
2026-08-16 11:20:02.219365: Battery has 48.0 hours left - now at 8.2kWh
2026-08-16 11:20:02.260519: predict base10 end_record 08-17 11:40:00, final soc 9.99kWh, metric 534.0p, metric_keep 0kWh, min_soc 3.52kWh @ 08-17 09:55:00, load 21.76kWh, PV 0.0kWh
2026-08-16 11:20:02.354913: predict best10 end_record 08-17 11:40:00, final soc 2.4kWh, metric 311.65p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:25:00, load 21.76kWh, PV 0.0kWh
2026-08-16 11:20:02.443846: predict best end_record 08-17 11:40:00, final soc 3.15kWh, metric 300.02p, metric_keep 0kWh, min_soc 2.38kWh @ 08-17 11:25:00, load 21.04kWh, PV 0.0kWh
2026-08-16 11:20:02.443958: Saving plan best values to HA entities
2026-08-16 11:20:02.600196: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:20:02.605595: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:20:02.611629: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 11.65kWh, house 0.0kWh, export 0.0kWh, metric 300.02p, metric10 311.65p
2026-08-16 11:20:02.686726: Marginal costs baseline metric (no standing charge): 250.0344
2026-08-16 11:20:02.932339: Marginal energy costs matrix computed: min=0.0 max=31.91
2026-08-16 11:20:02.994673: Rate array import [{'start': 680, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2140, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 680, 'end': 2140, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:20:02.995063: - Your estimated bill for today is £2.23 and tomorrow is £7.27
2026-08-16 11:20:02.995145: - Import rates are free (0.0p) for the next 40 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:20:02.995163: - The battery is currently at 51% and is charging to 69% for the next 40 minutes.
2026-08-16 11:20:02.995177: - For the next 48 hours there will be no solar generation.
2026-08-16 11:20:02.995191: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:20:02.995205: - Your car is currently charging.
2026-08-16 11:20:02.995218: 
2026-08-16 11:20:03.047013: Plan calculation took 1.12 seconds
2026-08-16 11:20:03.049985: No high rate period found
2026-08-16 11:20:03.096289: Import threshold used for optimisation was 23.43p
2026-08-16 11:20:03.147206: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 95: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:20:03.156260: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:20:03.156389: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 11:20:03.156567: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:20:03.156786: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:20:03.157112: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:20:03.157222: No export window planned
2026-08-16 11:20:03.157353: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:20:03.157391: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:20:03.157526: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:20:03.157635: Car charging from battery is off, next slot for car 0 is 08-16 11:20:00 - 08-16 11:30:00
2026-08-16 11:20:03.157710: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:20:03.157756: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:20:03.157816: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:20:03.157882: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:20:03.158001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158251: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158288: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158318: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158343: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158368: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158400: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158425: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:03.158673: Inverter 0 count register writes 0
2026-08-16 11:20:03.174174: 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-16 11:20:03.174374: Recompute is saving previous plan...
2026-08-16 11:20:03.177032: Best charge window [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ]
2026-08-16 11:20:03.177105: Best export window [  ]
2026-08-16 11:20:03.177800: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:20:03.180315: Load divergence over 8.0 hours mean 377.92W, min 244.2W, max 845.4W, std dev 94.94W, divergence 12.56%
2026-08-16 11:20:03.194717: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:20:03.194833: LoadML is_calculating False
2026-08-16 11:20:03.194892: Creating pool of 12 processes to match your CPU count
2026-08-16 11:20:03.289510: 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(0.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-16 11:20:03.291553: Optimise levels pass started at 2026-08-16 11:20:03
2026-08-16 11:20:03.291624: Optimise all windows, total charge 95 export 1
2026-08-16 11:20:04.752711: >> Region optimisation pass width 960 gives best_metric 627.92p, best_cost 645.35p, best_cycle 23.21kWh, best_import 25.35kWh
2026-08-16 11:20:06.662439: >> Region optimisation pass width 480 gives best_metric 641.9p, best_cost 659.11p, best_cycle 31.41kWh, best_import 25.93kWh
2026-08-16 11:20:09.578190: >> Region optimisation pass width 240 gives best_metric 639.79p, best_cost 657.14p, best_cycle 32.29kWh, best_import 25.99kWh
2026-08-16 11:20:11.779558: >> Region optimisation pass width 120 gives best_metric 635.02p, best_cost 652.35p, best_cycle 32.77kWh, best_import 26.03kWh
2026-08-16 11:20:11.780045: Calculated end_record as 08-17 11:30:00 based on best_price 27.09p, next_charge_start 08-16 11:30:00, max_windows 49
2026-08-16 11:20:11.780163: Optimise levels pass ended at 2026-08-16 11:20:11, duration 8.5 seconds tried 407 combinations
2026-08-16 11:20:11.780287: Set best_price_charge_level 29.0p, best_price_export_level 0p, best_price_charge 27.09p, best_cost_export 0p, best_metric 635.02p, best_keep 0kWh, best_cycle 32.77kWh, best_carbon 0kg, best_import 26.03kWh
2026-08-16 11:20:11.803980: Starting detailed optimisation end_record 08-17 11:30:00, best_price_charge 27.09p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [16.0, 16.0, 0, 16.0, 0, 0, 16.0, 16.0, 0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.25, 8.25, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 11:20:15.993383: Tweak plan optimisation started metric 172.77p, cost 222.6p
2026-08-16 11:20:16.283925: Tweak optimisation finished metric 172.77p, cost 222.6p, metric_keep 0kWh, cycle 20.39kWh, carbon 0kg, import 10.63kWh, changed 8 window(s)
2026-08-16 11:20:16.306473: Swap charge optimisation started metric 172.77p, cost 222.6p, min_improvement_swap 0.1p
2026-08-16 11:20:19.806800: Swap charge optimisation finished metric 172.77p, cost 222.6p
2026-08-16 11:20:19.941344: Raw charge windows [ 16-08 11:00:00 - 16-08 11:30:00 @ 0.0p 100%, 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 72%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 72%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 97%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 97%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 97%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ] reserve 1.12
2026-08-16 11:20:19.942198: Unclipped charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:20:19.942612: Unfiltered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:20:19.943031: Filtered charge windows [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:20:19.989191: Previous plan best metric is 172.77 (cost 222.6) and new plan best metric is 172.77 (cost 222.6)
2026-08-16 11:20:19.989651: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 11:20:19.990106: Plan valid is now true after recompute was False
2026-08-16 11:20:20.025415: predict base end_record 08-17 11:30:00, final soc 11.07kWh, metric 528.13p, metric_keep 0kWh, min_soc 4.09kWh @ 08-17 09:55:00, load 20.86kWh, PV 0.0kWh
2026-08-16 11:20:20.145000: Battery has 48.0 hours left - now at 8.2kWh
2026-08-16 11:20:20.191046: predict base10 end_record 08-17 11:30:00, final soc 9.34kWh, metric 510.1p, metric_keep 0kWh, min_soc 3.52kWh @ 08-17 09:55:00, load 21.57kWh, PV 0.0kWh
2026-08-16 11:20:20.271244: predict best10 end_record 08-17 11:30:00, final soc 1.75kWh, metric 287.74p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:25:00, load 21.57kWh, PV 0.0kWh
2026-08-16 11:20:20.361288: predict best end_record 08-17 11:30:00, final soc 2.38kWh, metric 272.58p, metric_keep 0kWh, min_soc 2.38kWh @ 08-17 11:25:00, load 20.86kWh, PV 0.0kWh
2026-08-16 11:20:20.361385: Saving plan best values to HA entities
2026-08-16 11:20:20.526116: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:20:20.531259: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:20:20.536152: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.63kWh, house 0.0kWh, export 0.0kWh, metric 272.58p, metric10 287.74p
2026-08-16 11:20:20.604606: Marginal costs baseline metric (no standing charge): 222.6008
2026-08-16 11:20:20.874713: Marginal energy costs matrix computed: min=0.0 max=31.91
2026-08-16 11:20:20.944223: Rate array import [{'start': 680, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2130, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 680, 'end': 2130, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:20:20.944578: - Your estimated bill for today is £2.23 and tomorrow is £7.27
2026-08-16 11:20:20.944620: - Import rates are free (0.0p) for the next 40 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:20:20.944639: - The battery is currently at 51% and is charging to 69% for the next 40 minutes.
2026-08-16 11:20:20.944654: - For the next 48 hours there will be no solar generation.
2026-08-16 11:20:20.944668: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:20:20.944688: - Your car is currently charging.
2026-08-16 11:20:20.944706: 
2026-08-16 11:20:20.997493: Plan calculation took 17.82 seconds
2026-08-16 11:20:20.998048: Inverter 0: Type SK Sunsynk
2026-08-16 11:20:20.998115: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:20:20.999409: Reserve min: 7%, battery_min: 7%
2026-08-16 11:20:20.999601: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:20:21.000139: Inverter 0 SoC: 8.2kW 51%, current charge rate 5000W, current discharge rate 0W, current battery power -4503W, current battery voltage 51.2V, grid power -5564W, load power 568W, PV Power 0W
2026-08-16 11:20:21.000416: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:20:21.000529: Inverter 0 scheduled charge enable is True
2026-08-16 11:20:21.000590: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:20:21.000697: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:20:21.000848: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:20:21.000888: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:20:21.000928: Inverter 0 scheduled discharge enable is False
2026-08-16 11:20:21.001125: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:20:21.001174: Inverter 0 discharge windows currently []
2026-08-16 11:20:21.001199: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:20:21.001218: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:20:21.001240: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:20:21.063448: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:20:21.063585: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 51%, target 100%
2026-08-16 11:20:21.063721: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:20:21.063915: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:20:21.064138: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:20:21.064268: No export window planned
2026-08-16 11:20:21.064418: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:20:21.064457: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:20:21.064604: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:20:21.064714: Car charging from battery is off, next slot for car 0 is 08-16 11:20:00 - 08-16 11:30:00
2026-08-16 11:20:21.064799: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:20:21.064848: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:20:21.064886: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:20:21.064935: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:20:21.065146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065531: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065564: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065594: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065627: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065653: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065677: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.065982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.066006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.066035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:20:21.066057: Inverter 0 count register writes 0
2026-08-16 11:20:21.093145: Total inverter register writes now 829
2026-08-16 11:20:21.147213: Info: Completed run status Charging, Hold for car
2026-08-16 11:20:21.155832: Info: record_status Charging, Hold for car target 51%-100.0%
2026-08-16 11:20:21.163889: Saved current settings to /config/predbat_config.json
2026-08-16 11:20:21.164244: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:20:57.281401: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:20:57.281801: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:20:57.281880: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:20:57.282109: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:20:57.282182: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:20:57.282205: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:20:57.282223: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:22:23.997283: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 11:22:24.917972: Processing 1297 30-minute periods for power integration
2026-08-16 11:22:25.020054: ML Component: Car charging hold False, car energy reported load False
2026-08-16 11:22:25.120508: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:22:25.220210: ML Temperature data points: 48281
2026-08-16 11:22:25.492780: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 11:22:25.535645: ML Component: Data fetch completed, load data age 57.0 days, 16688 data points
2026-08-16 11:22:25.535779: ML Component: No training needed, model age is 1.25 hours
2026-08-16 11:22:25.535864: ML Component: Generating predictions load data age 57.0 days, 16688 data points
2026-08-16 11:22:25.682781: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0381 max_dow {0: 0.10211874996256083, 1: 0.10889687554407865, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.09651111107096075, 6: 0.10629687632601709}
2026-08-16 11:22:26.201408: ML Component: Generated 576 predictions (total 26.50 kWh over 48h)
2026-08-16 11:22:26.242851: ML Component: Prediction cycle completed
2026-08-16 11:22:26.370905: ML Component: Saved 16688 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 11:23:11.534274: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:23:11.534627: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:23:11.534728: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:23:11.535003: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:23:11.535044: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:23:11.535066: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:23:11.535084: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:25:00.753536: --------------- PredBat - update at 2026-08-16 11:25:00+01:00 with clock skew 0 minutes, minutes now 685
2026-08-16 11:25:00.754335: Saved current settings to /config/predbat_config.json
2026-08-16 11:25:00.754502: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 11:25:00.754646: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:25:00.754747: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:25:00.779299: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:25:00.779456: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:25:00.780149: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:25:00.781114: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:25:00.781296: Predbat mode is set to Control charge & discharge
2026-08-16 11:25:00.976255: Found 21602 load_today datapoints going back 27 days
2026-08-16 11:25:00.976435: Using load_power data to fill gaps in load_today data
2026-08-16 11:25:01.817765: Processing 721 30-minute periods for power integration
2026-08-16 11:25:02.004850: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:25:02.005021: Car charging hold False, threshold 6.0kWh
2026-08-16 11:25:02.005072: Current data so far today: load 5.9kWh, import 2.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:25:02.019930: Cars: SoC: [11.134]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:25:02.020429: Standing charge is set to 49.98p
2026-08-16 11:25:02.069561: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:25:02.069668: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:25:02.069899: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 45.0 minutes
2026-08-16 11:25:02.070451: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 45.0 minutes
2026-08-16 11:25:02.076529: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:25:02.173842: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:25:02.235563: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:25:02.236045: Import rates: min 0.0p, max 49.86p, average 30.82p
2026-08-16 11:25:02.282004: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:25:02.282143: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:25:02.283456: High export rate found rates in range 99p to -99p
2026-08-16 11:25:02.380018: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:25:02.380462: Car 0 plan charging from 11.134kWh to 35.0% (20.51kWh), with slots [{'start': 660, 'end': 690, 'average': 0.0}, {'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:25:02.381537: Car 0 charging plan is: [{'start': 685, 'end': 690, 'kwh': 0.617, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 890, 'kwh': 2.175, 'average': 21.65, 'cost': 47.09, 'octopus': False}]
2026-08-16 11:25:02.400107: Battery level now 8.2kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 1.16p, change today -4.01p, rate_forward 1.0p
2026-08-16 11:25:02.400548: Last hour: net energy 1.5kWh, import 1.5kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 8.99p, import 8.99p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:25:02.456542: Today's energy total net 2.1kWh, import 2.1kWh, export 0.0kWh, cost 75.41p, import 25.42p, export 0.0p, carbon 0.0kg
2026-08-16 11:25:02.456688: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:25:02.541875: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:25:02.568685: Today's load divergence 93.17%, in-day adjustment 87.98%, damping 0.95x, yesterday 82.97% today 93.51% blend 52.43%
2026-08-16 11:25:02.568789: Today's predicted so far 6.85kWh with 0.0kWh car/iBoost excluded, 1.16kWh import ignored, and 6.85kWh forecast extra.
2026-08-16 11:25:02.568842: Today's actual load so far 5.86kWh with 0.0kWh car/iBoost excluded, and 1.16kWh import ignored.
2026-08-16 11:25:02.603509: Inverter 0: Type SK Sunsynk
2026-08-16 11:25:02.603621: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:25:02.603872: Reserve min: 7%, battery_min: 7%
2026-08-16 11:25:02.603962: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:25:02.604350: Inverter 0 SoC: 8.54kW 53%, current charge rate 5000W, current discharge rate 0W, current battery power -4505W, current battery voltage 51.2V, grid power -5664W, load power 666W, PV Power 0W
2026-08-16 11:25:02.604551: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:25:02.604685: Inverter 0 scheduled charge enable is True
2026-08-16 11:25:02.604757: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:25:02.604912: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:25:02.605091: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:25:02.605154: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:25:02.605209: Inverter 0 scheduled discharge enable is False
2026-08-16 11:25:02.605405: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:25:02.605449: Inverter 0 discharge windows currently []
2026-08-16 11:25:02.605475: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:25:02.605518: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:25:02.605555: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:25:02.671310: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:25:02.671427: Plan was last updated on 2026-08-16 11:20:00+01:00 and is now 5.0 minutes old
2026-08-16 11:25:02.671729: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:25:02.671774: Best export window [  ]
2026-08-16 11:25:02.672693: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:25:02.676101: Load divergence over 8.0 hours mean 377.83W, min 240.6W, max 850.2W, std dev 91.83W, divergence 12.15%
2026-08-16 11:25:02.696336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:25:02.696476: LoadML is_calculating False
2026-08-16 11:25:02.696556: Creating pool of 12 processes to match your CPU count
2026-08-16 11:25:02.836141: predict base end_record 08-17 11:35:00, final soc 11.46kWh, metric 543.2p, metric_keep 0kWh, min_soc 4.09kWh @ 08-17 09:55:00, load 20.92kWh, PV 0.0kWh
2026-08-16 11:25:02.967362: Battery has 48.0 hours left - now at 8.54kWh
2026-08-16 11:25:03.006715: predict base10 end_record 08-17 11:35:00, final soc 9.66kWh, metric 521.85p, metric_keep 0kWh, min_soc 3.52kWh @ 08-17 09:55:00, load 21.63kWh, PV 0.0kWh
2026-08-16 11:25:03.079980: predict best10 end_record 08-17 11:35:00, final soc 2.07kWh, metric 299.46p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:25:00, load 21.63kWh, PV 0.0kWh
2026-08-16 11:25:03.168834: predict best end_record 08-17 11:35:00, final soc 2.76kWh, metric 287.49p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 11:25:00, load 20.92kWh, PV 0.0kWh
2026-08-16 11:25:03.169290: Saving plan best values to HA entities
2026-08-16 11:25:03.327603: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:25:03.333592: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:25:03.339554: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.69kWh, house 0.0kWh, export 0.0kWh, metric 287.49p, metric10 299.46p
2026-08-16 11:25:03.413891: Marginal costs baseline metric (no standing charge): 237.5068
2026-08-16 11:25:03.695865: Marginal energy costs matrix computed: min=0.0 max=32.03
2026-08-16 11:25:03.764105: Rate array import [{'start': 685, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2135, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 685, 'end': 2135, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:25:03.764529: - Your estimated bill for today is £2.24 and tomorrow is £7.28
2026-08-16 11:25:03.764583: - Import rates are free (0.0p) for the next 35 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:25:03.764613: - The battery is currently at 53% and is charging to 69% for the next 35 minutes.
2026-08-16 11:25:03.764639: - For the next 48 hours there will be no solar generation.
2026-08-16 11:25:03.764671: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:25:03.764690: - Your car is currently charging.
2026-08-16 11:25:03.764715: 
2026-08-16 11:25:03.811369: Plan calculation took 1.14 seconds
2026-08-16 11:25:03.814493: No high rate period found
2026-08-16 11:25:03.858940: Import threshold used for optimisation was 23.43p
2026-08-16 11:25:03.903835: Low import rate windows [0: 08-16 11:00:00 - 08-16 11:30:00 @ 0.0, 1: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 2: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 3: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 4: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 5: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 6: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 7: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 8: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 9: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 10: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 11: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 12: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 13: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 14: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 15: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 16: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 17: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 18: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 19: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 20: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 21: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 22: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 23: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 24: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 25: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 26: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 27: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 28: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 29: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 30: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 31: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 32: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 33: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 34: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 35: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 36: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 37: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 38: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 39: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 40: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 41: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 42: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 43: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 44: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 45: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 46: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 47: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 48: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 49: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 50: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 51: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 52: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 53: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 54: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 55: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 56: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 57: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 58: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 59: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 60: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 61: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 62: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 63: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 64: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 65: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 66: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 67: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 68: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 69: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 70: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 71: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 72: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 73: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 74: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 75: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 76: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 77: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 78: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 79: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 80: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 81: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 82: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 83: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 84: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 85: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 86: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 87: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 88: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 89: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 90: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 91: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 92: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 93: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 94: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 95: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:25:03.910799: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:25:03.910900: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 11:25:03.911097: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:25:03.911374: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:25:03.911681: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:25:03.911820: No export window planned
2026-08-16 11:25:03.911969: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:25:03.912007: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:25:03.912176: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:25:03.912383: Car charging from battery is off, next slot for car 0 is 08-16 11:25:00 - 08-16 11:30:00
2026-08-16 11:25:03.912492: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:25:03.912555: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:25:03.912609: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:25:03.912686: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:25:03.912823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.912888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.912964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913274: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913315: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913366: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913413: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913448: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913479: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913524: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:25:03.913909: Inverter 0 count register writes 0
2026-08-16 11:25:03.931372: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:25:03.936320: Total inverter register writes now 829
2026-08-16 11:25:03.966062: Info: Completed run status Charging, Hold for car
2026-08-16 11:25:03.972354: Info: record_status Charging, Hold for car target 53%-100.0%
2026-08-16 11:25:03.978653: Saved current settings to /config/predbat_config.json
2026-08-16 11:25:03.978972: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:25:42.086596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:25:42.086896: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:25:42.086948: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:25:42.087090: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:25:42.087130: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:25:42.087151: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:25:42.087188: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:27:42.316292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:27:42.316644: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:27:42.316741: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:27:42.317057: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:27:42.317110: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:27:42.317133: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:27:42.317158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:29:56.551096: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:29:56.551486: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:29:56.551572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:29:56.551793: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:29:56.551862: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:29:56.551910: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:29:56.551946: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:30:00.641348: --------------- PredBat - update at 2026-08-16 11:30:00+01:00 with clock skew 0 minutes, minutes now 690
2026-08-16 11:30:00.642313: Saved current settings to /config/predbat_config.json
2026-08-16 11:30:00.642489: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 11:30:00.642641: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:30:00.642796: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:30:00.669929: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:30:00.670091: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:30:00.670343: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:30:00.671096: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:30:00.671269: Predbat mode is set to Control charge & discharge
2026-08-16 11:30:00.878114: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:30:00.878259: Using load_power data to fill gaps in load_today data
2026-08-16 11:30:01.653919: Processing 721 30-minute periods for power integration
2026-08-16 11:30:01.835551: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:30:01.835694: Car charging hold False, threshold 6.0kWh
2026-08-16 11:30:01.835741: Current data so far today: load 5.95kWh, import 3.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:30:01.850688: Cars: SoC: [11.134]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:30:01.851158: Standing charge is set to 49.98p
2026-08-16 11:30:01.900326: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:30:01.900445: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:30:01.900741: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 50.0 minutes
2026-08-16 11:30:01.901291: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 50.0 minutes
2026-08-16 11:30:01.907238: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:30:02.015597: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:30:02.078581: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:30:02.079124: Import rates: min 0.0p, max 49.86p, average 30.87p
2026-08-16 11:30:02.129738: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:30:02.129926: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:30:02.131934: High export rate found rates in range 99p to -99p
2026-08-16 11:30:02.233016: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:30:02.233394: Car 0 plan charging from 11.134kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}], ready by 16:00:00
2026-08-16 11:30:02.234328: Car 0 charging plan is: [{'start': 690, 'end': 720, 'kwh': 3.7, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 895, 'kwh': 2.791, 'average': 21.65, 'cost': 60.43, 'octopus': False}]
2026-08-16 11:30:02.249398: Battery level now 8.54kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 1.5p, change today -3.67p, rate_forward 1.0p
2026-08-16 11:30:02.249773: Last hour: net energy 2.38kWh, import 2.38kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 57.83p, import 57.83p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:30:02.298855: Today's energy total net 3.0kWh, import 3.0kWh, export 0.0kWh, cost 123.92p, import 73.93p, export 0.0p, carbon 0.0kg
2026-08-16 11:30:02.298983: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:30:02.367390: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:30:02.389313: Today's load divergence 92.79%, in-day adjustment 87.85%, damping 0.95x, yesterday 82.97% today 93.15% blend 52.08%
2026-08-16 11:30:02.389397: Today's predicted so far 7.0kWh with 0.0kWh car/iBoost excluded, 1.97kWh import ignored, and 7.0kWh forecast extra.
2026-08-16 11:30:02.389423: Today's actual load so far 5.96kWh with 0.0kWh car/iBoost excluded, and 1.97kWh import ignored.
2026-08-16 11:30:02.428526: Inverter 0: Type SK Sunsynk
2026-08-16 11:30:02.428609: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:30:02.428776: Reserve min: 7%, battery_min: 7%
2026-08-16 11:30:02.428852: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:30:02.429115: Inverter 0 SoC: 8.54kW 53%, current charge rate 5000W, current discharge rate 0W, current battery power -4510W, current battery voltage 51.2V, grid power -5503W, load power 507W, PV Power 0W
2026-08-16 11:30:02.429259: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:30:02.429334: Inverter 0 scheduled charge enable is True
2026-08-16 11:30:02.429370: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:30:02.429449: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:30:02.429548: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:30:02.429579: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:30:02.429608: Inverter 0 scheduled discharge enable is False
2026-08-16 11:30:02.429706: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:30:02.429736: Inverter 0 discharge windows currently []
2026-08-16 11:30:02.429755: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:30:02.429770: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:30:02.429784: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:30:02.482211: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:30:02.482309: Plan was last updated on 2026-08-16 11:20:00+01:00 and is now 10.0 minutes old
2026-08-16 11:30:02.482565: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:30:02.482601: Best export window [  ]
2026-08-16 11:30:02.483278: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:30:02.485877: Load divergence over 8.0 hours mean 381.29W, min 253.2W, max 766.8W, std dev 97.21W, divergence 12.75%
2026-08-16 11:30:02.501237: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:30:02.501343: LoadML is_calculating False
2026-08-16 11:30:02.501399: Creating pool of 12 processes to match your CPU count
2026-08-16 11:30:02.614748: predict base end_record 08-17 11:40:00, final soc 11.83kWh, metric 614.51p, metric_keep 0kWh, min_soc 4.07kWh @ 08-17 09:55:00, load 21.0kWh, PV 0.0kWh
2026-08-16 11:30:02.757115: Battery has 48.0 hours left - now at 8.54kWh
2026-08-16 11:30:02.802956: predict base10 end_record 08-17 11:40:00, final soc 9.97kWh, metric 589.81p, metric_keep 0kWh, min_soc 3.5kWh @ 08-17 09:55:00, load 21.71kWh, PV 0.0kWh
2026-08-16 11:30:02.883178: predict best10 end_record 08-17 11:40:00, final soc 2.38kWh, metric 367.8p, metric_keep 0kWh, min_soc 1.74kWh @ 08-17 11:25:00, load 21.71kWh, PV 0.0kWh
2026-08-16 11:30:02.970680: predict best end_record 08-17 11:40:00, final soc 3.14kWh, metric 358.93p, metric_keep 0kWh, min_soc 2.36kWh @ 08-17 11:25:00, load 21.0kWh, PV 0.0kWh
2026-08-16 11:30:02.970778: Saving plan best values to HA entities
2026-08-16 11:30:03.156879: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:30:03.162601: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:30:03.168272: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 11.12kWh, house 0.0kWh, export 0.0kWh, metric 358.93p, metric10 367.8p
2026-08-16 11:30:03.246882: Marginal costs baseline metric (no standing charge): 308.9503
2026-08-16 11:30:03.507165: Marginal energy costs matrix computed: min=0.0 max=32.2
2026-08-16 11:30:03.577004: Rate array import [{'start': 690, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2140, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 690, 'end': 2140, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:30:03.577663: - Your estimated bill for today is £2.82 and tomorrow is £7.26
2026-08-16 11:30:03.577714: - Import rates are free (0.0p) for the next 30 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:30:03.577734: - The battery is currently at 53% and is charging to 69% for the next 30 minutes.
2026-08-16 11:30:03.577749: - For the next 48 hours there will be no solar generation.
2026-08-16 11:30:03.577763: - You will reach a minimum of 15% battery in 23 hours.
2026-08-16 11:30:03.577777: - Your car is currently charging.
2026-08-16 11:30:03.577790: 
2026-08-16 11:30:03.629675: Plan calculation took 1.15 seconds
2026-08-16 11:30:03.632488: No high rate period found
2026-08-16 11:30:03.679091: Import threshold used for optimisation was 23.43p
2026-08-16 11:30:03.734153: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3]
2026-08-16 11:30:03.742192: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:30:03.742321: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 53%, target 100%
2026-08-16 11:30:03.742496: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:30:03.742706: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:30:03.742971: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:30:03.743072: No export window planned
2026-08-16 11:30:03.743196: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:30:03.743231: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:30:03.743366: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:30:03.743473: Car charging from battery is off, next slot for car 0 is 08-16 11:30:00 - 08-16 12:00:00
2026-08-16 11:30:03.743550: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:30:03.743609: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:30:03.743733: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:30:03.743848: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:30:03.743983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744254: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744285: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744310: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744341: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744365: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744390: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744419: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:03.744670: Inverter 0 count register writes 0
2026-08-16 11:30:03.761441: 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-16 11:30:03.761691: Recompute is saving previous plan...
2026-08-16 11:30:03.767263: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ]
2026-08-16 11:30:03.767392: Best export window [  ]
2026-08-16 11:30:03.768413: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:30:03.771528: Load divergence over 8.0 hours mean 381.29W, min 253.2W, max 766.8W, std dev 97.21W, divergence 12.75%
2026-08-16 11:30:03.791518: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:30:03.791695: LoadML is_calculating False
2026-08-16 11:30:03.791829: Creating pool of 12 processes to match your CPU count
2026-08-16 11:30:03.888634: 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(0.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-16 11:30:03.890906: Optimise levels pass started at 2026-08-16 11:30:03
2026-08-16 11:30:03.890973: Optimise all windows, total charge 95 export 1
2026-08-16 11:30:04.959435: >> Region optimisation pass width 960 gives best_metric 703.8p, best_cost 721.7p, best_cycle 36.82kWh, best_import 26.02kWh
2026-08-16 11:30:05.442486: >> Region optimisation pass width 480 gives best_metric 703.8p, best_cost 721.7p, best_cycle 36.82kWh, best_import 26.02kWh
2026-08-16 11:30:06.279938: >> Region optimisation pass width 240 gives best_metric 702.28p, best_cost 720.04p, best_cycle 38.64kWh, best_import 26.15kWh
2026-08-16 11:30:08.093018: >> Region optimisation pass width 120 gives best_metric 701.37p, best_cost 719.13p, best_cycle 38.06kWh, best_import 26.11kWh
2026-08-16 11:30:08.093552: Calculated end_record as 08-17 11:30:00 based on best_price 26.72p, next_charge_start 08-16 11:30:00, max_windows 48
2026-08-16 11:30:08.093620: Optimise levels pass ended at 2026-08-16 11:30:08, duration 4.2 seconds tried 363 combinations
2026-08-16 11:30:08.093680: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 701.37p, best_keep 0kWh, best_cycle 38.06kWh, best_carbon 0kg, best_import 26.11kWh
2026-08-16 11:30:08.111494: Starting detailed optimisation end_record 08-17 11:30:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [16.0, 0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 11:30:12.311426: Tweak plan optimisation started metric 232.29p, cost 293.7p
2026-08-16 11:30:12.624350: Tweak optimisation finished metric 232.29p, cost 293.7p, metric_keep 0kWh, cycle 20.58kWh, carbon 0kg, import 10.67kWh, changed 8 window(s)
2026-08-16 11:30:12.651015: Swap charge optimisation started metric 232.29p, cost 293.7p, min_improvement_swap 0.1p
2026-08-16 11:30:16.163793: Swap charge optimisation finished metric 232.29p, cost 293.7p
2026-08-16 11:30:16.288515: Raw charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100% ] reserve 1.12
2026-08-16 11:30:16.289507: Unclipped charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:30:16.289809: Unfiltered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:30:16.290102: Filtered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ] reserve 1.12
2026-08-16 11:30:16.332790: Previous plan best metric is 231.79 (cost 281.72) and new plan best metric is 232.29 (cost 293.7)
2026-08-16 11:30:16.333128: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 11:30:16.333391: Plan valid is now true after recompute was False
2026-08-16 11:30:16.364750: predict base end_record 08-17 11:30:00, final soc 11.05kWh, metric 587.28p, metric_keep 0kWh, min_soc 4.07kWh @ 08-17 09:55:00, load 20.82kWh, PV 0.0kWh
2026-08-16 11:30:16.479524: Battery has 48.0 hours left - now at 8.54kWh
2026-08-16 11:30:16.526683: predict base10 end_record 08-17 11:30:00, final soc 9.32kWh, metric 566.12p, metric_keep 0kWh, min_soc 3.5kWh @ 08-17 09:55:00, load 21.53kWh, PV 0.0kWh
2026-08-16 11:30:16.617024: predict best10 end_record 08-17 11:30:00, final soc 1.74kWh, metric 344.1p, metric_keep 0kWh, min_soc 1.74kWh @ 08-17 11:25:00, load 21.53kWh, PV 0.0kWh
2026-08-16 11:30:16.700760: predict best end_record 08-17 11:30:00, final soc 2.36kWh, metric 331.7p, metric_keep 0kWh, min_soc 2.36kWh @ 08-17 11:25:00, load 20.82kWh, PV 0.0kWh
2026-08-16 11:30:16.700894: Saving plan best values to HA entities
2026-08-16 11:30:16.861513: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:30:16.867536: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:30:16.873213: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.12kWh, house 0.0kWh, export 0.0kWh, metric 331.7p, metric10 344.1p
2026-08-16 11:30:16.963092: Marginal costs baseline metric (no standing charge): 281.717
2026-08-16 11:30:17.229173: Marginal energy costs matrix computed: min=0.0 max=32.2
2026-08-16 11:30:17.296484: Rate array import [{'start': 690, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2130, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 690, 'end': 2130, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:30:17.297020: - Your estimated bill for today is £2.82 and tomorrow is £7.26
2026-08-16 11:30:17.297120: - Import rates are free (0.0p) for the next 30 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:30:17.297145: - The battery is currently at 53% and is charging to 69% for the next 30 minutes.
2026-08-16 11:30:17.297164: - For the next 48 hours there will be no solar generation.
2026-08-16 11:30:17.297181: - You will reach a minimum of 15% battery in 23 hours.
2026-08-16 11:30:17.297199: - Your car is currently charging.
2026-08-16 11:30:17.297216: 
2026-08-16 11:30:17.355083: Plan calculation took 13.59 seconds
2026-08-16 11:30:17.355458: Inverter 0: Type SK Sunsynk
2026-08-16 11:30:17.355506: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:30:17.355739: Reserve min: 7%, battery_min: 7%
2026-08-16 11:30:17.355836: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:30:17.356183: Inverter 0 SoC: 8.9kW 56%, current charge rate 5000W, current discharge rate 0W, current battery power -4511W, current battery voltage 51.2V, grid power -5524W, load power 527W, PV Power 0W
2026-08-16 11:30:17.356454: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:30:17.356588: Inverter 0 scheduled charge enable is True
2026-08-16 11:30:17.356646: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:30:17.356747: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:30:17.356891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:30:17.356930: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:30:17.357036: Inverter 0 scheduled discharge enable is False
2026-08-16 11:30:17.357254: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:30:17.357300: Inverter 0 discharge windows currently []
2026-08-16 11:30:17.357327: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:30:17.357369: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:30:17.357416: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:30:17.415375: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:30:17.415503: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 11:30:17.415638: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:30:17.415805: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:30:17.416014: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:30:17.416102: No export window planned
2026-08-16 11:30:17.416217: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:30:17.416253: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:30:17.416389: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:30:17.416498: Car charging from battery is off, next slot for car 0 is 08-16 11:30:00 - 08-16 12:00:00
2026-08-16 11:30:17.416563: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:30:17.416615: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:30:17.416649: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:30:17.416699: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:30:17.416814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.416879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.416910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.416937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417138: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417168: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417196: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417243: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417270: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417296: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417324: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:30:17.417707: Inverter 0 count register writes 0
2026-08-16 11:30:17.440509: Total inverter register writes now 829
2026-08-16 11:30:17.474285: Info: Completed run status Charging, Hold for car
2026-08-16 11:30:17.481241: Info: record_status Charging, Hold for car target 56%-100.0%
2026-08-16 11:30:17.488521: Saved current settings to /config/predbat_config.json
2026-08-16 11:30:17.488888: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:30:56.605029: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:30:56.605341: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:30:56.605378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:30:56.605568: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:30:56.605608: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:30:56.605629: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:30:56.605647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:32:56.818712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:32:56.819076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:32:56.819145: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:32:56.819374: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:32:56.819455: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:32:56.819476: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:32:56.819494: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:34:57.038895: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:34:57.039165: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:34:57.039201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:34:57.039376: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:34:57.039455: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:34:57.039479: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:34:57.039497: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:35:00.119506: --------------- PredBat - update at 2026-08-16 11:35:00+01:00 with clock skew 0 minutes, minutes now 695
2026-08-16 11:35:00.120311: Saved current settings to /config/predbat_config.json
2026-08-16 11:35:00.120435: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 11:35:00.120514: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:35:00.120653: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:35:00.139899: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:35:00.140022: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:35:00.140189: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:35:00.140750: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:35:00.140870: Predbat mode is set to Control charge & discharge
2026-08-16 11:35:00.337501: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:35:00.337681: Using load_power data to fill gaps in load_today data
2026-08-16 11:35:01.197683: Processing 721 30-minute periods for power integration
2026-08-16 11:35:01.349180: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:35:01.349316: Car charging hold False, threshold 6.0kWh
2026-08-16 11:35:01.349353: Current data so far today: load 6.0kWh, import 3.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:35:01.361278: Cars: SoC: [12.306000000000001]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:35:01.361697: Standing charge is set to 49.98p
2026-08-16 11:35:01.412706: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:35:01.412830: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:35:01.413152: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 55.0 minutes
2026-08-16 11:35:01.413784: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 55.0 minutes
2026-08-16 11:35:01.420038: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:35:01.522356: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:35:01.596017: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:35:01.596427: Import rates: min 0.0p, max 49.86p, average 30.92p
2026-08-16 11:35:01.645260: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:35:01.645387: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:35:01.646794: High export rate found rates in range 99p to -99p
2026-08-16 11:35:01.752047: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:35:01.752458: Car 0 plan charging from 12.306000000000001kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 11:35:01.753559: Car 0 charging plan is: [{'start': 695, 'end': 720, 'kwh': 3.083, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 890, 'kwh': 2.134, 'average': 21.65, 'cost': 46.19, 'octopus': False}]
2026-08-16 11:35:01.768826: Battery level now 8.54kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 1.5p, change today -3.67p, rate_forward 1.0p
2026-08-16 11:35:01.769283: Last hour: net energy 2.35kWh, import 2.35kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 57.21p, import 57.21p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:35:01.834729: Today's energy total net 3.0kWh, import 3.0kWh, export 0.0kWh, cost 123.92p, import 73.93p, export 0.0p, carbon 0.0kg
2026-08-16 11:35:01.834943: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:35:01.929363: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:35:01.961250: Today's load divergence 92.72%, in-day adjustment 87.85%, damping 0.95x, yesterday 82.97% today 93.08% blend 51.74%
2026-08-16 11:35:01.961359: Today's predicted so far 7.13kWh with 0.0kWh car/iBoost excluded, 1.98kWh import ignored, and 7.13kWh forecast extra.
2026-08-16 11:35:01.961392: Today's actual load so far 6.08kWh with 0.0kWh car/iBoost excluded, and 1.98kWh import ignored.
2026-08-16 11:35:02.003939: Inverter 0: Type SK Sunsynk
2026-08-16 11:35:02.004030: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:35:02.004198: Reserve min: 7%, battery_min: 7%
2026-08-16 11:35:02.004258: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:35:02.004505: Inverter 0 SoC: 8.9kW 56%, current charge rate 5000W, current discharge rate 0W, current battery power -4513W, current battery voltage 51.2V, grid power -5333W, load power 336W, PV Power 0W
2026-08-16 11:35:02.004718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:35:02.004822: Inverter 0 scheduled charge enable is True
2026-08-16 11:35:02.004880: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:35:02.005032: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:35:02.005189: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:35:02.005228: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:35:02.005269: Inverter 0 scheduled discharge enable is False
2026-08-16 11:35:02.005412: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:35:02.005443: Inverter 0 discharge windows currently []
2026-08-16 11:35:02.005464: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:35:02.005479: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:35:02.005493: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:35:02.072580: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:35:02.072722: Plan was last updated on 2026-08-16 11:30:00+01:00 and is now 5.0 minutes old
2026-08-16 11:35:02.073231: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:35:02.073297: Best export window [  ]
2026-08-16 11:35:02.074434: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:35:02.077651: Load divergence over 8.0 hours mean 384.18W, min 261.0W, max 799.8W, std dev 104.75W, divergence 13.63%
2026-08-16 11:35:02.099487: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:35:02.099652: LoadML is_calculating False
2026-08-16 11:35:02.099725: Creating pool of 12 processes to match your CPU count
2026-08-16 11:35:02.244432: predict base end_record 08-17 11:35:00, final soc 11.43kWh, metric 601.59p, metric_keep 0kWh, min_soc 4.06kWh @ 08-17 09:55:00, load 20.9kWh, PV 0.0kWh
2026-08-16 11:35:02.397943: Battery has 48.0 hours left - now at 8.9kWh
2026-08-16 11:35:02.447616: predict base10 end_record 08-17 11:35:00, final soc 9.64kWh, metric 577.07p, metric_keep 0kWh, min_soc 3.5kWh @ 08-17 09:55:00, load 21.61kWh, PV 0.0kWh
2026-08-16 11:35:02.531129: predict best10 end_record 08-17 11:35:00, final soc 2.06kWh, metric 355.08p, metric_keep 0kWh, min_soc 1.73kWh @ 08-17 11:25:00, load 21.61kWh, PV 0.0kWh
2026-08-16 11:35:02.631552: predict best end_record 08-17 11:35:00, final soc 2.75kWh, metric 346.08p, metric_keep 0kWh, min_soc 2.36kWh @ 08-17 11:25:00, load 20.9kWh, PV 0.0kWh
2026-08-16 11:35:02.631660: Saving plan best values to HA entities
2026-08-16 11:35:02.882859: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:35:02.889900: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:35:02.903385: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.17kWh, house 0.0kWh, export 0.0kWh, metric 346.08p, metric10 355.08p
2026-08-16 11:35:02.992144: Marginal costs baseline metric (no standing charge): 296.0925
2026-08-16 11:35:03.323076: Marginal energy costs matrix computed: min=0.0 max=32.33
2026-08-16 11:35:03.402943: Rate array import [{'start': 695, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2135, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 695, 'end': 2135, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:35:03.403609: - Your estimated bill for today is £2.83 and tomorrow is £7.24
2026-08-16 11:35:03.403713: - Import rates are free (0.0p) for the next 25 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:35:03.403783: - The battery is currently at 56% and is charging to 69% for the next 25 minutes.
2026-08-16 11:35:03.404063: - For the next 48 hours there will be no solar generation.
2026-08-16 11:35:03.404108: - You will reach a minimum of 15% battery in 23 hours.
2026-08-16 11:35:03.404146: - Your car is currently charging.
2026-08-16 11:35:03.404180: 
2026-08-16 11:35:03.465730: Plan calculation took 1.39 seconds
2026-08-16 11:35:03.469218: No high rate period found
2026-08-16 11:35:03.528771: Import threshold used for optimisation was 23.43p
2026-08-16 11:35:03.609288: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 95: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 11:35:03.618790: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:35:03.618923: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 56%, target 100%
2026-08-16 11:35:03.619110: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:35:03.619332: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:35:03.619604: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:35:03.619713: No export window planned
2026-08-16 11:35:03.619839: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:35:03.619875: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:35:03.620013: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:35:03.620126: Car charging from battery is off, next slot for car 0 is 08-16 11:35:00 - 08-16 12:00:00
2026-08-16 11:35:03.620205: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:35:03.620253: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:35:03.620292: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:35:03.620351: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:35:03.620470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.620516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.620658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.620814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.620891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.620993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621165: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621236: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621295: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621379: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621451: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621515: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621590: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.621955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.622008: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.622087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:35:03.622132: Inverter 0 count register writes 0
2026-08-16 11:35:03.645913: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:35:03.655270: Total inverter register writes now 829
2026-08-16 11:35:03.691367: Info: Completed run status Charging, Hold for car
2026-08-16 11:35:03.698503: Info: record_status Charging, Hold for car target 56%-100.0%
2026-08-16 11:35:03.706785: Saved current settings to /config/predbat_config.json
2026-08-16 11:35:03.707120: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:35:41.826969: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:35:41.827259: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:35:41.827341: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:35:41.827570: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:35:41.827615: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:35:41.827637: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:35:41.827655: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:37:42.048746: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:37:42.049137: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:37:42.049193: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:37:42.049383: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:37:42.049456: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:37:42.049478: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:37:42.049511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:39:42.280535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:39:42.280800: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:39:42.280843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:39:42.281011: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:39:42.281104: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:39:42.281127: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:39:42.281145: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:40:00.383332: --------------- PredBat - update at 2026-08-16 11:40:00+01:00 with clock skew 0 minutes, minutes now 700
2026-08-16 11:40:00.384215: Saved current settings to /config/predbat_config.json
2026-08-16 11:40:00.384407: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 11:40:00.384577: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:40:00.384739: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:40:00.401379: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:40:00.401557: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:40:00.401838: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:40:00.402452: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:40:00.402603: Predbat mode is set to Control charge & discharge
2026-08-16 11:40:00.590078: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:40:00.590228: Using load_power data to fill gaps in load_today data
2026-08-16 11:40:01.478641: Processing 721 30-minute periods for power integration
2026-08-16 11:40:01.648972: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:40:01.649117: Car charging hold False, threshold 6.0kWh
2026-08-16 11:40:01.649164: Current data so far today: load 6.05kWh, import 3.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:40:01.666033: Cars: SoC: [12.306000000000001]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:40:01.666517: Standing charge is set to 49.98p
2026-08-16 11:40:01.715476: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:40:01.715582: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:40:01.715891: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 60.0 minutes
2026-08-16 11:40:01.716296: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 60.0 minutes
2026-08-16 11:40:01.722891: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:40:01.811691: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:40:01.869420: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:40:01.869870: Import rates: min 0.0p, max 49.86p, average 30.97p
2026-08-16 11:40:01.915383: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:40:01.915508: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:40:01.916778: High export rate found rates in range 99p to -99p
2026-08-16 11:40:01.997732: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:40:01.998114: Car 0 plan charging from 12.306000000000001kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 11:40:01.999027: Car 0 charging plan is: [{'start': 700, 'end': 720, 'kwh': 2.467, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 895, 'kwh': 2.751, 'average': 21.65, 'cost': 59.56, 'octopus': False}]
2026-08-16 11:40:02.016143: Battery level now 8.9kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 1.86p, change today -3.31p, rate_forward 1.0p
2026-08-16 11:40:02.016530: Last hour: net energy 3.23kWh, import 3.23kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 65.32p, import 65.32p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:40:02.079147: Today's energy total net 3.9kWh, import 3.9kWh, export 0.0kWh, cost 134.83p, import 84.85p, export 0.0p, carbon 0.0kg
2026-08-16 11:40:02.079307: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:40:02.168644: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:40:02.197252: Today's load divergence 92.37%, in-day adjustment 87.73%, damping 0.95x, yesterday 82.97% today 92.76% blend 51.39%
2026-08-16 11:40:02.197380: Today's predicted so far 7.17kWh with 0.0kWh car/iBoost excluded, 2.79kWh import ignored, and 7.17kWh forecast extra.
2026-08-16 11:40:02.197412: Today's actual load so far 6.07kWh with 0.0kWh car/iBoost excluded, and 2.79kWh import ignored.
2026-08-16 11:40:02.234786: Inverter 0: Type SK Sunsynk
2026-08-16 11:40:02.234883: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:40:02.235085: Reserve min: 7%, battery_min: 7%
2026-08-16 11:40:02.235164: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:40:02.235463: Inverter 0 SoC: 9.59kW 60%, current charge rate 5000W, current discharge rate 0W, current battery power -4519W, current battery voltage 51.2V, grid power -5717W, load power 720W, PV Power 0W
2026-08-16 11:40:02.235630: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:40:02.235724: Inverter 0 scheduled charge enable is True
2026-08-16 11:40:02.235775: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:40:02.235890: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:40:02.236012: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:40:02.236048: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:40:02.236085: Inverter 0 scheduled discharge enable is False
2026-08-16 11:40:02.236209: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:40:02.236246: Inverter 0 discharge windows currently []
2026-08-16 11:40:02.236285: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:40:02.236308: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:40:02.236325: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:40:02.300611: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:40:02.300776: Plan was last updated on 2026-08-16 11:30:00+01:00 and is now 10.0 minutes old
2026-08-16 11:40:02.301221: Best charge window [ 16-08 11:00:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 72%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 16:00:00 @ 22.56p 97%, 17-08 11:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 11:30:00 @ 27.66p 100% ]
2026-08-16 11:40:02.301293: Best export window [  ]
2026-08-16 11:40:02.302091: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:40:02.305319: Load divergence over 8.0 hours mean 386.04W, min 250.2W, max 797.4W, std dev 108.26W, divergence 14.02%
2026-08-16 11:40:02.324245: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:40:02.324378: LoadML is_calculating False
2026-08-16 11:40:02.324443: Creating pool of 12 processes to match your CPU count
2026-08-16 11:40:02.454879: predict base end_record 08-17 11:40:00, final soc 11.84kWh, metric 618.52p, metric_keep 0kWh, min_soc 4.08kWh @ 08-17 09:55:00, load 20.94kWh, PV 0.0kWh
2026-08-16 11:40:02.599958: Battery has 48.0 hours left - now at 9.59kWh
2026-08-16 11:40:02.647040: predict base10 end_record 08-17 11:40:00, final soc 9.97kWh, metric 590.66p, metric_keep 0kWh, min_soc 3.51kWh @ 08-17 09:55:00, load 21.65kWh, PV 0.0kWh
2026-08-16 11:40:02.733023: predict best10 end_record 08-17 11:40:00, final soc 2.39kWh, metric 368.45p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:25:00, load 21.65kWh, PV 0.0kWh
2026-08-16 11:40:02.819908: predict best end_record 08-17 11:40:00, final soc 3.15kWh, metric 363.0p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 11:25:00, load 20.94kWh, PV 0.0kWh
2026-08-16 11:40:02.820010: Saving plan best values to HA entities
2026-08-16 11:40:03.010750: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:40:03.018955: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:40:03.026012: Best charging limit SoC's [16.0, 11.0, 11.5, 16.0, 15.5, 16.0, 16.0]kWh, export []kWh gives import battery 9.84kWh, house 0.0kWh, export 0.0kWh, metric 363.0p, metric10 368.45p
2026-08-16 11:40:03.112340: Marginal costs baseline metric (no standing charge): 313.0135
2026-08-16 11:40:03.420698: Marginal energy costs matrix computed: min=0.0 max=32.36
2026-08-16 11:40:03.512386: Rate array import [{'start': 700, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2140, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 700, 'end': 2140, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:40:03.512821: - Your estimated bill for today is £2.86 and tomorrow is £7.25
2026-08-16 11:40:03.512868: - Import rates are free (0.0p) for the next 20 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:40:03.512891: - The battery is currently at 60% and is charging to 69% for the next 20 minutes.
2026-08-16 11:40:03.512909: - For the next 48 hours there will be no solar generation.
2026-08-16 11:40:03.512935: - You will reach a minimum of 15% battery in 23 hours.
2026-08-16 11:40:03.512990: - Your car is currently charging.
2026-08-16 11:40:03.513011: 
2026-08-16 11:40:03.565020: Plan calculation took 1.26 seconds
2026-08-16 11:40:03.568439: No high rate period found
2026-08-16 11:40:03.621473: Import threshold used for optimisation was 23.43p
2026-08-16 11:40:03.678340: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 95: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 11:40:03.686628: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:00:00
2026-08-16 11:40:03.686758: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 11:40:03.686964: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:40:03.687200: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:40:03.687492: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:40:03.687598: No export window planned
2026-08-16 11:40:03.687747: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:40:03.687798: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:40:03.687939: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:40:03.688077: Car charging from battery is off, next slot for car 0 is 08-16 11:40:00 - 08-16 12:00:00
2026-08-16 11:40:03.688158: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:40:03.688208: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:40:03.688241: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:40:03.688312: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:40:03.688433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688688: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688714: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688762: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688801: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688829: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688856: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.688921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:03.689188: Inverter 0 count register writes 0
2026-08-16 11:40:03.705928: 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-16 11:40:03.706127: Recompute is saving previous plan...
2026-08-16 11:40:03.709487: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ]
2026-08-16 11:40:03.709574: Best export window [  ]
2026-08-16 11:40:03.710390: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:40:03.713474: Load divergence over 8.0 hours mean 386.04W, min 250.2W, max 797.4W, std dev 108.26W, divergence 14.02%
2026-08-16 11:40:03.731588: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:40:03.731705: LoadML is_calculating False
2026-08-16 11:40:03.731776: Creating pool of 12 processes to match your CPU count
2026-08-16 11:40:03.827611: 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(0.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-16 11:40:03.829717: Optimise levels pass started at 2026-08-16 11:40:03
2026-08-16 11:40:03.829790: Optimise all windows, total charge 95 export 1
2026-08-16 11:40:05.363096: >> Region optimisation pass width 960 gives best_metric 713.79p, best_cost 731.26p, best_cycle 31.07kWh, best_import 24.56kWh
2026-08-16 11:40:07.058749: >> Region optimisation pass width 480 gives best_metric 710.01p, best_cost 728.14p, best_cycle 29.04kWh, best_import 24.41kWh
2026-08-16 11:40:09.790365: >> Region optimisation pass width 240 gives best_metric 703.13p, best_cost 721.6p, best_cycle 26.37kWh, best_import 24.22kWh
2026-08-16 11:40:11.513463: >> Region optimisation pass width 120 gives best_metric 700.23p, best_cost 718.5p, best_cycle 27.6kWh, best_import 24.31kWh
2026-08-16 11:40:11.513902: Calculated end_record as 08-17 12:00:00 based on best_price 27.09p, next_charge_start 08-16 12:00:00, max_windows 49
2026-08-16 11:40:11.513978: Optimise levels pass ended at 2026-08-16 11:40:11, duration 7.7 seconds tried 394 combinations
2026-08-16 11:40:11.514068: Set best_price_charge_level 29.0p, best_price_export_level 0p, best_price_charge 27.09p, best_cost_export 0p, best_metric 700.23p, best_keep 0kWh, best_cycle 27.6kWh, best_carbon 0kg, best_import 24.31kWh
2026-08-16 11:40:11.532392: Starting detailed optimisation end_record 08-17 12:00:00, best_price_charge 27.09p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [12.0, 0, 12.0, 0, 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, 7.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.75, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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-16 11:40:15.612924: Tweak plan optimisation started metric 247.55p, cost 297.7p
2026-08-16 11:40:15.872903: Tweak optimisation finished metric 247.55p, cost 297.7p, metric_keep 0kWh, cycle 19.84kWh, carbon 0kg, import 9.37kWh, changed 8 window(s)
2026-08-16 11:40:15.894374: Swap charge optimisation started metric 247.55p, cost 297.7p, min_improvement_swap 0.1p
2026-08-16 11:40:19.577852: Swap charge optimisation finished metric 247.55p, cost 297.7p
2026-08-16 11:40:19.696898: Raw charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ] reserve 1.12
2026-08-16 11:40:19.697625: Unclipped charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:40:19.697913: Unfiltered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:40:19.698145: Filtered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:40:19.740977: Previous plan best metric is 262.35 (cost 366.46) and new plan best metric is 247.55 (cost 297.7)
2026-08-16 11:40:19.741295: New plan metric is significantly better from previous plan, using new plan
2026-08-16 11:40:19.741339: Plan valid is now true after recompute was False
2026-08-16 11:40:19.773196: predict base end_record 08-17 12:00:00, final soc 13.39kWh, metric 671.97p, metric_keep 0kWh, min_soc 4.08kWh @ 08-17 09:55:00, load 21.25kWh, PV 0.0kWh
2026-08-16 11:40:19.881181: Battery has 48.0 hours left - now at 9.59kWh
2026-08-16 11:40:19.918710: predict base10 end_record 08-17 12:00:00, final soc 11.27kWh, metric 636.99p, metric_keep 0kWh, min_soc 3.51kWh @ 08-17 09:55:00, load 21.97kWh, PV 0.0kWh
2026-08-16 11:40:19.981759: predict best10 end_record 08-17 12:00:00, final soc 1.7kWh, metric 356.82p, metric_keep 0kWh, min_soc 1.7kWh @ 08-17 11:55:00, load 21.97kWh, PV 0.0kWh
2026-08-16 11:40:20.060173: predict best end_record 08-17 12:00:00, final soc 2.35kWh, metric 347.68p, metric_keep 0kWh, min_soc 2.35kWh @ 08-17 11:55:00, load 21.25kWh, PV 0.0kWh
2026-08-16 11:40:20.060278: Saving plan best values to HA entities
2026-08-16 11:40:20.198597: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:40:20.203100: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:40:20.207652: Best charging limit SoC's [16.0, 11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.37kWh, house 0.0kWh, export 0.0kWh, metric 347.68p, metric10 356.82p
2026-08-16 11:40:20.274511: Marginal costs baseline metric (no standing charge): 297.6989
2026-08-16 11:40:20.511698: Marginal energy costs matrix computed: min=0.0 max=32.15
2026-08-16 11:40:20.587216: Rate array import [{'start': 700, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2160, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 700, 'end': 2160, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:40:20.587659: - Your estimated bill for today is £2.98 and tomorrow is £7.12
2026-08-16 11:40:20.587705: - Import rates are free (0.0p) for the next 20 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:40:20.587727: - The battery is currently at 60% and is charging to 70% for the next 20 minutes.
2026-08-16 11:40:20.587747: - For the next 48 hours there will be no solar generation.
2026-08-16 11:40:20.587770: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:40:20.587789: - Your car is currently charging.
2026-08-16 11:40:20.587806: 
2026-08-16 11:40:20.634365: Plan calculation took 16.93 seconds
2026-08-16 11:40:20.634793: Inverter 0: Type SK Sunsynk
2026-08-16 11:40:20.634834: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:40:20.635037: Reserve min: 7%, battery_min: 7%
2026-08-16 11:40:20.635103: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:40:20.635412: Inverter 0 SoC: 9.59kW 60%, current charge rate 5000W, current discharge rate 0W, current battery power -4519W, current battery voltage 51.2V, grid power -5452W, load power 455W, PV Power 0W
2026-08-16 11:40:20.635618: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:40:20.635711: Inverter 0 scheduled charge enable is True
2026-08-16 11:40:20.635756: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:40:20.635832: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:40:20.635936: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:40:20.635967: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:40:20.635996: Inverter 0 scheduled discharge enable is False
2026-08-16 11:40:20.636099: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:40:20.636130: Inverter 0 discharge windows currently []
2026-08-16 11:40:20.636150: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:40:20.636183: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:40:20.636199: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:40:20.709918: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:30:00
2026-08-16 11:40:20.710084: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 60%, target 100%
2026-08-16 11:40:20.710224: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:40:20.710419: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:40:20.710614: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:40:20.710700: No export window planned
2026-08-16 11:40:20.710811: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:40:20.710846: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:40:20.710984: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:40:20.711088: Car charging from battery is off, next slot for car 0 is 08-16 11:40:00 - 08-16 12:00:00
2026-08-16 11:40:20.711149: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:40:20.711193: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:40:20.711226: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:40:20.711291: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:40:20.711413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711634: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711662: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711689: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711719: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711745: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711769: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711793: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.711989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.712021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.712046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:40:20.712067: Inverter 0 count register writes 0
2026-08-16 11:40:20.737324: Total inverter register writes now 829
2026-08-16 11:40:20.771966: Info: Completed run status Charging, Hold for car
2026-08-16 11:40:20.778695: Info: record_status Charging, Hold for car target 60%-100.0%
2026-08-16 11:40:20.785747: Saved current settings to /config/predbat_config.json
2026-08-16 11:40:20.786113: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:40:56.897833: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:40:56.898158: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:40:56.898202: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:40:56.898365: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:40:56.898406: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:40:56.898428: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:40:56.898446: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:42:57.122017: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:42:57.122317: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:42:57.122365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:42:57.122509: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:42:57.122549: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:42:57.122571: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:42:57.122607: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:44:57.347933: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:44:57.348378: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:44:57.348454: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:44:57.348728: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:44:57.348824: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:44:57.348851: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:44:57.348870: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:45:00.445103: --------------- PredBat - update at 2026-08-16 11:45:00+01:00 with clock skew 0 minutes, minutes now 705
2026-08-16 11:45:00.445880: Saved current settings to /config/predbat_config.json
2026-08-16 11:45:00.446043: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 11:45:00.446119: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:45:00.446232: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:45:00.471425: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:45:00.471571: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:45:00.471741: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:45:00.472278: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:45:00.472400: Predbat mode is set to Control charge & discharge
2026-08-16 11:45:00.653930: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:45:00.654070: Using load_power data to fill gaps in load_today data
2026-08-16 11:45:01.368560: Processing 721 30-minute periods for power integration
2026-08-16 11:45:01.529419: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:45:01.529531: Car charging hold False, threshold 6.0kWh
2026-08-16 11:45:01.529568: Current data so far today: load 6.1kWh, import 3.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:45:01.541378: Cars: SoC: [13.478]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:45:01.541814: Standing charge is set to 49.98p
2026-08-16 11:45:01.580666: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:45:01.580752: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:45:01.580995: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 65.0 minutes
2026-08-16 11:45:01.581388: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 65.0 minutes
2026-08-16 11:45:01.586492: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:45:01.666816: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:45:01.717330: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:45:01.717682: Import rates: min 0.0p, max 49.86p, average 31.01p
2026-08-16 11:45:01.753235: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:45:01.753371: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:45:01.754450: High export rate found rates in range 99p to -99p
2026-08-16 11:45:01.832385: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:45:01.832774: Car 0 plan charging from 13.478kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 11:45:01.833662: Car 0 charging plan is: [{'start': 705, 'end': 720, 'kwh': 1.85, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 890, 'kwh': 2.093, 'average': 21.65, 'cost': 45.32, 'octopus': False}]
2026-08-16 11:45:01.847986: Battery level now 9.59kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 2.55p, change today -2.62p, rate_forward 1.0p
2026-08-16 11:45:01.848321: Last hour: net energy 3.2kWh, import 3.2kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 64.7p, import 64.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:45:01.908396: Today's energy total net 3.9kWh, import 3.9kWh, export 0.0kWh, cost 134.83p, import 84.85p, export 0.0p, carbon 0.0kg
2026-08-16 11:45:01.908558: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:45:01.979651: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:45:02.003261: Today's load divergence 91.98%, in-day adjustment 87.58%, damping 0.95x, yesterday 82.97% today 92.38% blend 51.04%
2026-08-16 11:45:02.003354: Today's predicted so far 7.21kWh with 0.0kWh car/iBoost excluded, 2.8kWh import ignored, and 7.21kWh forecast extra.
2026-08-16 11:45:02.003383: Today's actual load so far 6.05kWh with 0.0kWh car/iBoost excluded, and 2.8kWh import ignored.
2026-08-16 11:45:02.049317: Inverter 0: Type SK Sunsynk
2026-08-16 11:45:02.049422: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:45:02.049684: Reserve min: 7%, battery_min: 7%
2026-08-16 11:45:02.049784: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:45:02.050098: Inverter 0 SoC: 9.94kW 62%, current charge rate 5000W, current discharge rate 0W, current battery power -4520W, current battery voltage 51.2V, grid power -5332W, load power 336W, PV Power 0W
2026-08-16 11:45:02.050331: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:45:02.050466: Inverter 0 scheduled charge enable is True
2026-08-16 11:45:02.050544: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:45:02.050696: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:45:02.050917: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:45:02.050975: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:45:02.051044: Inverter 0 scheduled discharge enable is False
2026-08-16 11:45:02.051234: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:45:02.051287: Inverter 0 discharge windows currently []
2026-08-16 11:45:02.051331: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:45:02.051367: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:45:02.051399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:45:02.117689: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:45:02.117834: Plan was last updated on 2026-08-16 11:40:00+01:00 and is now 5.0 minutes old
2026-08-16 11:45:02.118172: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 11:45:02.118226: Best export window [  ]
2026-08-16 11:45:02.119140: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:45:02.122687: Load divergence over 8.0 hours mean 387.46W, min 247.2W, max 816.0W, std dev 114.07W, divergence 14.72%
2026-08-16 11:45:02.141359: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:45:02.141477: LoadML is_calculating False
2026-08-16 11:45:02.141543: Creating pool of 12 processes to match your CPU count
2026-08-16 11:45:02.269497: predict base end_record 08-17 12:05:00, final soc 13.79kWh, metric 685.99p, metric_keep 0kWh, min_soc 4.09kWh @ 08-17 09:55:00, load 21.28kWh, PV 0.0kWh
2026-08-16 11:45:02.416229: Battery has 48.0 hours left - now at 9.94kWh
2026-08-16 11:45:02.462533: predict base10 end_record 08-17 12:05:00, final soc 11.61kWh, metric 647.66p, metric_keep 0kWh, min_soc 3.52kWh @ 08-17 09:55:00, load 22.01kWh, PV 0.0kWh
2026-08-16 11:45:02.542071: predict best10 end_record 08-17 12:05:00, final soc 2.03kWh, metric 367.24p, metric_keep 0kWh, min_soc 1.71kWh @ 08-17 11:55:00, load 22.01kWh, PV 0.0kWh
2026-08-16 11:45:02.625199: predict best end_record 08-17 12:05:00, final soc 2.75kWh, metric 361.46p, metric_keep 0kWh, min_soc 2.36kWh @ 08-17 11:55:00, load 21.28kWh, PV 0.0kWh
2026-08-16 11:45:02.625723: Saving plan best values to HA entities
2026-08-16 11:45:02.794485: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:45:02.799968: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:45:02.805622: Best charging limit SoC's [16.0, 11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.4kWh, house 0kWh, export 0.0kWh, metric 361.46p, metric10 367.24p
2026-08-16 11:45:02.884343: Marginal costs baseline metric (no standing charge): 311.4762
2026-08-16 11:45:03.193739: Marginal energy costs matrix computed: min=0.0 max=32.19
2026-08-16 11:45:03.267120: Rate array import [{'start': 705, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2165, 'rate': 'expensive', 'range': '(26.8p - 33.3p)'}] export [{'start': 705, 'end': 2165, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:45:03.267632: - Your estimated bill for today is £2.98 and tomorrow is £7.14
2026-08-16 11:45:03.267695: - Import rates are free (0.0p) for the next 15 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:45:03.267737: - The battery is currently at 62% and is charging to 70% for the next 15 minutes.
2026-08-16 11:45:03.267786: - For the next 48 hours there will be no solar generation.
2026-08-16 11:45:03.267831: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:45:03.267894: - Your car is currently charging.
2026-08-16 11:45:03.267930: 
2026-08-16 11:45:03.320577: Plan calculation took 1.20 seconds
2026-08-16 11:45:03.324073: No high rate period found
2026-08-16 11:45:03.376578: Import threshold used for optimisation was 23.43p
2026-08-16 11:45:03.450217: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 95: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 11:45:03.462050: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:30:00
2026-08-16 11:45:03.462198: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 62%, target 100%
2026-08-16 11:45:03.462443: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:45:03.462775: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:45:03.463106: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:45:03.463222: No export window planned
2026-08-16 11:45:03.463354: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:45:03.463391: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:45:03.463526: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:45:03.463635: Car charging from battery is off, next slot for car 0 is 08-16 11:45:00 - 08-16 12:00:00
2026-08-16 11:45:03.463721: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:45:03.463789: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:45:03.463827: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:45:03.463886: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:45:03.464002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464106: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464292: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464329: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464360: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464386: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464415: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464444: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464468: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:45:03.464849: Inverter 0 count register writes 0
2026-08-16 11:45:03.488098: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:45:03.496065: Total inverter register writes now 829
2026-08-16 11:45:03.538807: Info: Completed run status Charging, Hold for car
2026-08-16 11:45:03.544703: Info: record_status Charging, Hold for car target 62%-100.0%
2026-08-16 11:45:03.552546: Saved current settings to /config/predbat_config.json
2026-08-16 11:45:03.552878: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:45:41.665532: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:45:41.665892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:45:41.665990: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:45:41.666217: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:45:41.666270: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:45:41.666304: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:45:41.666348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:47:41.904496: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:47:41.904762: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:47:41.904798: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:47:41.904930: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:47:41.904989: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:47:41.905015: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:47:41.905033: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:49:42.146577: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:49:42.146850: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:49:42.146905: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:49:42.147085: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:49:42.147142: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:49:42.147163: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:49:42.147181: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:50:00.255976: --------------- PredBat - update at 2026-08-16 11:50:00+01:00 with clock skew 0 minutes, minutes now 710
2026-08-16 11:50:00.257294: Saved current settings to /config/predbat_config.json
2026-08-16 11:50:00.257535: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 11:50:00.257691: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:50:00.258440: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:50:00.284866: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:50:00.285058: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:50:00.285220: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:50:00.285707: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:50:00.285809: Predbat mode is set to Control charge & discharge
2026-08-16 11:50:00.472183: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:50:00.472367: Using load_power data to fill gaps in load_today data
2026-08-16 11:50:01.394939: Processing 721 30-minute periods for power integration
2026-08-16 11:50:01.588663: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:50:01.588844: Car charging hold False, threshold 6.0kWh
2026-08-16 11:50:01.588910: Current data so far today: load 6.15kWh, import 4.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:50:01.606041: Cars: SoC: [13.478]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:50:01.606560: Standing charge is set to 49.98p
2026-08-16 11:50:01.658947: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:50:01.659054: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:50:01.659269: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 70.0 minutes
2026-08-16 11:50:01.659695: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 70.0 minutes
2026-08-16 11:50:01.665548: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:50:01.774126: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:50:01.840078: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:50:01.840911: Import rates: min 0.0p, max 49.86p, average 31.06p
2026-08-16 11:50:01.885588: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:50:01.885728: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:50:01.887110: High export rate found rates in range 99p to -99p
2026-08-16 11:50:01.981834: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:50:01.982331: Car 0 plan charging from 13.478kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 11:50:01.983596: Car 0 charging plan is: [{'start': 710, 'end': 720, 'kwh': 1.233, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 895, 'kwh': 2.71, 'average': 21.65, 'cost': 58.67, 'octopus': False}]
2026-08-16 11:50:02.001852: Battery level now 9.94kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 2.9p, change today -2.26p, rate_forward 1.0p
2026-08-16 11:50:02.002232: Last hour: net energy 4.15kWh, import 4.15kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 63.45p, import 63.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:50:02.064117: Today's energy total net 4.9kWh, import 4.9kWh, export 0.0kWh, cost 134.83p, import 84.85p, export 0.0p, carbon 0.0kg
2026-08-16 11:50:02.064264: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:50:02.149293: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:50:02.177683: Today's load divergence 91.98%, in-day adjustment 87.61%, damping 0.95x, yesterday 82.97% today 92.38% blend 50.69%
2026-08-16 11:50:02.177777: Today's predicted so far 7.26kWh with 0.0kWh car/iBoost excluded, 3.69kWh import ignored, and 7.26kWh forecast extra.
2026-08-16 11:50:02.177809: Today's actual load so far 6.1kWh with 0.0kWh car/iBoost excluded, and 3.69kWh import ignored.
2026-08-16 11:50:02.213613: Inverter 0: Type SK Sunsynk
2026-08-16 11:50:02.213710: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:50:02.213927: Reserve min: 7%, battery_min: 7%
2026-08-16 11:50:02.214007: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:50:02.214310: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 0W, current battery power -4526W, current battery voltage 51.2V, grid power -5366W, load power 370W, PV Power 0W
2026-08-16 11:50:02.214470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:50:02.214602: Inverter 0 scheduled charge enable is True
2026-08-16 11:50:02.214659: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:50:02.214755: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:50:02.214882: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:50:02.214918: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:50:02.214953: Inverter 0 scheduled discharge enable is False
2026-08-16 11:50:02.215079: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:50:02.215115: Inverter 0 discharge windows currently []
2026-08-16 11:50:02.215137: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:50:02.215161: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:50:02.215178: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:50:02.284332: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:50:02.284449: Plan was last updated on 2026-08-16 11:40:00+01:00 and is now 10.0 minutes old
2026-08-16 11:50:02.284775: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 11:50:02.284823: Best export window [  ]
2026-08-16 11:50:02.285771: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:50:02.288995: Load divergence over 8.0 hours mean 387.31W, min 244.2W, max 845.4W, std dev 108.37W, divergence 13.99%
2026-08-16 11:50:02.307483: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:50:02.307624: LoadML is_calculating False
2026-08-16 11:50:02.307695: Creating pool of 12 processes to match your CPU count
2026-08-16 11:50:02.435637: predict base end_record 08-17 12:10:00, final soc 14.2kWh, metric 700.15p, metric_keep 0kWh, min_soc 4.11kWh @ 08-17 09:55:00, load 21.32kWh, PV 0.0kWh
2026-08-16 11:50:02.561886: Battery has 48.0 hours left - now at 10.29kWh
2026-08-16 11:50:02.600582: predict base10 end_record 08-17 12:10:00, final soc 11.95kWh, metric 658.46p, metric_keep 0kWh, min_soc 3.54kWh @ 08-17 09:55:00, load 22.05kWh, PV 0.0kWh
2026-08-16 11:50:02.669438: predict best10 end_record 08-17 12:10:00, final soc 2.37kWh, metric 377.83p, metric_keep 0kWh, min_soc 1.72kWh @ 08-17 11:55:00, load 22.05kWh, PV 0.0kWh
2026-08-16 11:50:02.749053: predict best end_record 08-17 12:10:00, final soc 3.15kWh, metric 375.42p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 11:55:00, load 21.32kWh, PV 0.0kWh
2026-08-16 11:50:02.749528: Saving plan best values to HA entities
2026-08-16 11:50:02.932592: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:50:02.937937: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:50:02.943557: Best charging limit SoC's [16.0, 11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.45kWh, house 0.0kWh, export 0.0kWh, metric 375.42p, metric10 377.83p
2026-08-16 11:50:03.015342: Marginal costs baseline metric (no standing charge): 325.4382
2026-08-16 11:50:03.267742: Marginal energy costs matrix computed: min=0.0 max=32.21
2026-08-16 11:50:03.338181: Rate array import [{'start': 710, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2170, 'rate': 'expensive', 'range': '(26.8p - 33.3p)'}] export [{'start': 710, 'end': 2170, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:50:03.338546: - Your estimated bill for today is £2.99 and tomorrow is £7.14
2026-08-16 11:50:03.338614: - Import rates are free (0.0p) for the next 10 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:50:03.338644: - The battery is currently at 64% and is charging to 70% for the next 10 minutes.
2026-08-16 11:50:03.338668: - For the next 48 hours there will be no solar generation.
2026-08-16 11:50:03.338691: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:50:03.338716: - Your car is currently charging.
2026-08-16 11:50:03.338745: 
2026-08-16 11:50:03.388874: Plan calculation took 1.10 seconds
2026-08-16 11:50:03.392328: No high rate period found
2026-08-16 11:50:03.438865: Import threshold used for optimisation was 23.43p
2026-08-16 11:50:03.488704: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 95: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 11:50:03.495692: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:30:00
2026-08-16 11:50:03.495821: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 11:50:03.495970: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:50:03.496143: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:50:03.496351: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:50:03.496434: No export window planned
2026-08-16 11:50:03.496540: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:50:03.496570: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:50:03.496699: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:50:03.496788: Car charging from battery is off, next slot for car 0 is 08-16 11:50:00 - 08-16 12:00:00
2026-08-16 11:50:03.496846: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:50:03.496891: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:50:03.496917: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:50:03.496988: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:50:03.497083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497264: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497292: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497317: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497338: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497361: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497383: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497402: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:03.497641: Inverter 0 count register writes 0
2026-08-16 11:50:03.513743: 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-16 11:50:03.513955: Recompute is saving previous plan...
2026-08-16 11:50:03.517197: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ]
2026-08-16 11:50:03.517293: Best export window [  ]
2026-08-16 11:50:03.518179: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:50:03.521371: Load divergence over 8.0 hours mean 387.31W, min 244.2W, max 845.4W, std dev 108.37W, divergence 13.99%
2026-08-16 11:50:03.539381: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:50:03.539512: LoadML is_calculating False
2026-08-16 11:50:03.539601: Creating pool of 12 processes to match your CPU count
2026-08-16 11:50:03.635486: 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(0.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-16 11:50:03.637650: Optimise levels pass started at 2026-08-16 11:50:03
2026-08-16 11:50:03.637721: Optimise all windows, total charge 95 export 1
2026-08-16 11:50:05.031337: >> Region optimisation pass width 960 gives best_metric 718.84p, best_cost 737.63p, best_cycle 34.3kWh, best_import 24.08kWh
2026-08-16 11:50:06.930203: >> Region optimisation pass width 480 gives best_metric 716.59p, best_cost 735.24p, best_cycle 30.46kWh, best_import 23.8kWh
2026-08-16 11:50:09.477118: >> Region optimisation pass width 240 gives best_metric 714.98p, best_cost 733.53p, best_cycle 28.88kWh, best_import 23.69kWh
2026-08-16 11:50:11.532559: >> Region optimisation pass width 120 gives best_metric 709.19p, best_cost 727.57p, best_cycle 29.77kWh, best_import 23.76kWh
2026-08-16 11:50:11.532975: Calculated end_record as 08-17 12:00:00 based on best_price 29.64p, next_charge_start 08-16 12:00:00, max_windows 49
2026-08-16 11:50:11.533298: Optimise levels pass ended at 2026-08-16 11:50:11, duration 7.9 seconds tried 399 combinations
2026-08-16 11:50:11.533390: Set best_price_charge_level 31.8p, best_price_export_level 0p, best_price_charge 29.64p, best_cost_export 0p, best_metric 709.19p, best_keep 0kWh, best_cycle 29.77kWh, best_carbon 0kg, best_import 23.76kWh
2026-08-16 11:50:11.551987: Starting detailed optimisation end_record 08-17 12:00:00, best_price_charge 29.64p, best_price_export 0p. lowest_price_charge 0.0p with charge limits [12.0, 0, 12.0, 0, 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, 8.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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-16 11:50:16.946050: Tweak plan optimisation started metric 248.43p, cost 299.42p
2026-08-16 11:50:17.210145: Tweak optimisation finished metric 248.43p, cost 299.42p, metric_keep 0kWh, cycle 19.11kWh, carbon 0kg, import 8.48kWh, changed 8 window(s)
2026-08-16 11:50:17.231824: Swap charge optimisation started metric 248.43p, cost 299.42p, min_improvement_swap 0.1p
2026-08-16 11:50:20.659420: Swap charge optimisation finished metric 248.43p, cost 299.42p
2026-08-16 11:50:20.765575: Raw charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ] reserve 1.12
2026-08-16 11:50:20.766362: Unclipped charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:50:20.766764: Unfiltered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:50:20.767137: Filtered charge windows [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 11:50:20.811013: Previous plan best metric is 248.43 (cost 299.42) and new plan best metric is 248.43 (cost 299.42)
2026-08-16 11:50:20.811319: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 11:50:20.811601: Plan valid is now true after recompute was False
2026-08-16 11:50:20.844248: predict base end_record 08-17 12:00:00, final soc 13.42kWh, metric 674.13p, metric_keep 0kWh, min_soc 4.11kWh @ 08-17 09:55:00, load 21.19kWh, PV 0.0kWh
2026-08-16 11:50:20.975574: Battery has 48.0 hours left - now at 10.29kWh
2026-08-16 11:50:21.023925: predict base10 end_record 08-17 12:00:00, final soc 11.3kWh, metric 636.0p, metric_keep 0kWh, min_soc 3.54kWh @ 08-17 09:55:00, load 21.9kWh, PV 0.0kWh
2026-08-16 11:50:21.109224: predict best10 end_record 08-17 12:00:00, final soc 1.72kWh, metric 355.37p, metric_keep 0kWh, min_soc 1.72kWh @ 08-17 11:55:00, load 21.9kWh, PV 0.0kWh
2026-08-16 11:50:21.195678: predict best end_record 08-17 12:00:00, final soc 2.37kWh, metric 349.4p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 11:55:00, load 21.19kWh, PV 0.0kWh
2026-08-16 11:50:21.195780: Saving plan best values to HA entities
2026-08-16 11:50:21.400001: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:50:21.404707: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:50:21.410490: Best charging limit SoC's [16.0, 11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.48kWh, house 0.0kWh, export 0.0kWh, metric 349.4p, metric10 355.37p
2026-08-16 11:50:21.485142: Marginal costs baseline metric (no standing charge): 299.4213
2026-08-16 11:50:21.735623: Marginal energy costs matrix computed: min=0.0 max=32.21
2026-08-16 11:50:21.801255: Rate array import [{'start': 710, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2160, 'rate': 'expensive', 'range': '(27.1p - 33.3p)'}] export [{'start': 710, 'end': 2160, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:50:21.801666: - Your estimated bill for today is £2.99 and tomorrow is £7.14
2026-08-16 11:50:21.801722: - Import rates are free (0.0p) for the next 10 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:50:21.801747: - The battery is currently at 64% and is charging to 70% for the next 10 minutes.
2026-08-16 11:50:21.801762: - For the next 48 hours there will be no solar generation.
2026-08-16 11:50:21.801780: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:50:21.801794: - Your car is currently charging.
2026-08-16 11:50:21.802011: 
2026-08-16 11:50:21.849743: Plan calculation took 18.34 seconds
2026-08-16 11:50:21.850125: Inverter 0: Type SK Sunsynk
2026-08-16 11:50:21.850173: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:50:21.850395: Reserve min: 7%, battery_min: 7%
2026-08-16 11:50:21.850477: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:50:21.850856: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 0W, current battery power -4526W, current battery voltage 51.2V, grid power -5470W, load power 474W, PV Power 0W
2026-08-16 11:50:21.851098: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:50:21.851205: Inverter 0 scheduled charge enable is True
2026-08-16 11:50:21.851261: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:50:21.851359: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:50:21.851482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:50:21.851519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:50:21.851554: Inverter 0 scheduled discharge enable is False
2026-08-16 11:50:21.851696: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:50:21.851737: Inverter 0 discharge windows currently []
2026-08-16 11:50:21.851760: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:50:21.851781: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:50:21.851803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:50:21.906790: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:30:00
2026-08-16 11:50:21.906900: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 11:50:21.907064: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:50:21.907211: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:50:21.907372: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:50:21.907444: No export window planned
2026-08-16 11:50:21.907543: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:50:21.907573: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:50:21.907741: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:50:21.907833: Car charging from battery is off, next slot for car 0 is 08-16 11:50:00 - 08-16 12:00:00
2026-08-16 11:50:21.907888: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:50:21.907932: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:50:21.907966: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:50:21.908034: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:50:21.908133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908310: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908339: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908361: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908382: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908402: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908422: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908442: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:50:21.908714: Inverter 0 count register writes 0
2026-08-16 11:50:21.930553: Total inverter register writes now 829
2026-08-16 11:50:21.962940: Info: Completed run status Charging, Hold for car
2026-08-16 11:50:21.969263: Info: record_status Charging, Hold for car target 64%-100.0%
2026-08-16 11:50:21.976405: Saved current settings to /config/predbat_config.json
2026-08-16 11:50:21.976777: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:50:57.086918: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:50:57.087192: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:50:57.087228: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:50:57.087400: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:50:57.087442: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:50:57.087464: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:50:57.087482: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:52:27.973556: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 11:52:29.124038: Processing 1345 30-minute periods for power integration
2026-08-16 11:52:29.213874: ML Component: Car charging hold False, car energy reported load False
2026-08-16 11:52:29.313012: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:52:29.411129: ML Temperature data points: 49691
2026-08-16 11:52:29.709975: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 11:52:29.756648: ML Component: Data fetch completed, load data age 57.0 days, 16694 data points
2026-08-16 11:52:29.756757: ML Component: No training needed, model age is 1.75 hours
2026-08-16 11:52:29.756815: ML Component: Generating predictions load data age 57.0 days, 16694 data points
2026-08-16 11:52:29.894641: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0415 max_dow {0: 0.10211874996256083, 1: 0.10889687554407865, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.09651111107096075, 6: 0.10629687632601709}
2026-08-16 11:52:34.260640: ML Component: Generated 576 predictions (total 25.86 kWh over 48h)
2026-08-16 11:52:34.310741: ML Component: Prediction cycle completed
2026-08-16 11:52:34.434851: ML Component: Saved 16694 steps (57 days) of history to /config/predbat_ml_history.npz
2026-08-16 11:52:57.311334: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:52:57.311607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:52:57.311643: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:52:57.311854: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:52:57.311946: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:52:57.311968: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:52:57.311985: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:55:00.559577: --------------- PredBat - update at 2026-08-16 11:55:00+01:00 with clock skew 0 minutes, minutes now 715
2026-08-16 11:55:00.560489: Saved current settings to /config/predbat_config.json
2026-08-16 11:55:00.560699: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 11:55:00.560782: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 11:55:00.560931: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 11:55:00.581728: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 11:55:00.581855: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 11:55:00.582178: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 11:55:00.582815: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [35.0]% ([20.51]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 11:55:00.582937: Predbat mode is set to Control charge & discharge
2026-08-16 11:55:00.771435: Found 21602 load_today datapoints going back 28 days
2026-08-16 11:55:00.771579: Using load_power data to fill gaps in load_today data
2026-08-16 11:55:01.645662: Processing 721 30-minute periods for power integration
2026-08-16 11:55:01.837069: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 11:55:01.837220: Car charging hold False, threshold 6.0kWh
2026-08-16 11:55:01.837267: Current data so far today: load 6.2kWh, import 4.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 11:55:01.852302: Cars: SoC: [15.236]kWh, Charge limit [35.0]% ([20.51]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 11:55:01.852796: Standing charge is set to 49.98p
2026-08-16 11:55:01.900402: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 11:55:01.900500: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 11:55:01.900705: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 75.0 minutes
2026-08-16 11:55:01.901195: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 75.0 minutes
2026-08-16 11:55:01.907054: Loaded 95 datapoints of futurerate analysis
2026-08-16 11:55:02.008570: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56']
2026-08-16 11:55:02.086688: Rate min forward looking: now 0.0p at end of forecast 26.58p
2026-08-16 11:55:02.088060: Import rates: min 0.0p, max 49.86p, average 31.11p
2026-08-16 11:55:02.136473: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 11:55:02.136894: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 11:55:02.139175: High export rate found rates in range 99p to -99p
2026-08-16 11:55:02.240567: Low Import rate found rates in range 0.0p to 47.69p
2026-08-16 11:55:02.241104: Car 0 plan charging from 15.236kWh to 35.0% (20.51kWh), with slots [{'start': 690, 'end': 720, 'average': 0.0}, {'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 11:55:02.242140: Car 0 charging plan is: [{'start': 715, 'end': 720, 'kwh': 0.617, 'average': 0.0, 'cost': 0.0, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 21.41, 'cost': 79.22, 'octopus': False}, {'start': 870, 'end': 885, 'kwh': 1.416, 'average': 21.65, 'cost': 30.66, 'octopus': False}]
2026-08-16 11:55:02.259842: Battery level now 10.29kWh, -1hr ago 7.02kWh, at midnight 12.21kWh, battery value change in the last hour 3.26p, change today -1.92p, rate_forward 1.0p
2026-08-16 11:55:02.260342: Last hour: net energy 4.1kWh, import 4.1kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 62.2p, import 62.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 11:55:02.327525: Today's energy total net 4.9kWh, import 4.9kWh, export 0.0kWh, cost 134.83p, import 84.85p, export 0.0p, carbon 0.0kg
2026-08-16 11:55:02.327677: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 11:55:02.415318: Using weighted-bucket historical load forecast over 14 days
2026-08-16 11:55:02.442322: Today's load divergence 92.0%, in-day adjustment 87.65%, damping 0.95x, yesterday 82.97% today 92.4% blend 50.35%
2026-08-16 11:55:02.442428: Today's predicted so far 7.3kWh with 0.0kWh car/iBoost excluded, 3.68kWh import ignored, and 7.3kWh forecast extra.
2026-08-16 11:55:02.442473: Today's actual load so far 6.15kWh with 0.0kWh car/iBoost excluded, and 3.68kWh import ignored.
2026-08-16 11:55:02.477686: Inverter 0: Type SK Sunsynk
2026-08-16 11:55:02.477780: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 11:55:02.477963: Reserve min: 7%, battery_min: 7%
2026-08-16 11:55:02.478048: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 11:55:02.478314: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 0W, current battery power -4528W, current battery voltage 51.2V, grid power -5464W, load power 468W, PV Power 0W
2026-08-16 11:55:02.478475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:55:02.478564: Inverter 0 scheduled charge enable is True
2026-08-16 11:55:02.478609: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 11:55:02.478696: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 11:55:02.478807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:55:02.478844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:55:02.478888: Inverter 0 scheduled discharge enable is False
2026-08-16 11:55:02.479009: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:55:02.479065: Inverter 0 discharge windows currently []
2026-08-16 11:55:02.479090: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:55:02.479108: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:55:02.479126: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:55:02.542625: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 11:55:02.542741: Plan was last updated on 2026-08-16 11:50:00+01:00 and is now 5.0 minutes old
2026-08-16 11:55:02.543035: Best charge window [ 16-08 11:30:00 - 16-08 12:00:00 @ 0.0p 100%, 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 11:55:02.543102: Best export window [  ]
2026-08-16 11:55:02.543848: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 11:55:02.547104: Load divergence over 8.0 hours mean 387.28W, min 240.6W, max 850.2W, std dev 105.07W, divergence 13.57%
2026-08-16 11:55:02.565263: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 11:55:02.565408: LoadML is_calculating False
2026-08-16 11:55:02.565477: Creating pool of 12 processes to match your CPU count
2026-08-16 11:55:02.678822: predict base end_record 08-17 12:05:00, final soc 13.81kWh, metric 696.72p, metric_keep 0kWh, min_soc 4.11kWh @ 08-17 09:55:00, load 21.24kWh, PV 0.0kWh
2026-08-16 11:55:02.807398: Battery has 48.0 hours left - now at 10.29kWh
2026-08-16 11:55:02.851637: predict base10 end_record 08-17 12:05:00, final soc 11.62kWh, metric 655.22p, metric_keep 0kWh, min_soc 3.54kWh @ 08-17 09:55:00, load 21.96kWh, PV 0.0kWh
2026-08-16 11:55:02.930359: predict best10 end_record 08-17 12:05:00, final soc 2.05kWh, metric 375.14p, metric_keep 0kWh, min_soc 1.73kWh @ 08-17 11:55:00, load 21.96kWh, PV 0.0kWh
2026-08-16 11:55:03.014118: predict best end_record 08-17 12:05:00, final soc 2.77kWh, metric 372.49p, metric_keep 0kWh, min_soc 2.38kWh @ 08-17 11:55:00, load 21.24kWh, PV 0.0kWh
2026-08-16 11:55:03.014219: Saving plan best values to HA entities
2026-08-16 11:55:03.186265: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 11:55:03.195878: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 11:55:03.204590: Best charging limit SoC's [16.0, 11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.91kWh, house 0.0kWh, export 0.0kWh, metric 372.49p, metric10 375.14p
2026-08-16 11:55:03.314294: Marginal costs baseline metric (no standing charge): 322.5034
2026-08-16 11:55:03.632651: Marginal energy costs matrix computed: min=0.0 max=32.24
2026-08-16 11:55:03.707853: Rate array import [{'start': 715, 'end': 720, 'rate': 'free', 'range': '(0.0p)'}, {'start': 720, 'end': 960, 'rate': 'expensive', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1350, 'rate': 'very expensive', 'range': '(33.7p - 45.3p)'}, {'start': 1350, 'end': 2165, 'rate': 'expensive', 'range': '(26.8p - 33.3p)'}] export [{'start': 715, 'end': 2165, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 11:55:03.708276: - Your estimated bill for today is £3.09 and tomorrow is £7.14
2026-08-16 11:55:03.708345: - Import rates are free (0.0p) for the next 5 minutes and then expensive (21.4p - 23.4p) for the next 4 hours.
2026-08-16 11:55:03.708367: - The battery is currently at 64% and is charging to 70% for the next 5 minutes.
2026-08-16 11:55:03.708385: - For the next 48 hours there will be no solar generation.
2026-08-16 11:55:03.708402: - You will reach a minimum of 15% battery in 24 hours.
2026-08-16 11:55:03.708419: - Your car is currently charging.
2026-08-16 11:55:03.708436: 
2026-08-16 11:55:03.760046: Plan calculation took 1.22 seconds
2026-08-16 11:55:03.763671: No high rate period found
2026-08-16 11:55:03.816204: Import threshold used for optimisation was 23.43p
2026-08-16 11:55:03.869893: Low import rate windows [0: 08-16 11:30:00 - 08-16 12:00:00 @ 0.0, 1: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 2: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 3: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 4: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 5: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 6: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 7: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 8: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 9: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 10: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 11: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 12: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 13: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 14: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 15: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 16: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 17: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 18: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 19: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 20: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 21: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 22: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 23: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 24: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 25: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 26: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 27: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 28: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 29: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 30: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 31: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 32: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 33: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 34: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 35: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 36: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 37: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 38: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 39: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 40: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 41: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 42: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 43: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 44: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 45: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 46: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 47: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 48: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 49: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 50: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 51: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 52: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 53: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 54: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 55: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 56: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 57: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 58: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 59: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 60: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 61: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 62: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 63: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 64: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 65: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 66: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 67: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 68: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 69: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 70: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 71: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 72: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 73: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 74: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 75: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 76: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 77: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 78: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 79: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 80: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 81: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 82: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 83: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 84: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 85: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 86: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 87: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 88: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 89: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 90: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 91: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 92: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 93: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 94: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 95: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 11:55:03.878505: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 11:30:00
2026-08-16 11:55:03.878631: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 11:55:03.878814: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 11:55:03.879124: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:55:03.879406: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:55:03.879511: No export window planned
2026-08-16 11:55:03.879641: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 11:55:03.879701: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 11:55:03.879845: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 11:55:03.879979: Car charging from battery is off, next slot for car 0 is 08-16 11:55:00 - 08-16 12:00:00
2026-08-16 11:55:03.880080: Disabling battery discharge whilst car 0 is charging
2026-08-16 11:55:03.880131: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 11:55:03.880166: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 11:55:03.880224: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 11:55:03.880327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880545: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880581: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880611: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880637: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880690: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880714: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.880975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 11:55:03.881014: Inverter 0 count register writes 0
2026-08-16 11:55:03.906911: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 11:55:03.914407: Total inverter register writes now 829
2026-08-16 11:55:03.952372: Info: Completed run status Charging, Hold for car
2026-08-16 11:55:03.959344: Info: record_status Charging, Hold for car target 64%-100.0%
2026-08-16 11:55:03.966649: Saved current settings to /config/predbat_config.json
2026-08-16 11:55:03.967040: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 11:55:42.080846: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:55:42.081145: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:55:42.081198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:55:42.081337: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:55:42.081370: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:55:42.081388: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:55:42.081402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:57:42.301340: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:57:42.302350: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:57:42.302489: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:57:42.303775: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:57:42.303843: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:57:42.303869: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:57:42.303887: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 11:59:56.604476: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 11:59:56.604897: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 11:59:56.605029: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 11:59:56.605378: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 11:59:56.605443: Note: Inverter does not support discharge freeze - disabled
2026-08-16 11:59:56.605487: Note: Inverter does not support charge freeze - disabled
2026-08-16 11:59:56.605527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:00:00.692672: --------------- PredBat - update at 2026-08-16 12:00:00+01:00 with clock skew 0 minutes, minutes now 720
2026-08-16 12:00:00.693933: Saved current settings to /config/predbat_config.json
2026-08-16 12:00:00.694092: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 12:00:00.694231: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:00:00.694379: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:00:00.715596: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:00:00.715790: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:00:00.715989: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:00:00.716609: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [30.0]% ([17.58]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:00:00.716746: Predbat mode is set to Control charge & discharge
2026-08-16 12:00:01.021960: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:00:01.022117: Using load_power data to fill gaps in load_today data
2026-08-16 12:00:01.954085: Processing 721 30-minute periods for power integration
2026-08-16 12:00:02.160326: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:00:02.160497: Car charging hold False, threshold 6.0kWh
2026-08-16 12:00:02.160569: Current data so far today: load 6.1kWh, import 5.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:00:02.177654: Cars: SoC: [15.236]kWh, Charge limit [30.0]% ([17.58]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:00:02.178190: Standing charge is set to 49.98p
2026-08-16 12:00:02.229231: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:00:02.229398: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:00:02.229670: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 80.0 minutes
2026-08-16 12:00:02.230218: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 80.0 minutes
2026-08-16 12:00:02.238543: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:00:02.323509: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:00:02.380648: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:00:02.381142: Import rates: min 21.41p, max 49.86p, average 31.15p
2026-08-16 12:00:02.417988: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:00:02.418108: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:00:02.419220: High export rate found rates in range 99p to -99p
2026-08-16 12:00:02.503684: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:00:02.504276: Car 0 plan charging from 15.236kWh to 30.0% (17.58kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}], ready by 16:00:00
2026-08-16 12:00:02.505596: Car 0 charging plan is: [{'start': 840, 'end': 865, 'kwh': 2.548, 'average': 21.41, 'cost': 54.55, 'octopus': False}]
2026-08-16 12:00:02.530670: Battery level now 10.29kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 59.74p, change today -35.31p, rate_forward 18.39p
2026-08-16 12:00:02.530998: Last hour: net energy 4.8kWh, import 4.8kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 114.55p, import 114.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:00:02.610095: Today's energy total net 5.8kWh, import 5.8kWh, export 0.0kWh, cost 190.03p, import 140.05p, export 0.0p, carbon 0.0kg
2026-08-16 12:00:02.610320: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:00:02.699706: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:00:02.750959: Today's load divergence 90.59%, in-day adjustment 87.02%, damping 0.95x, yesterday 82.97% today 91.06% blend 50.0%
2026-08-16 12:00:02.751121: Today's predicted so far 7.46kWh with 0.0kWh car/iBoost excluded, 4.58kWh import ignored, and 7.46kWh forecast extra.
2026-08-16 12:00:02.751186: Today's actual load so far 6.12kWh with 0.0kWh car/iBoost excluded, and 4.58kWh import ignored.
2026-08-16 12:00:02.806787: Inverter 0: Type SK Sunsynk
2026-08-16 12:00:02.806926: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:00:02.807306: Reserve min: 7%, battery_min: 7%
2026-08-16 12:00:02.807454: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:00:02.807939: Inverter 0 SoC: 10.64kW 67%, current charge rate 5000W, current discharge rate 0W, current battery power -4528W, current battery voltage 51.2V, grid power -5419W, load power 423W, PV Power 0W
2026-08-16 12:00:02.808442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:00:02.808578: Inverter 0 scheduled charge enable is True
2026-08-16 12:00:02.808630: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:00:02.808887: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 100.0%, power 5.0kW
2026-08-16 12:00:02.809204: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:00:02.809282: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:00:02.809332: Inverter 0 scheduled discharge enable is False
2026-08-16 12:00:02.809480: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:00:02.809510: Inverter 0 discharge windows currently []
2026-08-16 12:00:02.809534: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:00:02.809552: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:00:02.809570: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:00:02.902825: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:00:02.902987: Plan was last updated on 2026-08-16 11:50:00+01:00 and is now 10.0 minutes old
2026-08-16 12:00:02.903048: Current charge window has expired, removing it
2026-08-16 12:00:02.903508: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:00:02.903586: Best export window [  ]
2026-08-16 12:00:02.904833: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:00:02.908311: Load divergence over 8.0 hours mean 387.5W, min 253.2W, max 766.8W, std dev 102.51W, divergence 13.23%
2026-08-16 12:00:02.930120: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:00:02.930269: LoadML is_calculating False
2026-08-16 12:00:02.930369: Creating pool of 12 processes to match your CPU count
2026-08-16 12:00:03.069156: predict base end_record 08-17 12:10:00, final soc 14.21kWh, metric 765.08p, metric_keep 0kWh, min_soc 4.12kWh @ 08-17 09:55:00, load 21.1kWh, PV 0.0kWh
2026-08-16 12:00:03.227129: Battery has 48.0 hours left - now at 10.64kWh
2026-08-16 12:00:03.286953: predict base10 end_record 08-17 12:10:00, final soc 11.96kWh, metric 720.21p, metric_keep 0kWh, min_soc 3.55kWh @ 08-17 09:55:00, load 21.82kWh, PV 0.0kWh
2026-08-16 12:00:03.406493: predict best10 end_record 08-17 12:10:00, final soc 2.4kWh, metric 440.25p, metric_keep 0kWh, min_soc 1.75kWh @ 08-17 11:55:00, load 21.82kWh, PV 0.0kWh
2026-08-16 12:00:03.494214: predict best end_record 08-17 12:10:00, final soc 3.17kWh, metric 441.02p, metric_keep 0kWh, min_soc 2.4kWh @ 08-17 11:55:00, load 21.1kWh, PV 0.0kWh
2026-08-16 12:00:03.494326: Saving plan best values to HA entities
2026-08-16 12:00:03.714950: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:00:03.724194: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:00:03.731681: Best charging limit SoC's [11.0, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.93kWh, house 0.0kWh, export 0.0kWh, metric 441.02p, metric10 440.25p
2026-08-16 12:00:03.842144: Marginal costs baseline metric (no standing charge): 391.0319
2026-08-16 12:00:04.169297: Marginal energy costs matrix computed: min=0.0 max=32.22
2026-08-16 12:00:04.267086: Rate array import [{'start': 720, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2170, 'rate': 'cheap', 'range': '(26.8p - 29.4p)'}] export [{'start': 720, 'end': 2170, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:00:04.267625: - Your estimated bill for today is £3.65 and tomorrow is £7.11
2026-08-16 12:00:04.267699: - Import rates are cheap (21.4p - 23.4p) for the next 4 hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:00:04.267743: - The battery is currently at 67% and is charging to 69% for the next 30 minutes.
2026-08-16 12:00:04.267779: - For the next 48 hours there will be no solar generation.
2026-08-16 12:00:04.267820: - You will reach a minimum of 15% battery in 23 hours.
2026-08-16 12:00:04.267853: 
2026-08-16 12:00:04.334993: Plan calculation took 1.43 seconds
2026-08-16 12:00:04.339361: No high rate period found
2026-08-16 12:00:04.409432: Import threshold used for optimisation was 23.43p
2026-08-16 12:00:04.493186: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07]
2026-08-16 12:00:04.502817: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:00:04.502945: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 67%, target 69%
2026-08-16 12:00:04.503117: Inverter 0 Target SoC 69%, (this inverter 69%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:00:04.503352: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:00:04.503607: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:00:04.503703: No export window planned
2026-08-16 12:00:04.503828: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:00:04.503864: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:00:04.504063: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:00:04.504196: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-16 12:00:09.511636: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-16 12:00:14.522791: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-16 12:00:14.522948: Inverter 0 setting charging SoC to 69% as per target
2026-08-16 12:00:14.523017: Inverter 0 adjust target SoC for charge to 69% (11.04kWh/16.0kWh 16.0kWh) based on going from 67% -> 69% total add is 0.4kWh and this battery needs to add 0.4kWh to get to 11.04kWh
2026-08-16 12:00:14.523093: Inverter 0 Current charge limit is 100% and new target is 69%
2026-08-16 12:00:15.592055: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 12:00:15.940642: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 12:00:19.613087: Inverter 0 write_and_poll_value: Wrote 69 to charge_limit, successfully now 69.0
2026-08-16 12:00:19.613488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.613914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:19.614031: 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-16 12:00:19.629251: 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-16 12:00:19.733298: 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-16 12:00:19.836678: 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-16 12:00:19.940721: 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-16 12:00:20.044015: 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-16 12:00:20.147407: 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-16 12:00:20.251469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:20.251764: Inverter 0 count register writes 2
2026-08-16 12:00:20.273420: 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-16 12:00:20.273646: Recompute is saving previous plan...
2026-08-16 12:00:20.276673: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 100%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 100%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 100%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 100%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 100%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 100%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 100%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 100%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 100%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 100%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 100%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 100%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 100%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 100%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 100%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 100%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 100%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 100%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 100%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ]
2026-08-16 12:00:20.276761: Best export window [  ]
2026-08-16 12:00:20.277553: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:00:20.280094: Load divergence over 8.0 hours mean 387.5W, min 253.2W, max 766.8W, std dev 102.51W, divergence 13.23%
2026-08-16 12:00:20.298069: Calculating data from yesterday for savings calculation
2026-08-16 12:00:20.311510: Yesterday basic charge window best: [{'start': 870, 'end': 900, 'average': 13.77}] charge limit best: [16.0] based on max charge slots 1
2026-08-16 12:00:20.361226: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 12:00:20.376755: predict yesterday10 end_record 08-17 00:00:00, final soc 1.12kWh, metric 351.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 12:00:20.397333: predict yesterday end_record 08-17 00:00:00, final soc 1.12kWh, metric 345.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 12:00:20.436805: Yesterday: Predbat disabled was £3.46 (adjusted £3.2) vs £5.77 (adjusted £2.98), saving £-2.31 (adjusted £0.22) with import 12.84kWh, export 0.0kWh, battery_cycle 4.66kWh, start_soc 1.12kWh,  final_soc 1.12kWh and battery_value 25.58kWh
2026-08-16 12:00:20.535062: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 383.46p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.5kWh, PV 0.0kWh
2026-08-16 12:00:20.535317: Yesterday: No Battery/PV system cost predicted was £3.83 (adjusted £3.83) vs £5.77 (adjusted £2.98), saving £-1.93 (adjusted £0.86) with import 12.5kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 12:00:20.549074: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:00:20.549239: LoadML is_calculating False
2026-08-16 12:00:20.549349: Creating pool of 12 processes to match your CPU count
2026-08-16 12:00:20.648476: 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(0.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-16 12:00:20.650423: Optimise levels pass started at 2026-08-16 12:00:20
2026-08-16 12:00:20.650479: Optimise all windows, total charge 95 export 1
2026-08-16 12:00:21.358138: >> Region optimisation pass width 960 gives best_metric 786.32p, best_cost 805.5p, best_cycle 33.93kWh, best_import 23.7kWh
2026-08-16 12:00:21.774121: >> Region optimisation pass width 480 gives best_metric 786.32p, best_cost 805.5p, best_cycle 33.93kWh, best_import 23.7kWh
2026-08-16 12:00:22.299576: >> Region optimisation pass width 240 gives best_metric 786.32p, best_cost 805.5p, best_cycle 33.93kWh, best_import 23.7kWh
2026-08-16 12:00:23.620517: >> Region optimisation pass width 120 gives best_metric 782.18p, best_cost 801.18p, best_cycle 35.87kWh, best_import 23.84kWh
2026-08-16 12:00:23.620918: Calculated end_record as 08-17 12:30:00 based on best_price 26.72p, next_charge_start 08-16 12:30:00, max_windows 49
2026-08-16 12:00:23.621080: Optimise levels pass ended at 2026-08-16 12:00:23, duration 3.0 seconds tried 275 combinations
2026-08-16 12:00:23.621169: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 782.18p, best_keep 0kWh, best_cycle 35.87kWh, best_carbon 0kg, best_import 23.84kWh
2026-08-16 12:00:23.642509: Starting detailed optimisation end_record 08-17 12:30:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 21.41p with charge limits [0, 12.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 12:00:26.918326: Tweak plan optimisation started metric 321.77p, cost 364.55p
2026-08-16 12:00:27.136116: Tweak optimisation finished metric 321.77p, cost 364.55p, metric_keep 0kWh, cycle 19.11kWh, carbon 0kg, import 7.95kWh, changed 8 window(s)
2026-08-16 12:00:27.156102: Swap charge optimisation started metric 321.77p, cost 364.55p, min_improvement_swap 0.1p
2026-08-16 12:00:29.559857: Swap charge optimisation finished metric 321.77p, cost 364.55p
2026-08-16 12:00:29.650199: Raw charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100% ] reserve 1.12
2026-08-16 12:00:29.650854: Unclipped charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 12:00:29.651100: Unfiltered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 12:00:29.651318: Filtered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ] reserve 1.12
2026-08-16 12:00:29.690978: Previous plan best metric is 336.67 (cost 442.23) and new plan best metric is 321.77 (cost 364.55)
2026-08-16 12:00:29.691285: New plan metric is significantly better from previous plan, using new plan
2026-08-16 12:00:29.691328: Plan valid is now true after recompute was False
2026-08-16 12:00:29.722004: predict base end_record 08-17 12:30:00, final soc 15.76kWh, metric 816.28p, metric_keep 0kWh, min_soc 4.12kWh @ 08-17 09:55:00, load 21.34kWh, PV 0.0kWh
2026-08-16 12:00:29.836889: Battery has 48.0 hours left - now at 10.64kWh
2026-08-16 12:00:29.881655: predict base10 end_record 08-17 12:30:00, final soc 13.25kWh, metric 764.27p, metric_keep 0kWh, min_soc 3.55kWh @ 08-17 09:55:00, load 22.07kWh, PV 0.0kWh
2026-08-16 12:00:29.952063: predict best10 end_record 08-17 12:30:00, final soc 1.32kWh, metric 417.32p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.07kWh, PV 0.0kWh
2026-08-16 12:00:30.024698: predict best end_record 08-17 12:30:00, final soc 1.99kWh, metric 414.54p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.34kWh, PV 0.0kWh
2026-08-16 12:00:30.024780: Saving plan best values to HA entities
2026-08-16 12:00:30.168249: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:00:30.174682: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:00:30.181827: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.95kWh, house 0.0kWh, export 0.0kWh, metric 414.54p, metric10 417.32p
2026-08-16 12:00:30.252459: Marginal costs baseline metric (no standing charge): 364.5525
2026-08-16 12:00:30.489973: Marginal energy costs matrix computed: min=5.04 max=33.49
2026-08-16 12:00:30.550973: Rate array import [{'start': 720, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2190, 'rate': 'cheap', 'range': '(26.8p - 29.4p)'}] export [{'start': 720, 'end': 2190, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:00:30.551308: - Your estimated bill for today is £3.65 and tomorrow is £7.13
2026-08-16 12:00:30.551346: - Import rates are cheap (21.4p - 23.4p) for the next 4 hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:00:30.551364: - The battery is currently at 67% and is charging to 66% for the next 30 minutes.
2026-08-16 12:00:30.551379: - For the next 48 hours there will be no solar generation.
2026-08-16 12:00:30.551393: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:00:30.551407: 
2026-08-16 12:00:30.607449: Plan calculation took 10.33 seconds
2026-08-16 12:00:30.607861: Inverter 0: Type SK Sunsynk
2026-08-16 12:00:30.607903: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:00:30.608102: Reserve min: 7%, battery_min: 7%
2026-08-16 12:00:30.608169: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:00:30.608472: Inverter 0 SoC: 10.98kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4529W, current battery voltage 51.2V, grid power -5409W, load power 414W, PV Power 0W
2026-08-16 12:00:30.608674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:00:30.608769: Inverter 0 scheduled charge enable is True
2026-08-16 12:00:30.608828: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:00:30.608907: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 69.0%, power 5.0kW
2026-08-16 12:00:30.609050: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:00:30.609087: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:00:30.609119: Inverter 0 scheduled discharge enable is False
2026-08-16 12:00:30.609228: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:00:30.609260: Inverter 0 discharge windows currently []
2026-08-16 12:00:30.609296: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:00:30.609318: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:00:30.609332: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:00:30.673663: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:00:30.673821: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 66%
2026-08-16 12:00:30.674007: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:00:30.674141: Inverter 0 Hold charging as SoC 69% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:00:30.674346: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:00:30.674621: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:00:30.674751: No export window planned
2026-08-16 12:00:30.674941: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:00:30.674995: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:00:30.675209: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:00:30.675405: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:00:30.675524: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 69% -> 66% total add is -0.42kWh and this battery needs to add -0.42kWh to get to 10.56kWh
2026-08-16 12:00:30.675621: Inverter 0 Current charge limit is 69% and new target is 66%
2026-08-16 12:00:35.776640: Inverter 0 write_and_poll_value: Wrote 66 to charge_limit, successfully now 66.0
2026-08-16 12:00:35.776922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777028: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:35.777307: 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-16 12:00:35.790128: 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-16 12:00:35.893936: 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-16 12:00:35.972579: 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-16 12:00:36.076479: 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-16 12:00:36.179818: 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-16 12:00:36.283498: 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-16 12:00:36.319962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:00:36.320243: Inverter 0 count register writes 1
2026-08-16 12:00:36.356229: Total inverter register writes now 832
2026-08-16 12:00:36.402890: Info: Completed run status Hold charging
2026-08-16 12:00:36.652603: Info: record_status Hold charging target 69%-66%
2026-08-16 12:00:36.659918: Saved current settings to /config/predbat_config.json
2026-08-16 12:00:36.660343: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:01:11.770221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:01:11.770662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:01:11.770764: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:01:11.770887: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:01:11.770931: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:01:11.770949: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:01:11.770964: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:03:11.997207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:03:11.997448: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:03:11.997485: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:03:11.997597: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:03:11.997659: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:03:11.997677: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:03:11.997691: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:05:00.207697: --------------- PredBat - update at 2026-08-16 12:05:00+01:00 with clock skew 0 minutes, minutes now 725
2026-08-16 12:05:00.208672: Saved current settings to /config/predbat_config.json
2026-08-16 12:05:00.208857: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 12:05:00.209028: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:05:00.209179: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:05:00.228864: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:05:00.229063: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:05:00.229239: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:05:00.229766: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:05:00.229889: Predbat mode is set to Control charge & discharge
2026-08-16 12:05:00.422919: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:05:00.423069: Using load_power data to fill gaps in load_today data
2026-08-16 12:05:01.342679: Processing 721 30-minute periods for power integration
2026-08-16 12:05:01.529748: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:05:01.529888: Car charging hold False, threshold 6.0kWh
2026-08-16 12:05:01.529935: Current data so far today: load 6.1kWh, import 5.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:05:01.544846: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:05:01.545360: Standing charge is set to 49.98p
2026-08-16 12:05:01.585275: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:05:01.585397: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:05:01.585666: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 85.0 minutes
2026-08-16 12:05:01.586294: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 85.0 minutes
2026-08-16 12:05:01.593131: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:05:01.699668: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:05:01.763607: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:05:01.763978: Import rates: min 21.41p, max 49.86p, average 31.16p
2026-08-16 12:05:01.807888: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:05:01.808032: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:05:01.809323: High export rate found rates in range 99p to -99p
2026-08-16 12:05:01.904144: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:05:01.904768: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:05:01.932843: Battery level now 10.64kWh, -1hr ago 7.04kWh, at midnight 12.21kWh, battery value change in the last hour 66.21p, change today -28.84p, rate_forward 18.39p
2026-08-16 12:05:01.933421: Last hour: net energy 4.6kWh, import 4.6kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 109.7p, import 109.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:05:01.987226: Today's energy total net 5.8kWh, import 5.8kWh, export 0.0kWh, cost 190.03p, import 140.05p, export 0.0p, carbon 0.0kg
2026-08-16 12:05:01.987359: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:05:02.057936: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:05:02.080326: Today's load divergence 90.12%, in-day adjustment 86.82%, damping 0.95x, yesterday 82.97% today 90.62% blend 49.65%
2026-08-16 12:05:02.080417: Today's predicted so far 7.59kWh with 0.0kWh car/iBoost excluded, 4.58kWh import ignored, and 7.59kWh forecast extra.
2026-08-16 12:05:02.080453: Today's actual load so far 6.19kWh with 0.0kWh car/iBoost excluded, and 4.58kWh import ignored.
2026-08-16 12:05:02.112755: Inverter 0: Type SK Sunsynk
2026-08-16 12:05:02.112836: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:05:02.113022: Reserve min: 7%, battery_min: 7%
2026-08-16 12:05:02.113079: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:05:02.113295: Inverter 0 SoC: 10.98kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 505W, current battery voltage 51.2V, grid power -55W, load power 556W, PV Power 0W
2026-08-16 12:05:02.113447: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:05:02.113526: Inverter 0 scheduled charge enable is True
2026-08-16 12:05:02.113564: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:05:02.113644: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:05:02.113736: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:05:02.113766: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:05:02.113796: Inverter 0 scheduled discharge enable is False
2026-08-16 12:05:02.113893: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:05:02.113924: Inverter 0 discharge windows currently []
2026-08-16 12:05:02.113961: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:05:02.113985: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:05:02.114001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:05:02.173121: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:05:02.173216: Plan was last updated on 2026-08-16 12:00:00+01:00 and is now 5.0 minutes old
2026-08-16 12:05:02.173496: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:05:02.173543: Best export window [  ]
2026-08-16 12:05:02.174232: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:05:02.176879: Load divergence over 8.0 hours mean 387.88W, min 261.0W, max 799.8W, std dev 107.0W, divergence 13.79%
2026-08-16 12:05:02.192214: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:05:02.192325: LoadML is_calculating False
2026-08-16 12:05:02.192407: Creating pool of 12 processes to match your CPU count
2026-08-16 12:05:02.311879: predict base end_record 08-17 12:35:00, final soc 10.56kWh, metric 681.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:15:00, load 21.33kWh, PV 0.0kWh
2026-08-16 12:05:02.467530: Battery has 17.17 hours left - now at 10.98kWh
2026-08-16 12:05:02.513428: predict base10 end_record 08-17 12:35:00, final soc 10.56kWh, metric 700.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.06kWh, PV 0.0kWh
2026-08-16 12:05:02.584845: predict best10 end_record 08-17 12:35:00, final soc 1.65kWh, metric 418.85p, metric_keep 0kWh, min_soc 1.33kWh @ 08-17 12:25:00, load 22.06kWh, PV 0.0kWh
2026-08-16 12:05:02.687693: predict best end_record 08-17 12:35:00, final soc 2.38kWh, metric 417.88p, metric_keep 0kWh, min_soc 2.0kWh @ 08-17 12:25:00, load 21.33kWh, PV 0.0kWh
2026-08-16 12:05:02.687778: Saving plan best values to HA entities
2026-08-16 12:05:02.857147: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:05:02.864545: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:05:02.870919: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.03kWh, house 0.0kWh, export 0.0kWh, metric 417.88p, metric10 418.85p
2026-08-16 12:05:02.951253: Marginal costs baseline metric (no standing charge): 367.8999
2026-08-16 12:05:03.183395: Marginal energy costs matrix computed: min=4.94 max=33.1
2026-08-16 12:05:03.249052: Rate array import [{'start': 725, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2195, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 725, 'end': 2195, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:05:03.249450: - Your estimated bill for today is £3.55 and tomorrow is £7.11
2026-08-16 12:05:03.249503: - Import rates are cheap (21.4p - 23.4p) for the next 3  hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:05:03.249539: - The battery is currently at 69% and is charging to 66% for the next 25 minutes.
2026-08-16 12:05:03.249567: - For the next 48 hours there will be no solar generation.
2026-08-16 12:05:03.249625: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:05:03.249660: 
2026-08-16 12:05:03.298307: Plan calculation took 1.12 seconds
2026-08-16 12:05:03.301935: No high rate period found
2026-08-16 12:05:03.350994: Import threshold used for optimisation was 23.43p
2026-08-16 12:05:03.399799: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 95: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:05:03.412369: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:05:03.412516: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 66%
2026-08-16 12:05:03.412749: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:05:03.412878: Inverter 0 Hold charging as SoC 69% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:05:03.413148: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:05:03.413509: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:05:03.413643: No export window planned
2026-08-16 12:05:03.413827: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:05:03.413878: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:05:03.414081: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:05:03.414240: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:05:03.414354: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 69% -> 66% total add is -0.42kWh and this battery needs to add -0.42kWh to get to 10.56kWh
2026-08-16 12:05:03.414469: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:05:03.414638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.414976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415055: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415119: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415171: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415224: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415276: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415316: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415412: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415633: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415682: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:05:03.415861: Inverter 0 count register writes 0
2026-08-16 12:05:03.432054: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 12:05:03.438988: Total inverter register writes now 832
2026-08-16 12:05:03.487946: Info: Completed run status Hold charging
2026-08-16 12:05:03.497255: Info: record_status Hold charging target 69%-66%
2026-08-16 12:05:03.506582: Saved current settings to /config/predbat_config.json
2026-08-16 12:05:03.507043: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:05:35.182180: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 12:05:36.066705: Processing 1345 30-minute periods for power integration
2026-08-16 12:05:36.150749: ML Component: Car charging hold False, car energy reported load False
2026-08-16 12:05:36.232712: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:05:36.314759: ML Temperature data points: 49676
2026-08-16 12:05:36.546473: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 12:05:36.585059: ML Component: Data fetch completed, load data age 57.0 days, 16697 data points
2026-08-16 12:05:36.585165: ML Component: Starting fine-tune training (2h interval), model age is 2.001997950833333 hours
2026-08-16 12:05:36.585187: ML Component: Doing training...
2026-08-16 12:05:36.602338: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=54.0 days)
2026-08-16 12:05:36.602453: ML Predictor: Curriculum training - 5 passes, window 54.0→57.0 days + final full pass (58.0 days)
2026-08-16 12:05:36.658964: ML Predictor: Curriculum pass 1/5: window=54.0 days (1296 hours of data)
2026-08-16 12:05:36.659079: ML Predictor: Starting initial training with 30 epochs
2026-08-16 12:05:37.153632: ML Predictor: Creating dataset with 1296 hours of training data, 48 hours validation
2026-08-16 12:05:41.582650: ML Predictor: Created 15264 training samples, 576 validation samples
2026-08-16 12:05:41.634115: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0468) load(mean=0.0587 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.4998 std=4.4156) import_rate(mean=26.1274 std=2.9092) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5244)
2026-08-16 12:05:42.426994: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:05:42.427429: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:05:42.427590: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:05:42.427859: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:05:42.427993: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:05:42.428130: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:05:42.428235: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:06:16.628167: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0168 val_mae=0.0049 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0032 kWh ema_combined=0.0032 kWh
2026-08-16 12:06:47.476510: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0193 val_mae=0.0046 kWh val_bias=-0.0010 kWh (-2.0%) combined=0.0039 kWh ema_combined=0.0034 kWh
2026-08-16 12:07:15.314437: Info: HAHistory: Pruning history data started.
2026-08-16 12:07:15.318220: Info: HAHistory: Pruning history data completed.
2026-08-16 12:07:19.150734: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0183 val_mae=0.0041 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 12:07:54.205882: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0156 val_mae=0.0038 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-16 12:07:56.874679: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:07:56.875085: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:07:56.875230: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:07:56.875493: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:07:56.875668: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:07:56.875820: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:07:56.875949: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:08:28.781400: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0158 val_mae=0.0039 kWh val_bias=-0.0011 kWh (-2.1%) combined=0.0027 kWh ema_combined=0.0028 kWh
2026-08-16 12:09:00.896830: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0142 val_mae=0.0036 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 12:09:37.252238: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0138 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-2.0%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-16 12:10:00.541421: --------------- PredBat - update at 2026-08-16 12:10:00+01:00 with clock skew 0 minutes, minutes now 730
2026-08-16 12:10:00.551669: Saved current settings to /config/predbat_config.json
2026-08-16 12:10:00.552215: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 12:10:00.552582: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:10:00.552905: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:10:00.635465: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:10:00.635823: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:10:00.638043: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:10:00.639371: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:10:00.639633: Predbat mode is set to Control charge & discharge
2026-08-16 12:10:01.572684: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:10:01.573368: Using load_power data to fill gaps in load_today data
2026-08-16 12:10:03.095776: Processing 721 30-minute periods for power integration
2026-08-16 12:10:03.297779: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:10:03.298509: Car charging hold False, threshold 6.0kWh
2026-08-16 12:10:03.299543: Current data so far today: load 6.22kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:10:03.328682: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:10:03.329488: Standing charge is set to 49.98p
2026-08-16 12:10:03.476166: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:10:03.476293: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:10:03.476567: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 90.0 minutes
2026-08-16 12:10:03.477214: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 90.0 minutes
2026-08-16 12:10:03.486822: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:10:03.821187: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:10:03.926942: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:10:03.927528: Import rates: min 21.41p, max 49.86p, average 31.17p
2026-08-16 12:10:03.991392: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:10:03.992018: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:10:03.993481: High export rate found rates in range 99p to -99p
2026-08-16 12:10:04.139762: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:10:04.140590: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:10:04.180705: Battery level now 10.98kWh, -1hr ago 7.14kWh, at midnight 12.21kWh, battery value change in the last hour 70.63p, change today -22.51p, rate_forward 18.39p
2026-08-16 12:10:04.181591: Last hour: net energy 4.75kWh, import 4.75kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 112.86p, import 112.86p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:10:04.375990: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:10:04.376278: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:10:04.478417: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:10:04.508837: Today's load divergence 90.59%, in-day adjustment 87.07%, damping 0.95x, yesterday 82.97% today 91.06% blend 49.31%
2026-08-16 12:10:04.509051: Today's predicted so far 7.6kWh with 0.0kWh car/iBoost excluded, 5.09kWh import ignored, and 7.6kWh forecast extra.
2026-08-16 12:10:04.509124: Today's actual load so far 6.26kWh with 0.0kWh car/iBoost excluded, and 5.09kWh import ignored.
2026-08-16 12:10:04.572479: Inverter 0: Type SK Sunsynk
2026-08-16 12:10:04.572756: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:10:04.573120: Reserve min: 7%, battery_min: 7%
2026-08-16 12:10:04.573267: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:10:04.573621: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 513W, current battery voltage 51.2V, grid power -55W, load power 574W, PV Power 0W
2026-08-16 12:10:04.573935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:10:04.574100: Inverter 0 scheduled charge enable is True
2026-08-16 12:10:04.574162: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:10:04.574352: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:10:04.574580: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:10:04.574656: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:10:04.574831: Inverter 0 scheduled discharge enable is False
2026-08-16 12:10:04.575120: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:10:04.575173: Inverter 0 discharge windows currently []
2026-08-16 12:10:04.576034: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:10:04.576132: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:10:04.576195: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:10:04.744054: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:10:04.744206: Plan was last updated on 2026-08-16 12:00:00+01:00 and is now 10.0 minutes old
2026-08-16 12:10:04.744593: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:10:04.744659: Best export window [  ]
2026-08-16 12:10:04.746130: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:10:04.760202: Load divergence over 8.0 hours mean 388.83W, min 250.2W, max 797.4W, std dev 107.49W, divergence 13.82%
2026-08-16 12:10:04.822924: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:10:04.824533: LoadML is_calculating True
2026-08-16 12:10:04.824744: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:10:04.984637: predict base end_record 08-17 12:40:00, final soc 10.56kWh, metric 691.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.48kWh, PV 0.0kWh
2026-08-16 12:10:05.281746: Battery has 17.17 hours left - now at 11.2kWh
2026-08-16 12:10:05.347897: predict base10 end_record 08-17 12:40:00, final soc 10.56kWh, metric 710.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.2kWh, PV 0.0kWh
2026-08-16 12:10:05.460092: predict best10 end_record 08-17 12:40:00, final soc 1.97kWh, metric 437.46p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.2kWh, PV 0.0kWh
2026-08-16 12:10:05.561561: predict best end_record 08-17 12:40:00, final soc 2.76kWh, metric 438.33p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.48kWh, PV 0.0kWh
2026-08-16 12:10:05.561758: Saving plan best values to HA entities
2026-08-16 12:10:05.896284: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 12:10:05.907166: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 12:10:05.915895: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.22kWh, house 0.0kWh, export 0.0kWh, metric 438.33p, metric10 437.46p
2026-08-16 12:10:06.009927: Marginal costs baseline metric (no standing charge): 388.3492
2026-08-16 12:10:06.505343: Marginal energy costs matrix computed: min=5.15 max=32.76
2026-08-16 12:10:06.676659: Rate array import [{'start': 730, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2200, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 730, 'end': 2200, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:10:06.677584: - Your estimated bill for today is £3.63 and tomorrow is £7.12
2026-08-16 12:10:06.677869: - Import rates are cheap (21.4p - 23.4p) for the next 3 and three quarters hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:10:06.677936: - The battery is currently at 70% and is charging to 66% for the next 20 minutes.
2026-08-16 12:10:06.678521: - For the next 48 hours there will be no solar generation.
2026-08-16 12:10:06.678576: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:10:06.678639: 
2026-08-16 12:10:06.740991: Plan calculation took 2.00 seconds
2026-08-16 12:10:06.751930: No high rate period found
2026-08-16 12:10:06.910184: Import threshold used for optimisation was 23.43p
2026-08-16 12:10:07.051906: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 95: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:10:07.078401: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:10:07.078571: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 70%, target 66%
2026-08-16 12:10:07.078760: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:10:07.078863: Inverter 0 Hold charging as SoC 70% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:10:07.079001: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:10:07.079223: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:10:07.079313: No export window planned
2026-08-16 12:10:07.079431: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:10:07.079493: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:10:07.079668: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:10:07.079786: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:10:07.079898: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 70% -> 66% total add is -0.64kWh and this battery needs to add -0.64kWh to get to 10.56kWh
2026-08-16 12:10:07.079978: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:10:07.080112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080765: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.080915: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081113: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081293: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081434: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081600: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081740: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.081927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:07.082843: Inverter 0 count register writes 0
2026-08-16 12:10:07.143232: 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-16 12:10:07.143498: Recompute is saving previous plan...
2026-08-16 12:10:07.148781: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 66%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 66%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 66%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 66%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 66%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 66%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 66%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 66%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 66%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 66%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 66%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 66%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 66%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 66%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 66%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 66%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 66%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 66%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 66%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 66%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 66%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 66%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 66%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 66%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 66%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 66%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 66%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 66%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 66%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 66%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 66%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 66%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 66%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 66%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 66%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 66%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 66%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 66%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 66%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 66%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 66%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 66%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 66%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 66%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 66%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 66%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 66%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 66%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 66%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 66%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 66%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 66%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 66%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 66%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 66%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 66%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 66%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 66%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 66%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 66%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 66%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 66%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 66%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 66%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 66%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 66%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 66%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 66%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 66%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 66%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 66% ]
2026-08-16 12:10:07.148919: Best export window [  ]
2026-08-16 12:10:07.150578: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:10:07.164612: Load divergence over 8.0 hours mean 388.83W, min 250.2W, max 797.4W, std dev 107.49W, divergence 13.82%
2026-08-16 12:10:07.219278: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:10:07.219590: LoadML is_calculating True
2026-08-16 12:10:07.219734: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:10:07.248499: 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(0.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-16 12:10:07.250358: Optimise levels pass started at 2026-08-16 12:10:07
2026-08-16 12:10:07.257101: Optimise all windows, total charge 95 export 1
2026-08-16 12:10:11.073923: >> Region optimisation pass width 960 gives best_metric 786.93p, best_cost 806.12p, best_cycle 33.36kWh, best_import 23.11kWh
2026-08-16 12:10:12.135609: >> Region optimisation pass width 480 gives best_metric 786.48p, best_cost 805.7p, best_cycle 34.03kWh, best_import 23.16kWh
2026-08-16 12:10:13.790852: >> Region optimisation pass width 240 gives best_metric 786.21p, best_cost 805.43p, best_cycle 33.81kWh, best_import 23.14kWh
2026-08-16 12:10:18.876965: >> Region optimisation pass width 120 gives best_metric 783.96p, best_cost 803.16p, best_cycle 35.03kWh, best_import 23.23kWh
2026-08-16 12:10:18.877355: Calculated end_record as 08-17 12:30:00 based on best_price 26.72p, next_charge_start 08-16 12:30:00, max_windows 49
2026-08-16 12:10:18.877435: Optimise levels pass ended at 2026-08-16 12:10:18, duration 11.6 seconds tried 306 combinations
2026-08-16 12:10:18.877521: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 783.96p, best_keep 0kWh, best_cycle 35.03kWh, best_carbon 0kg, best_import 23.23kWh
2026-08-16 12:10:18.895981: Starting detailed optimisation end_record 08-17 12:30:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 21.41p with charge limits [0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 12:10:24.756080: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0126 val_mae=0.0040 kWh val_bias=+0.0021 kWh (+4.1%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-16 12:10:38.125550: Tweak plan optimisation started metric 319.75p, cost 362.46p
2026-08-16 12:10:38.656790: Tweak optimisation finished metric 319.75p, cost 362.46p, metric_keep 0kWh, cycle 18.54kWh, carbon 0kg, import 7.24kWh, changed 8 window(s)
2026-08-16 12:10:38.680391: Swap charge optimisation started metric 319.75p, cost 362.46p, min_improvement_swap 0.1p
2026-08-16 12:10:42.923338: Swap charge optimisation finished metric 319.75p, cost 362.46p
2026-08-16 12:10:43.016130: Raw charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:10:43.017347: Unclipped charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:10:43.017569: Unfiltered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:10:43.017739: Filtered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:10:43.053110: Previous plan best metric is 320.24 (cost 362.95) and new plan best metric is 319.75 (cost 362.46)
2026-08-16 12:10:43.053417: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 12:10:43.053542: Plan valid is now true after recompute was False
2026-08-16 12:10:43.076347: predict base end_record 08-17 12:30:00, final soc 10.56kWh, metric 688.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.36kWh, PV 0.0kWh
2026-08-16 12:10:43.281304: Battery has 17.17 hours left - now at 11.2kWh
2026-08-16 12:10:43.390596: predict base10 end_record 08-17 12:30:00, final soc 10.56kWh, metric 707.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.08kWh, PV 0.0kWh
2026-08-16 12:10:43.611125: predict best10 end_record 08-17 12:30:00, final soc 1.32kWh, metric 415.6p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.08kWh, PV 0.0kWh
2026-08-16 12:10:43.761794: predict best end_record 08-17 12:30:00, final soc 1.99kWh, metric 412.93p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.36kWh, PV 0.0kWh
2026-08-16 12:10:43.761909: Saving plan best values to HA entities
2026-08-16 12:10:44.109160: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 12:10:44.128555: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 12:10:44.135972: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.27kWh, house 0.0kWh, export 0.0kWh, metric 412.93p, metric10 415.6p
2026-08-16 12:10:44.296376: Marginal costs baseline metric (no standing charge): 362.9458
2026-08-16 12:10:44.932155: Marginal energy costs matrix computed: min=5.15 max=32.76
2026-08-16 12:10:45.091931: Rate array import [{'start': 730, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2190, 'rate': 'cheap', 'range': '(26.8p - 29.4p)'}] export [{'start': 730, 'end': 2190, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:10:45.092637: - Your estimated bill for today is £3.63 and tomorrow is £7.12
2026-08-16 12:10:45.092717: - Import rates are cheap (21.4p - 23.4p) for the next 3 and three quarters hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:10:45.092757: - The battery is currently at 70% and is charging to 66% for the next 20 minutes.
2026-08-16 12:10:45.092832: - For the next 48 hours there will be no solar generation.
2026-08-16 12:10:45.092871: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:10:45.092905: 
2026-08-16 12:10:45.147744: Plan calculation took 38.00 seconds
2026-08-16 12:10:45.148097: Inverter 0: Type SK Sunsynk
2026-08-16 12:10:45.148174: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:10:45.148482: Reserve min: 7%, battery_min: 7%
2026-08-16 12:10:45.148615: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:10:45.149225: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 513W, current battery voltage 51.2V, grid power -55W, load power 574W, PV Power 0W
2026-08-16 12:10:45.149588: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:10:45.149807: Inverter 0 scheduled charge enable is True
2026-08-16 12:10:45.149969: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:10:45.150216: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:10:45.150540: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:10:45.150618: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:10:45.150828: Inverter 0 scheduled discharge enable is False
2026-08-16 12:10:45.151153: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:10:45.151279: Inverter 0 discharge windows currently []
2026-08-16 12:10:45.151487: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:10:45.151673: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:10:45.151839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:10:45.300646: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:10:45.300936: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 70%, target 66%
2026-08-16 12:10:45.301181: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:10:45.301315: Inverter 0 Hold charging as SoC 70% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:10:45.301513: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:10:45.301763: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:10:45.301893: No export window planned
2026-08-16 12:10:45.302053: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:10:45.302132: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:10:45.302330: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:10:45.302796: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:10:45.302931: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 70% -> 66% total add is -0.64kWh and this battery needs to add -0.64kWh to get to 10.56kWh
2026-08-16 12:10:45.303034: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:10:45.303183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303798: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303877: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.303951: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304027: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304102: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304176: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304249: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:10:45.304900: Inverter 0 count register writes 0
2026-08-16 12:10:45.337870: Total inverter register writes now 832
2026-08-16 12:10:45.408750: Info: Completed run status Hold charging
2026-08-16 12:10:45.417804: Info: record_status Hold charging target 70%-66%
2026-08-16 12:10:45.443738: Saved current settings to /config/predbat_config.json
2026-08-16 12:10:45.443925: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:11:07.809348: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0118 val_mae=0.0034 kWh val_bias=+0.0008 kWh (+1.5%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-16 12:11:26.634750: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:11:26.635234: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:11:26.635380: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:11:26.635724: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:11:26.635901: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:11:26.636005: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:11:26.636181: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:11:42.250896: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0108 val_mae=0.0032 kWh val_bias=-0.0011 kWh (-2.2%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-16 12:12:15.979893: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0101 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 12:12:48.765110: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0105 val_mae=0.0030 kWh val_bias=-0.0011 kWh (-2.1%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 12:13:21.602623: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0084 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-16 12:13:27.072178: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:13:27.072799: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:13:27.073081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:13:27.073559: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:13:27.073759: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:13:27.073964: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:13:27.074252: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:13:55.441981: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0089 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-16 12:14:26.495678: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0091 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-16 12:15:00.556384: --------------- PredBat - update at 2026-08-16 12:15:00+01:00 with clock skew 0 minutes, minutes now 735
2026-08-16 12:15:00.557761: Saved current settings to /config/predbat_config.json
2026-08-16 12:15:00.558009: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 12:15:00.558242: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:15:00.558441: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:15:00.589265: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:15:00.589697: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:15:00.590144: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:15:00.591093: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:15:00.594025: Predbat mode is set to Control charge & discharge
2026-08-16 12:15:00.950269: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:15:00.950550: Using load_power data to fill gaps in load_today data
2026-08-16 12:15:01.200424: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0081 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0020 kWh
2026-08-16 12:15:02.587238: Processing 721 30-minute periods for power integration
2026-08-16 12:15:02.836620: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:15:02.836780: Car charging hold False, threshold 6.0kWh
2026-08-16 12:15:02.836835: Current data so far today: load 6.25kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:15:02.859390: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:15:02.860215: Standing charge is set to 49.98p
2026-08-16 12:15:02.981809: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:15:02.982076: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:15:02.982434: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 95.0 minutes
2026-08-16 12:15:02.983118: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 95.0 minutes
2026-08-16 12:15:02.991603: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:15:03.219981: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:15:03.287297: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:15:03.287693: Import rates: min 21.41p, max 49.86p, average 31.17p
2026-08-16 12:15:03.330551: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:15:03.330697: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:15:03.331980: High export rate found rates in range 99p to -99p
2026-08-16 12:15:03.503911: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:15:03.504615: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:15:03.535719: Battery level now 11.2kWh, -1hr ago 7.5kWh, at midnight 12.21kWh, battery value change in the last hour 68.13p, change today -18.54p, rate_forward 18.39p
2026-08-16 12:15:03.536380: Last hour: net energy 4.3kWh, import 4.3kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 101.94p, import 101.94p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:15:03.717062: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:15:03.717329: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:15:03.853486: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:15:03.887321: Today's load divergence 90.13%, in-day adjustment 86.88%, damping 0.95x, yesterday 82.97% today 90.63% blend 48.96%
2026-08-16 12:15:03.887568: Today's predicted so far 7.61kWh with 0.0kWh car/iBoost excluded, 5.1kWh import ignored, and 7.61kWh forecast extra.
2026-08-16 12:15:03.887630: Today's actual load so far 6.21kWh with 0.0kWh car/iBoost excluded, and 5.1kWh import ignored.
2026-08-16 12:15:03.943100: Inverter 0: Type SK Sunsynk
2026-08-16 12:15:03.943217: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:15:03.943446: Reserve min: 7%, battery_min: 7%
2026-08-16 12:15:03.943554: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:15:03.943903: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 562W, current battery voltage 51.2V, grid power -55W, load power 624W, PV Power 0W
2026-08-16 12:15:03.944093: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:15:03.944200: Inverter 0 scheduled charge enable is True
2026-08-16 12:15:03.944265: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:15:03.944379: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:15:03.944542: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:15:03.944589: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:15:03.944635: Inverter 0 scheduled discharge enable is False
2026-08-16 12:15:03.944787: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:15:03.944833: Inverter 0 discharge windows currently []
2026-08-16 12:15:03.944862: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:15:03.944895: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:15:03.944919: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:15:04.074402: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:15:04.074663: Plan was last updated on 2026-08-16 12:10:00+01:00 and is now 5.0 minutes old
2026-08-16 12:15:04.075007: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:15:04.075143: Best export window [  ]
2026-08-16 12:15:04.076303: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:15:04.080197: Load divergence over 8.0 hours mean 390.36W, min 247.2W, max 816.0W, std dev 113.13W, divergence 14.49%
2026-08-16 12:15:04.128087: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:15:04.128249: LoadML is_calculating True
2026-08-16 12:15:04.128302: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:15:04.249031: predict base end_record 08-17 12:35:00, final soc 10.56kWh, metric 688.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.38kWh, PV 0.0kWh
2026-08-16 12:15:04.434252: Battery has 17.08 hours left - now at 11.2kWh
2026-08-16 12:15:04.488098: predict base10 end_record 08-17 12:35:00, final soc 10.56kWh, metric 707.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.1kWh, PV 0.0kWh
2026-08-16 12:15:04.654172: predict best10 end_record 08-17 12:35:00, final soc 1.65kWh, metric 425.16p, metric_keep 0kWh, min_soc 1.33kWh @ 08-17 12:25:00, load 22.1kWh, PV 0.0kWh
2026-08-16 12:15:04.779882: predict best end_record 08-17 12:35:00, final soc 2.39kWh, metric 424.31p, metric_keep 0kWh, min_soc 2.0kWh @ 08-17 12:25:00, load 21.38kWh, PV 0.0kWh
2026-08-16 12:15:04.780143: Saving plan best values to HA entities
2026-08-16 12:15:05.223275: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 12:15:05.245785: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 12:15:05.252163: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.69kWh, house 0kWh, export 0.0kWh, metric 424.31p, metric10 425.16p
2026-08-16 12:15:05.365321: Marginal costs baseline metric (no standing charge): 374.3293
2026-08-16 12:15:05.894326: Marginal energy costs matrix computed: min=4.89 max=32.33
2026-08-16 12:15:06.068729: Rate array import [{'start': 735, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2195, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 735, 'end': 2195, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:15:06.069373: - Your estimated bill for today is £3.62 and tomorrow is £7.14
2026-08-16 12:15:06.081059: - Import rates are cheap (21.4p - 23.4p) for the next 3 and three quarters hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:15:06.081328: - The battery is currently at 70% and is charging to 66% for the next 15 minutes.
2026-08-16 12:15:06.081489: - For the next 48 hours there will be no solar generation.
2026-08-16 12:15:06.081637: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:15:06.081767: 
2026-08-16 12:15:06.200855: Plan calculation took 2.13 seconds
2026-08-16 12:15:06.205931: No high rate period found
2026-08-16 12:15:06.303410: Import threshold used for optimisation was 23.43p
2026-08-16 12:15:06.399616: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 95: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:15:06.414296: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:15:06.414590: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 70%, target 66%
2026-08-16 12:15:06.432514: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:15:06.432818: Inverter 0 Hold charging as SoC 70% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:15:06.433169: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:15:06.433564: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:15:06.433773: No export window planned
2026-08-16 12:15:06.434018: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:15:06.434163: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:15:06.434455: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:15:06.434712: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:15:06.434896: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 70% -> 66% total add is -0.64kWh and this battery needs to add -0.64kWh to get to 10.56kWh
2026-08-16 12:15:06.435100: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:15:06.435331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.435504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.435656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.435797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.435941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436382: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436549: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436697: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.436838: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437010: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437163: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437305: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.437951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.438089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.438228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.438366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:15:06.438513: Inverter 0 count register writes 0
2026-08-16 12:15:06.517268: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 12:15:06.540057: Total inverter register writes now 832
2026-08-16 12:15:06.648529: Info: Completed run status Hold charging
2026-08-16 12:15:06.677253: Info: record_status Hold charging target 70%-66%
2026-08-16 12:15:06.695413: Saved current settings to /config/predbat_config.json
2026-08-16 12:15:06.695840: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:15:37.279923: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0084 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-16 12:15:41.878643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:15:41.879001: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:15:41.879065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:15:41.879259: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:15:41.879314: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:15:41.879345: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:15:41.879378: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:16:10.728438: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0075 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 12:16:43.379953: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 12:17:12.680066: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0068 val_mae=0.0023 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 12:17:42.355698: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:17:42.356211: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:17:42.356387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:17:42.356997: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:17:42.357166: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:17:42.357298: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:17:42.357447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:17:44.532654: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0065 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 12:18:14.365245: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 12:18:48.061430: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0067 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-16 12:19:20.696700: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 12:19:53.622409: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0061 val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 12:19:56.899263: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:19:56.899561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:19:56.899604: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:19:56.899785: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:19:56.899821: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:19:56.899844: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:19:56.899864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:20:00.089561: --------------- PredBat - update at 2026-08-16 12:20:00+01:00 with clock skew 0 minutes, minutes now 740
2026-08-16 12:20:00.091017: Saved current settings to /config/predbat_config.json
2026-08-16 12:20:00.091394: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 12:20:00.091630: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:20:00.091864: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:20:00.128978: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:20:00.129373: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:20:00.145358: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:20:00.146463: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:20:00.146843: Predbat mode is set to Control charge & discharge
2026-08-16 12:20:00.516200: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:20:00.516731: Using load_power data to fill gaps in load_today data
2026-08-16 12:20:01.982818: Processing 721 30-minute periods for power integration
2026-08-16 12:20:02.391269: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:20:02.391445: Car charging hold False, threshold 6.0kWh
2026-08-16 12:20:02.391503: Current data so far today: load 6.35kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:20:02.429445: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:20:02.429829: Standing charge is set to 49.98p
2026-08-16 12:20:02.481053: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:20:02.481175: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:20:02.481432: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 100.0 minutes
2026-08-16 12:20:02.481906: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 100.0 minutes
2026-08-16 12:20:02.487811: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:20:02.589394: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:20:02.655000: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:20:02.655455: Import rates: min 21.41p, max 49.86p, average 31.18p
2026-08-16 12:20:02.698214: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:20:02.698458: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:20:02.699804: High export rate found rates in range 99p to -99p
2026-08-16 12:20:02.795422: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:20:02.796052: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:20:02.814761: Battery level now 11.2kWh, -1hr ago 8.2kWh, at midnight 12.21kWh, battery value change in the last hour 55.18p, change today -18.54p, rate_forward 18.39p
2026-08-16 12:20:02.815477: Last hour: net energy 3.85kWh, import 3.85kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 91.03p, import 91.03p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:20:02.954947: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:20:02.955171: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:20:03.126312: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:20:03.154243: Today's load divergence 90.62%, in-day adjustment 87.14%, damping 0.95x, yesterday 82.97% today 91.08% blend 48.61%
2026-08-16 12:20:03.154561: Today's predicted so far 7.64kWh with 0.0kWh car/iBoost excluded, 5.07kWh import ignored, and 7.64kWh forecast extra.
2026-08-16 12:20:03.154623: Today's actual load so far 6.3kWh with 0.0kWh car/iBoost excluded, and 5.07kWh import ignored.
2026-08-16 12:20:03.207647: Inverter 0: Type SK Sunsynk
2026-08-16 12:20:03.207770: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:20:03.208042: Reserve min: 7%, battery_min: 7%
2026-08-16 12:20:03.208148: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:20:03.208482: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 543W, current battery voltage 51.2V, grid power -55W, load power 606W, PV Power 0W
2026-08-16 12:20:03.208679: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:20:03.208790: Inverter 0 scheduled charge enable is True
2026-08-16 12:20:03.208856: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:20:03.209018: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:20:03.209200: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:20:03.209248: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:20:03.209295: Inverter 0 scheduled discharge enable is False
2026-08-16 12:20:03.209442: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:20:03.209489: Inverter 0 discharge windows currently []
2026-08-16 12:20:03.209518: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:20:03.209543: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:20:03.209660: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:20:03.394162: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:20:03.394318: Plan was last updated on 2026-08-16 12:10:00+01:00 and is now 10.0 minutes old
2026-08-16 12:20:03.394810: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:20:03.394870: Best export window [  ]
2026-08-16 12:20:03.396280: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:20:03.401142: Load divergence over 8.0 hours mean 391.87W, min 244.2W, max 845.4W, std dev 108.7W, divergence 13.87%
2026-08-16 12:20:03.470845: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:20:03.475673: LoadML is_calculating True
2026-08-16 12:20:03.475935: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:20:03.570483: predict base end_record 08-17 12:40:00, final soc 10.56kWh, metric 692.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.5kWh, PV 0.0kWh
2026-08-16 12:20:03.819934: Battery has 17.0 hours left - now at 11.04kWh
2026-08-16 12:20:03.919559: predict base10 end_record 08-17 12:40:00, final soc 10.56kWh, metric 711.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.22kWh, PV 0.0kWh
2026-08-16 12:20:04.053663: predict best10 end_record 08-17 12:40:00, final soc 1.97kWh, metric 438.74p, metric_keep 0kWh, min_soc 1.33kWh @ 08-17 12:25:00, load 22.22kWh, PV 0.0kWh
2026-08-16 12:20:04.252765: predict best end_record 08-17 12:40:00, final soc 2.77kWh, metric 439.72p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.5kWh, PV 0.0kWh
2026-08-16 12:20:04.253006: Saving plan best values to HA entities
2026-08-16 12:20:04.615209: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:20:04.625128: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:20:04.635530: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.29kWh, house 0.0kWh, export 0.0kWh, metric 439.72p, metric10 438.74p
2026-08-16 12:20:04.759882: Marginal costs baseline metric (no standing charge): 389.741
2026-08-16 12:20:05.123306: Marginal energy costs matrix computed: min=5.01 max=31.97
2026-08-16 12:20:05.330150: Rate array import [{'start': 740, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2200, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 740, 'end': 2200, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:20:05.330796: - Your estimated bill for today is £3.64 and tomorrow is £7.14
2026-08-16 12:20:05.331201: - Import rates are cheap (21.4p - 23.4p) for the next 3 and three quarters hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:20:05.331765: - The battery is currently at 69% and is charging to 66% for the next 10 minutes.
2026-08-16 12:20:05.331849: - For the next 48 hours there will be no solar generation.
2026-08-16 12:20:05.332016: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:20:05.332204: 
2026-08-16 12:20:05.376750: Plan calculation took 1.98 seconds
2026-08-16 12:20:05.382248: No high rate period found
2026-08-16 12:20:05.483816: Import threshold used for optimisation was 23.43p
2026-08-16 12:20:05.613114: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 95: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:20:05.630844: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:20:05.631246: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 66%
2026-08-16 12:20:05.631608: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:20:05.631866: Inverter 0 Hold charging as SoC 69% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:20:05.632168: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:20:05.632641: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:20:05.632993: No export window planned
2026-08-16 12:20:05.633402: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:20:05.633651: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:20:05.634083: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:20:05.634398: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:20:05.634691: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 69% -> 66% total add is -0.48kWh and this battery needs to add -0.48kWh to get to 10.56kWh
2026-08-16 12:20:05.635126: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:20:05.635439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.636642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.636928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.637167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.637368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.637611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.637766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638038: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638207: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638403: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638597: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638789: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.638980: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.639192: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.639485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.639648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.639843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.640121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.640283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.640477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.640668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:05.640851: Inverter 0 count register writes 0
2026-08-16 12:20:05.675694: 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-16 12:20:05.676212: Recompute is saving previous plan...
2026-08-16 12:20:05.682280: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 66%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 66%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 66%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 66%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 66%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 66%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 66%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 66%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 66%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 66%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 66%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 66%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 66%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 66%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 66%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 66%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 66%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 66%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 66%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 66%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 66%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 66%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 66%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 66%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 66%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 66%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 66%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 66%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 66%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 66%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 66%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 66%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 66%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 66%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 66%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 66%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 66%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 66%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 66%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 66%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 66%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 66%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 66%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 66%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 66%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 66%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 66%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 66%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 66%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 66%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 66%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 66%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 66%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 66%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 66%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 66%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 66%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 66%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 66%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 66%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 66%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 66%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 66%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 66%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 66%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 66%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 66%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 66%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 66%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 66%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 66% ]
2026-08-16 12:20:05.682600: Best export window [  ]
2026-08-16 12:20:05.684329: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:20:05.690397: Load divergence over 8.0 hours mean 391.87W, min 244.2W, max 845.4W, std dev 108.7W, divergence 13.87%
2026-08-16 12:20:05.776187: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:20:05.776650: LoadML is_calculating True
2026-08-16 12:20:05.776705: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:20:05.791988: 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(0.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-16 12:20:05.806639: Optimise levels pass started at 2026-08-16 12:20:05
2026-08-16 12:20:05.806897: Optimise all windows, total charge 95 export 1
2026-08-16 12:20:09.173304: >> Region optimisation pass width 960 gives best_metric 790.53p, best_cost 809.73p, best_cycle 33.52kWh, best_import 23.28kWh
2026-08-16 12:20:10.118757: >> Region optimisation pass width 480 gives best_metric 790.53p, best_cost 809.73p, best_cycle 33.52kWh, best_import 23.28kWh
2026-08-16 12:20:11.226280: >> Region optimisation pass width 240 gives best_metric 790.53p, best_cost 809.73p, best_cycle 33.52kWh, best_import 23.28kWh
2026-08-16 12:20:16.564135: >> Region optimisation pass width 120 gives best_metric 787.8p, best_cost 806.98p, best_cycle 35.0kWh, best_import 23.39kWh
2026-08-16 12:20:16.564775: Calculated end_record as 08-17 12:30:00 based on best_price 26.72p, next_charge_start 08-16 12:30:00, max_windows 49
2026-08-16 12:20:16.565540: Optimise levels pass ended at 2026-08-16 12:20:16, duration 10.8 seconds tried 273 combinations
2026-08-16 12:20:16.565614: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 787.8p, best_keep 0kWh, best_cycle 35.0kWh, best_carbon 0kg, best_import 23.39kWh
2026-08-16 12:20:16.587075: Starting detailed optimisation end_record 08-17 12:30:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 21.41p with charge limits [0, 16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 12:20:34.803171: Tweak plan optimisation started metric 321.16p, cost 364.02p
2026-08-16 12:20:35.294592: Tweak optimisation finished metric 321.16p, cost 364.02p, metric_keep 0kWh, cycle 18.7kWh, carbon 0kg, import 7.31kWh, changed 8 window(s)
2026-08-16 12:20:35.324160: Swap charge optimisation started metric 321.16p, cost 364.02p, min_improvement_swap 0.1p
2026-08-16 12:20:39.763442: Swap charge optimisation finished metric 321.16p, cost 364.02p
2026-08-16 12:20:39.970059: Raw charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:20:39.970721: Unclipped charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:20:39.970952: Unfiltered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:20:39.971171: Filtered charge windows [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 69%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:20:40.069987: Previous plan best metric is 321.43 (cost 364.28) and new plan best metric is 321.16 (cost 364.02)
2026-08-16 12:20:40.081856: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 12:20:40.082178: Plan valid is now true after recompute was False
2026-08-16 12:20:40.155855: predict base end_record 08-17 12:30:00, final soc 10.56kWh, metric 689.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.38kWh, PV 0.0kWh
2026-08-16 12:20:40.439749: Battery has 17.0 hours left - now at 11.04kWh
2026-08-16 12:20:40.535552: predict base10 end_record 08-17 12:30:00, final soc 10.56kWh, metric 708.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.09kWh, PV 0.0kWh
2026-08-16 12:20:40.672268: predict best10 end_record 08-17 12:30:00, final soc 1.33kWh, metric 416.82p, metric_keep 0kWh, min_soc 1.33kWh @ 08-17 12:25:00, load 22.09kWh, PV 0.0kWh
2026-08-16 12:20:40.814845: predict best end_record 08-17 12:30:00, final soc 1.99kWh, metric 414.27p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.38kWh, PV 0.0kWh
2026-08-16 12:20:40.814949: Saving plan best values to HA entities
2026-08-16 12:20:41.125348: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:20:41.143841: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:20:41.153191: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.33kWh, house 0.0kWh, export 0.0kWh, metric 414.27p, metric10 416.82p
2026-08-16 12:20:41.292670: Marginal costs baseline metric (no standing charge): 364.2844
2026-08-16 12:20:41.844806: Marginal energy costs matrix computed: min=5.01 max=31.97
2026-08-16 12:20:42.001749: Rate array import [{'start': 740, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2190, 'rate': 'cheap', 'range': '(26.8p - 29.4p)'}] export [{'start': 740, 'end': 2190, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:20:42.002557: - Your estimated bill for today is £3.64 and tomorrow is £7.14
2026-08-16 12:20:42.002723: - Import rates are cheap (21.4p - 23.4p) for the next 3 and three quarters hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:20:42.002890: - The battery is currently at 69% and is charging to 66% for the next 10 minutes.
2026-08-16 12:20:42.003018: - For the next 48 hours there will be no solar generation.
2026-08-16 12:20:42.003136: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:20:42.003245: 
2026-08-16 12:20:42.061986: Plan calculation took 36.39 seconds
2026-08-16 12:20:42.062271: Inverter 0: Type SK Sunsynk
2026-08-16 12:20:42.062323: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:20:42.062536: Reserve min: 7%, battery_min: 7%
2026-08-16 12:20:42.062624: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:20:42.062943: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 543W, current battery voltage 51.2V, grid power -55W, load power 606W, PV Power 0W
2026-08-16 12:20:42.066040: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:20:42.066180: Inverter 0 scheduled charge enable is True
2026-08-16 12:20:42.066251: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:20:42.066497: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:20:42.066784: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:20:42.066913: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:20:42.067093: Inverter 0 scheduled discharge enable is False
2026-08-16 12:20:42.067358: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:20:42.067508: Inverter 0 discharge windows currently []
2026-08-16 12:20:42.067617: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:20:42.067855: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:20:42.067984: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:20:42.250405: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:20:42.250560: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 66%
2026-08-16 12:20:42.250722: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:20:42.250828: Inverter 0 Hold charging as SoC 69% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:20:42.251013: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:20:42.251269: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:20:42.251400: No export window planned
2026-08-16 12:20:42.251551: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:20:42.251604: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:20:42.251807: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:20:42.251945: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:20:42.252055: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 69% -> 66% total add is -0.48kWh and this battery needs to add -0.48kWh to get to 10.56kWh
2026-08-16 12:20:42.252136: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:20:42.252274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.252334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.252784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.252849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.252941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253342: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253406: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253600: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253724: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253787: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.253910: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.254076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.254145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.254522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.254782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.255041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.255319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.257191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:20:42.257566: Inverter 0 count register writes 0
2026-08-16 12:20:42.332152: Total inverter register writes now 832
2026-08-16 12:20:42.389870: Info: Completed run status Hold charging
2026-08-16 12:20:42.401702: Info: record_status Hold charging target 69%-66%
2026-08-16 12:20:42.413506: Saved current settings to /config/predbat_config.json
2026-08-16 12:20:42.413728: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:20:48.271070: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 12:21:19.205488: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-16 12:21:26.645907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:21:26.646379: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:21:26.646536: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:21:26.646832: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:21:26.647056: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:21:26.647184: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:21:26.647327: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:21:53.528772: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0062 val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0012 kWh
2026-08-16 12:22:25.915864: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0014 kWh ema_combined=0.0012 kWh
2026-08-16 12:22:57.634831: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0020 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 12:22:57.635759: ML Predictor: Restored best weights from epoch with val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 12:22:57.635914: ML Predictor: Training complete, final val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 12:23:06.034563: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=+0.0002 kWh (+0.5%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 12:23:06.040269: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0021 kWh
2026-08-16 12:23:06.132106: ML Predictor: Curriculum pass 2/5: window=55.0 days (1320 hours of data)
2026-08-16 12:23:06.132742: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 12:23:06.807690: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 12:23:12.251852: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 12:23:12.305914: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0472) load(mean=0.0587 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.5093 std=4.4217) import_rate(mean=26.1317 std=2.9082) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1882 std=0.5246)
2026-08-16 12:23:12.392522: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 12:23:12.409547: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 12:23:12.459748: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=+0.0001 kWh
2026-08-16 12:23:41.592204: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:23:41.592787: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:23:41.592852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:23:41.593161: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:23:41.593327: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:23:41.593486: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:23:41.593642: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:23:45.191492: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0048 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-16 12:24:17.500168: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0042 kWh val_bias=-0.0017 kWh (-2.4%) combined=0.0036 kWh ema_combined=0.0033 kWh
2026-08-16 12:24:55.779998: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0102 val_mae=0.0072 kWh val_bias=+0.0041 kWh (+5.8%) combined=0.0053 kWh ema_combined=0.0039 kWh
2026-08-16 12:25:00.000867: --------------- PredBat - update at 2026-08-16 12:25:00+01:00 with clock skew 0 minutes, minutes now 745
2026-08-16 12:25:00.001749: Saved current settings to /config/predbat_config.json
2026-08-16 12:25:00.001882: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 12:25:00.001959: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:25:00.003042: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:25:00.069423: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:25:00.069775: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:25:00.070108: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:25:00.071205: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:25:00.071660: Predbat mode is set to Control charge & discharge
2026-08-16 12:25:00.413229: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:25:00.413631: Using load_power data to fill gaps in load_today data
2026-08-16 12:25:01.835095: Processing 721 30-minute periods for power integration
2026-08-16 12:25:02.229945: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:25:02.230116: Car charging hold False, threshold 6.0kWh
2026-08-16 12:25:02.230182: Current data so far today: load 6.4kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:25:02.293359: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:25:02.293843: Standing charge is set to 49.98p
2026-08-16 12:25:02.467245: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:25:02.467380: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:25:02.467662: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 105.0 minutes
2026-08-16 12:25:02.468287: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 105.0 minutes
2026-08-16 12:25:02.478620: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:25:02.587259: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:25:02.653067: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:25:02.653602: Import rates: min 21.41p, max 49.86p, average 31.18p
2026-08-16 12:25:02.699194: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:25:02.699329: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:25:02.700624: High export rate found rates in range 99p to -99p
2026-08-16 12:25:02.794952: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:25:02.795461: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 720, 'end': 750, 'average': 23.43}, {'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:25:02.812431: Battery level now 11.04kWh, -1hr ago 8.54kWh, at midnight 12.21kWh, battery value change in the last hour 46.06p, change today -21.48p, rate_forward 18.39p
2026-08-16 12:25:02.813001: Last hour: net energy 3.4kWh, import 3.4kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 80.11p, import 80.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:25:02.893969: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:25:02.894265: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:25:03.073441: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:25:03.121903: Today's load divergence 90.69%, in-day adjustment 87.2%, damping 0.95x, yesterday 82.97% today 91.15% blend 48.26%
2026-08-16 12:25:03.137057: Today's predicted so far 7.67kWh with 0.0kWh car/iBoost excluded, 5.06kWh import ignored, and 7.67kWh forecast extra.
2026-08-16 12:25:03.137805: Today's actual load so far 6.35kWh with 0.0kWh car/iBoost excluded, and 5.06kWh import ignored.
2026-08-16 12:25:03.187541: Inverter 0: Type SK Sunsynk
2026-08-16 12:25:03.187670: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:25:03.188000: Reserve min: 7%, battery_min: 7%
2026-08-16 12:25:03.188238: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:25:03.188616: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 452W, current battery voltage 51.2V, grid power -56W, load power 516W, PV Power 0W
2026-08-16 12:25:03.188845: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:25:03.188997: Inverter 0 scheduled charge enable is True
2026-08-16 12:25:03.189130: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:25:03.189328: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:25:03.189528: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:25:03.189607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:25:03.189731: Inverter 0 scheduled discharge enable is False
2026-08-16 12:25:03.190003: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:25:03.190071: Inverter 0 discharge windows currently []
2026-08-16 12:25:03.190112: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:25:03.190147: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:25:03.190181: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:25:03.328514: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:25:03.328808: Plan was last updated on 2026-08-16 12:20:00+01:00 and is now 5.0 minutes old
2026-08-16 12:25:03.329987: Best charge window [ 16-08 12:00:00 - 16-08 12:30:00 @ 23.43p 66%, 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:25:03.330146: Best export window [  ]
2026-08-16 12:25:03.331640: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:25:03.338165: Load divergence over 8.0 hours mean 393.54W, min 240.6W, max 850.2W, std dev 106.53W, divergence 13.54%
2026-08-16 12:25:03.411966: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:25:03.412140: LoadML is_calculating True
2026-08-16 12:25:03.412185: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:25:03.642432: predict base end_record 08-17 12:35:00, final soc 10.56kWh, metric 689.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 21.44kWh, PV 0.0kWh
2026-08-16 12:25:03.872384: Battery has 16.92 hours left - now at 11.04kWh
2026-08-16 12:25:03.953378: predict base10 end_record 08-17 12:35:00, final soc 10.56kWh, metric 708.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:35:00, load 22.15kWh, PV 0.0kWh
2026-08-16 12:25:04.137908: predict best10 end_record 08-17 12:35:00, final soc 1.66kWh, metric 426.42p, metric_keep 0kWh, min_soc 1.33kWh @ 08-17 12:25:00, load 22.15kWh, PV 0.0kWh
2026-08-16 12:25:04.307683: predict best end_record 08-17 12:35:00, final soc 2.39kWh, metric 425.71p, metric_keep 0kWh, min_soc 2.0kWh @ 08-17 12:25:00, load 21.44kWh, PV 0.0kWh
2026-08-16 12:25:04.307788: Saving plan best values to HA entities
2026-08-16 12:25:04.680334: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 12:25:04.709988: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 12:25:04.730461: Best charging limit SoC's [10.5, 12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.75kWh, house 0.0kWh, export 0.0kWh, metric 425.71p, metric10 426.42p
2026-08-16 12:25:04.934979: Marginal costs baseline metric (no standing charge): 375.7315
2026-08-16 12:25:05.488233: Marginal energy costs matrix computed: min=4.89 max=31.58
2026-08-16 12:25:05.689066: Rate array import [{'start': 745, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.4p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2195, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 745, 'end': 2195, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:25:05.701546: - Your estimated bill for today is £3.63 and tomorrow is £7.15
2026-08-16 12:25:05.701674: - Import rates are cheap (21.4p - 23.4p) for the next 3 and a half hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:25:05.701705: - The battery is currently at 69% and is charging to 66% for the next 5 minutes.
2026-08-16 12:25:05.701730: - For the next 48 hours there will be no solar generation.
2026-08-16 12:25:05.701753: - You will reach a minimum of 12% battery in 24 hours.
2026-08-16 12:25:05.701776: 
2026-08-16 12:25:05.816526: Plan calculation took 2.49 seconds
2026-08-16 12:25:05.823196: No high rate period found
2026-08-16 12:25:05.970767: Import threshold used for optimisation was 23.43p
2026-08-16 12:25:06.120128: Low import rate windows [0: 08-16 12:00:00 - 08-16 12:30:00 @ 23.43, 1: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 2: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 3: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 4: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 5: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 6: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 7: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 8: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 9: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 10: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 11: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 12: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 13: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 14: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 15: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 16: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 17: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 18: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 19: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 20: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 21: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 22: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 23: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 24: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 25: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 26: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 27: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 28: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 29: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 30: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 31: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 32: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 33: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 34: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 35: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 36: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 37: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 38: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 39: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 40: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 41: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 42: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 43: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 44: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 45: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 46: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 47: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 48: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 49: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 50: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 51: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 52: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 53: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 54: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 55: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 56: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 57: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 58: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 59: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 60: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 61: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 62: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 63: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 64: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 65: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 66: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 67: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 68: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 69: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 70: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 71: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 72: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 73: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 74: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 75: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 76: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 77: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 78: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 79: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 80: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 81: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 82: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 83: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 84: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 85: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 86: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 87: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 88: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 89: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 90: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 91: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 92: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 93: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 94: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 95: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:25:06.153468: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:00:00
2026-08-16 12:25:06.153745: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 66%
2026-08-16 12:25:06.153932: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:25:06.154067: Inverter 0 Hold charging as SoC 69% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-16 12:25:06.154253: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:25:06.154502: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:25:06.154655: No export window planned
2026-08-16 12:25:06.154825: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:25:06.154870: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:25:06.155076: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:25:06.155245: Inverter 0 setting charging SoC to 66% as per target
2026-08-16 12:25:06.155424: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 69% -> 66% total add is -0.48kWh and this battery needs to add -0.48kWh to get to 10.56kWh
2026-08-16 12:25:06.155556: Inverter 0 Current Target SoC is 66%, already at target
2026-08-16 12:25:06.155729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.155879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156687: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.156822: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157002: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157140: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157268: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157397: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.157984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.158108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.158231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.158355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.158478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:25:06.158607: Inverter 0 count register writes 0
2026-08-16 12:25:06.197418: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 12:25:06.209409: Total inverter register writes now 832
2026-08-16 12:25:06.272883: Info: Completed run status Hold charging
2026-08-16 12:25:06.283692: Info: record_status Hold charging target 69%-66%
2026-08-16 12:25:06.294750: Saved current settings to /config/predbat_config.json
2026-08-16 12:25:06.294969: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:25:30.181216: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0126 val_mae=0.0050 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0026 kWh ema_combined=0.0035 kWh
2026-08-16 12:25:42.462146: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:25:42.462439: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:25:42.462499: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:25:42.462697: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:25:42.462747: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:25:42.462769: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:25:42.462787: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:25:59.433869: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0121 val_mae=0.0046 kWh val_bias=+0.0011 kWh (+1.5%) combined=0.0040 kWh ema_combined=0.0037 kWh
2026-08-16 12:26:31.947218: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0131 val_mae=0.0052 kWh val_bias=+0.0025 kWh (+3.5%) combined=0.0044 kWh ema_combined=0.0039 kWh
2026-08-16 12:27:04.955876: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0111 val_mae=0.0040 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0029 kWh ema_combined=0.0036 kWh
2026-08-16 12:27:37.886586: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0130 val_mae=0.0038 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0020 kWh ema_combined=0.0031 kWh
2026-08-16 12:27:57.000771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:27:57.002653: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:27:57.002773: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:27:57.002994: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:27:57.003050: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:27:57.003084: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:27:57.003109: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:28:09.888171: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0106 val_mae=0.0041 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 12:28:42.076010: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0039 kWh val_bias=-0.0022 kWh (-3.1%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-16 12:28:42.076144: ML Predictor: Early stopping at epoch 10
2026-08-16 12:28:42.077104: ML Predictor: Restored best weights from epoch with val_mae=0.0047 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 12:28:42.077601: ML Predictor: Training complete, final val_mae=0.0047 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 12:28:51.249898: ML Predictor: AR rollout over holdout: ar_mae=0.0053 kWh ar_bias=+0.0003 kWh (+0.5%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-16 12:28:51.259857: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0047 kWh
2026-08-16 12:28:51.383473: ML Predictor: Curriculum pass 3/5: window=56.0 days (1344 hours of data)
2026-08-16 12:28:51.383759: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 12:28:52.025066: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 12:28:57.085298: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 12:28:57.142562: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0472) load(mean=0.0588 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.5307 std=4.4379) import_rate(mean=26.1398 std=2.9063) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5248)
2026-08-16 12:28:57.234374: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 12:28:57.251384: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 12:28:57.303773: ML Predictor: Baseline (pre-finetune) val_mae=0.0085 kWh val_bias=-0.0006 kWh
2026-08-16 12:29:27.266704: Successfully loaded apps.yaml from apps.yaml
2026-08-16 12:29:31.544192: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0070 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 12:29:57.076168: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:29:57.076666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:29:57.076830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:29:57.077173: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:29:57.077374: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:29:57.077490: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:29:57.077606: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:30:00.282236: --------------- PredBat - update at 2026-08-16 12:30:00+01:00 with clock skew 0 minutes, minutes now 750
2026-08-16 12:30:00.283631: Saved current settings to /config/predbat_config.json
2026-08-16 12:30:00.283943: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 12:30:00.284152: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:30:00.284568: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:30:00.333847: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:30:00.334188: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:30:00.334512: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:30:00.335097: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:30:00.335331: Predbat mode is set to Control charge & discharge
2026-08-16 12:30:00.772171: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:30:00.789267: Using load_power data to fill gaps in load_today data
2026-08-16 12:30:02.723425: Processing 721 30-minute periods for power integration
2026-08-16 12:30:03.017745: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:30:03.018425: Car charging hold False, threshold 6.0kWh
2026-08-16 12:30:03.018538: Current data so far today: load 6.45kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:30:03.037916: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:30:03.038625: Standing charge is set to 49.98p
2026-08-16 12:30:03.137749: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:30:03.137960: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:30:03.138327: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 110.0 minutes
2026-08-16 12:30:03.139118: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 110.0 minutes
2026-08-16 12:30:03.147397: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:30:03.339836: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:30:03.490898: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:30:03.505568: Import rates: min 21.41p, max 49.86p, average 31.19p
2026-08-16 12:30:03.622800: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:30:03.637126: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:30:03.639122: High export rate found rates in range 99p to -99p
2026-08-16 12:30:03.805095: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:30:03.815224: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}], ready by 16:00:00
2026-08-16 12:30:03.881663: Battery level now 11.04kWh, -1hr ago 8.54kWh, at midnight 12.21kWh, battery value change in the last hour 46.06p, change today -21.48p, rate_forward 18.39p
2026-08-16 12:30:03.882244: Last hour: net energy 2.95kWh, import 2.95kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 69.27p, import 69.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:30:04.099446: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:30:04.099859: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:30:04.221900: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:30:04.252480: Today's load divergence 90.37%, in-day adjustment 87.07%, damping 0.95x, yesterday 82.97% today 90.85% blend 47.92%
2026-08-16 12:30:04.253247: Today's predicted so far 7.82kWh with 0.0kWh car/iBoost excluded, 5.05kWh import ignored, and 7.82kWh forecast extra.
2026-08-16 12:30:04.253471: Today's actual load so far 6.45kWh with 0.0kWh car/iBoost excluded, and 5.05kWh import ignored.
2026-08-16 12:30:04.350512: Inverter 0: Type SK Sunsynk
2026-08-16 12:30:04.350619: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:30:04.350813: Reserve min: 7%, battery_min: 7%
2026-08-16 12:30:04.350889: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:30:04.351171: Inverter 0 SoC: 11.01kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 527W, current battery voltage 51.2V, grid power -55W, load power 589W, PV Power 0W
2026-08-16 12:30:04.351360: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:30:04.351698: Inverter 0 scheduled charge enable is True
2026-08-16 12:30:04.351773: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:30:04.351887: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 66.0%, power 5.0kW
2026-08-16 12:30:04.352040: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:30:04.352077: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:30:04.352117: Inverter 0 scheduled discharge enable is False
2026-08-16 12:30:04.352251: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:30:04.352375: Inverter 0 discharge windows currently []
2026-08-16 12:30:04.352424: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:30:04.352445: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:30:04.352470: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:30:04.496340: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:30:04.496656: Plan was last updated on 2026-08-16 12:20:00+01:00 and is now 10.0 minutes old
2026-08-16 12:30:04.496862: Current charge window has expired, removing it
2026-08-16 12:30:04.497448: Best charge window [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:30:04.497684: Best export window [  ]
2026-08-16 12:30:04.499286: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:30:04.504995: Load divergence over 8.0 hours mean 394.95W, min 253.8W, max 766.8W, std dev 104.19W, divergence 13.19%
2026-08-16 12:30:04.584770: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:30:04.601124: LoadML is_calculating True
2026-08-16 12:30:04.601436: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:30:04.731212: predict base end_record 08-17 12:40:00, final soc 10.56kWh, metric 690.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:15:00, load 21.49kWh, PV 0.0kWh
2026-08-16 12:30:04.944125: Battery has 16.75 hours left - now at 11.01kWh
2026-08-16 12:30:05.045827: predict base10 end_record 08-17 12:40:00, final soc 10.56kWh, metric 710.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.21kWh, PV 0.0kWh
2026-08-16 12:30:05.350839: predict best10 end_record 08-17 12:40:00, final soc 1.97kWh, metric 436.43p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.21kWh, PV 0.0kWh
2026-08-16 12:30:05.508523: predict best end_record 08-17 12:40:00, final soc 2.76kWh, metric 437.56p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.49kWh, PV 0.0kWh
2026-08-16 12:30:05.509006: Saving plan best values to HA entities
2026-08-16 12:30:05.809657: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:30:05.821717: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:30:05.828293: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.19kWh, house 0.0kWh, export 0.0kWh, metric 437.56p, metric10 436.43p
2026-08-16 12:30:06.059040: Marginal costs baseline metric (no standing charge): 387.5723
2026-08-16 12:30:06.361646: Marginal energy costs matrix computed: min=5.17 max=31.24
2026-08-16 12:30:06.565801: Rate array import [{'start': 750, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.0p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2200, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 750, 'end': 2200, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:30:06.566487: - Your estimated bill for today is £3.62 and tomorrow is £7.13
2026-08-16 12:30:06.573123: - Import rates are cheap (21.4p - 23.0p) for the next 3 and a half hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:30:06.573368: - The battery is currently at 69% and is charging to 75% for the next 1 and a half hours.
2026-08-16 12:30:06.573422: - For the next 48 hours there will be no solar generation.
2026-08-16 12:30:06.573496: - You will reach a minimum of 12% battery in 23 hours.
2026-08-16 12:30:06.573570: 
2026-08-16 12:30:06.649973: Plan calculation took 2.15 seconds
2026-08-16 12:30:06.656825: No high rate period found
2026-08-16 12:30:06.840850: Import threshold used for optimisation was 23.43p
2026-08-16 12:30:06.953780: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 9: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 10: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 11: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 12: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 13: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 14: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 15: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 16: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 17: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 18: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 19: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 20: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 21: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 22: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 23: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 24: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 25: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 26: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 27: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 28: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 29: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 30: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 31: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 32: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 33: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 34: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 35: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 36: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 37: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 38: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 39: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 40: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 41: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 42: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 43: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 44: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 45: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 46: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 47: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 48: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 49: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 50: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 51: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 52: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 53: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 54: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 55: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 56: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 57: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 58: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 59: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 60: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 61: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 62: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 63: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 64: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 65: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 66: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 67: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 68: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 69: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 70: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 71: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 72: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 73: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 74: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 75: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 76: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 77: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 78: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 79: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 80: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 81: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 82: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 83: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 84: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 85: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 86: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 87: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 88: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 89: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 90: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 91: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 92: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 93: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 94: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84]
2026-08-16 12:30:07.006592: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:30:07.006813: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 75%
2026-08-16 12:30:07.007007: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:30:07.007246: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:30:07.007582: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:30:07.007716: No export window planned
2026-08-16 12:30:07.007891: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:30:07.007952: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:30:07.008202: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:30:07.008385: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:30:07.008496: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 69% -> 75% total add is 0.99kWh and this battery needs to add 0.99kWh to get to 12.0kWh
2026-08-16 12:30:07.008589: Inverter 0 Current charge limit is 66% and new target is 75%
2026-08-16 12:30:10.439695: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0131 val_mae=0.0074 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0037 kWh ema_combined=0.0037 kWh
2026-08-16 12:30:12.104913: Inverter 0 write_and_poll_value: Wrote 75 to charge_limit, successfully now 75.0
2026-08-16 12:30:12.105334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.105398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.105437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.108886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.115030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.115154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.115390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.115584: 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-16 12:30:12.153040: 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-16 12:30:12.273093: 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-16 12:30:12.393422: 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-16 12:30:12.498226: 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-16 12:30:12.601367: 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-16 12:30:12.676890: 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-16 12:30:12.733974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.734943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:12.735067: Inverter 0 count register writes 1
2026-08-16 12:30:12.826687: 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-16 12:30:12.826895: Recompute is saving previous plan...
2026-08-16 12:30:12.831752: Best charge window [ 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 66%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 66%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 66%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 66%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 66%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 66%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 66%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 66%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 66%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 66%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 66%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 66%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 66%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 66%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 66%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 66%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 66%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 66%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 66%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 66%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 66%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 66%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 66%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 66%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 66%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 66%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 66%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 66%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 66%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 66%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 66%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 66%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 66%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 66%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 66%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 66%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 66%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 66%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 66%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 66%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 66%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 66%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 66%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 66%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 66%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 66%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 66%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 66%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 66%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 66%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 66%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 66%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 66%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 66%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 66%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 66%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 66%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 66%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 66%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 66%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 66%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 66%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 66%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 66%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 66%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 66%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 66%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 66%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 66%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 66%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 66%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 66%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 66%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 66% ]
2026-08-16 12:30:12.831866: Best export window [  ]
2026-08-16 12:30:12.833744: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:30:12.849380: Load divergence over 8.0 hours mean 394.95W, min 253.8W, max 766.8W, std dev 104.19W, divergence 13.19%
2026-08-16 12:30:12.892837: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:30:12.909096: LoadML is_calculating True
2026-08-16 12:30:12.909428: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:30:12.924017: 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(0.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-16 12:30:12.925247: Optimise levels pass started at 2026-08-16 12:30:12
2026-08-16 12:30:12.925533: Optimise all windows, total charge 95 export 1
2026-08-16 12:30:16.258472: >> Region optimisation pass width 960 gives best_metric 792.18p, best_cost 811.37p, best_cycle 33.55kWh, best_import 23.36kWh
2026-08-16 12:30:17.279429: >> Region optimisation pass width 480 gives best_metric 792.18p, best_cost 811.37p, best_cycle 33.55kWh, best_import 23.36kWh
2026-08-16 12:30:18.898282: >> Region optimisation pass width 240 gives best_metric 792.18p, best_cost 811.37p, best_cycle 33.55kWh, best_import 23.36kWh
2026-08-16 12:30:24.522799: >> Region optimisation pass width 120 gives best_metric 789.97p, best_cost 809.14p, best_cycle 34.79kWh, best_import 23.45kWh
2026-08-16 12:30:24.523369: Calculated end_record as 08-17 12:30:00 based on best_price 26.72p, next_charge_start 08-16 12:30:00, max_windows 48
2026-08-16 12:30:24.523532: Optimise levels pass ended at 2026-08-16 12:30:24, duration 11.6 seconds tried 278 combinations
2026-08-16 12:30:24.523698: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 789.97p, best_keep 0kWh, best_cycle 34.79kWh, best_carbon 0kg, best_import 23.45kWh
2026-08-16 12:30:24.544215: Starting detailed optimisation end_record 08-17 12:30:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 21.41p with charge limits [16.0, 0, 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, 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, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 12:30:42.936985: Tweak plan optimisation started metric 319.4p, cost 362.13p
2026-08-16 12:30:43.385395: Tweak optimisation finished metric 319.4p, cost 362.13p, metric_keep 0kWh, cycle 18.74kWh, carbon 0kg, import 7.23kWh, changed 8 window(s)
2026-08-16 12:30:43.421746: Swap charge optimisation started metric 319.4p, cost 362.13p, min_improvement_swap 0.1p
2026-08-16 12:30:47.067636: Swap charge optimisation finished metric 319.4p, cost 362.13p
2026-08-16 12:30:47.145184: Raw charge windows [ 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:30:47.145926: Unclipped charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:30:47.146206: Unfiltered charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:30:47.146448: Filtered charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:30:00 @ 27.11p 100% ] reserve 1.12
2026-08-16 12:30:47.178043: Previous plan best metric is 319.4 (cost 362.13) and new plan best metric is 319.4 (cost 362.13)
2026-08-16 12:30:47.178274: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 12:30:47.178375: Plan valid is now true after recompute was False
2026-08-16 12:30:47.202782: predict base end_record 08-17 12:30:00, final soc 10.56kWh, metric 687.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:15:00, load 21.37kWh, PV 0.0kWh
2026-08-16 12:30:47.348317: Battery has 16.75 hours left - now at 11.01kWh
2026-08-16 12:30:47.402921: predict base10 end_record 08-17 12:30:00, final soc 10.56kWh, metric 706.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 04:30:00, load 22.08kWh, PV 0.0kWh
2026-08-16 12:30:47.620044: predict best10 end_record 08-17 12:30:00, final soc 1.32kWh, metric 414.52p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.08kWh, PV 0.0kWh
2026-08-16 12:30:47.737641: predict best end_record 08-17 12:30:00, final soc 1.99kWh, metric 412.11p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.37kWh, PV 0.0kWh
2026-08-16 12:30:47.737758: Saving plan best values to HA entities
2026-08-16 12:30:48.131652: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:30:48.141991: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:30:48.149759: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.23kWh, house 0.0kWh, export 0.0kWh, metric 412.11p, metric10 414.52p
2026-08-16 12:30:48.294908: Marginal costs baseline metric (no standing charge): 362.1291
2026-08-16 12:30:48.831832: Marginal energy costs matrix computed: min=5.17 max=31.24
2026-08-16 12:30:48.989841: Rate array import [{'start': 750, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.0p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2190, 'rate': 'cheap', 'range': '(26.8p - 29.4p)'}] export [{'start': 750, 'end': 2190, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:30:48.990615: - Your estimated bill for today is £3.62 and tomorrow is £7.13
2026-08-16 12:30:48.990817: - Import rates are cheap (21.4p - 23.0p) for the next 3 and a half hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:30:48.990959: - The battery is currently at 69% and is charging to 75% for the next 1 and a half hours.
2026-08-16 12:30:48.991088: - For the next 48 hours there will be no solar generation.
2026-08-16 12:30:48.991219: - You will reach a minimum of 12% battery in 23 hours.
2026-08-16 12:30:48.991380: 
2026-08-16 12:30:49.035517: Plan calculation took 36.21 seconds
2026-08-16 12:30:49.036039: Inverter 0: Type SK Sunsynk
2026-08-16 12:30:49.036228: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:30:49.036688: Reserve min: 7%, battery_min: 7%
2026-08-16 12:30:49.036982: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:30:49.074574: Inverter 0 SoC: 11.01kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4532W, current battery voltage 51.2V, grid power -5485W, load power 491W, PV Power 0W
2026-08-16 12:30:49.074782: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:30:49.074880: Inverter 0 scheduled charge enable is True
2026-08-16 12:30:49.074939: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:30:49.075028: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:30:49.075163: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:30:49.075206: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:30:49.075261: Inverter 0 scheduled discharge enable is False
2026-08-16 12:30:49.075387: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:30:49.075425: Inverter 0 discharge windows currently []
2026-08-16 12:30:49.075450: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:30:49.075472: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:30:49.075574: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:30:49.222657: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:30:49.222808: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 75%
2026-08-16 12:30:49.223050: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:30:49.223324: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:30:49.223701: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:30:49.223872: No export window planned
2026-08-16 12:30:49.224126: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:30:49.224227: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:30:49.224524: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:30:49.224725: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:30:49.224869: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 69% -> 75% total add is 0.99kWh and this battery needs to add 0.99kWh to get to 12.0kWh
2026-08-16 12:30:49.225039: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:30:49.225270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.225966: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226021: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226140: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226208: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226330: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226466: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226604: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.226936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.227096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.227202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.227326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.227392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:30:49.227508: Inverter 0 count register writes 0
2026-08-16 12:30:49.270843: Total inverter register writes now 833
2026-08-16 12:30:49.337079: Info: Completed run status Charging
2026-08-16 12:30:49.661138: Info: record_status Charging target 69%-75%
2026-08-16 12:30:49.681955: Saved current settings to /config/predbat_config.json
2026-08-16 12:30:49.682180: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:31:03.716825: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0138 val_mae=0.0062 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0031 kWh ema_combined=0.0035 kWh
2026-08-16 12:31:26.911678: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:31:26.912188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:31:26.912366: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:31:26.912635: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:31:26.912771: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:31:26.912888: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:31:26.913001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:31:34.772154: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0124 val_mae=0.0060 kWh val_bias=+0.0005 kWh (+0.5%) combined=0.0038 kWh ema_combined=0.0036 kWh
2026-08-16 12:32:07.371722: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0131 val_mae=0.0063 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0033 kWh ema_combined=0.0035 kWh
2026-08-16 12:32:39.395597: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0127 val_mae=0.0061 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0037 kWh ema_combined=0.0036 kWh
2026-08-16 12:33:12.541772: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0107 val_mae=0.0050 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0027 kWh ema_combined=0.0033 kWh
2026-08-16 12:33:41.543289: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:33:41.543605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:33:41.543658: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:33:41.543827: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:33:41.543876: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:33:41.543902: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:33:41.543927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:33:46.368080: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0123 val_mae=0.0055 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0028 kWh ema_combined=0.0032 kWh
2026-08-16 12:34:18.437044: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0098 val_mae=0.0047 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-16 12:34:53.031663: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0104 val_mae=0.0052 kWh val_bias=-0.0018 kWh (-2.0%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-16 12:35:00.931667: --------------- PredBat - update at 2026-08-16 12:35:00+01:00 with clock skew 0 minutes, minutes now 755
2026-08-16 12:35:00.932750: Saved current settings to /config/predbat_config.json
2026-08-16 12:35:00.932926: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 12:35:00.933196: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:35:00.933370: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:35:00.974140: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:35:00.974496: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:35:00.974924: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:35:00.976007: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:35:00.976371: Predbat mode is set to Control charge & discharge
2026-08-16 12:35:01.306959: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:35:01.307318: Using load_power data to fill gaps in load_today data
2026-08-16 12:35:02.779656: Processing 721 30-minute periods for power integration
2026-08-16 12:35:03.059393: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:35:03.059767: Car charging hold False, threshold 6.0kWh
2026-08-16 12:35:03.059838: Current data so far today: load 6.5kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:35:03.076428: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:35:03.077198: Standing charge is set to 49.98p
2026-08-16 12:35:03.221999: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:35:03.222147: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:35:03.222398: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 115.0 minutes
2026-08-16 12:35:03.222978: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 115.0 minutes
2026-08-16 12:35:03.232921: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:35:03.410049: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:35:03.463298: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:35:03.463892: Import rates: min 21.41p, max 49.86p, average 31.2p
2026-08-16 12:35:03.527011: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:35:03.527347: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:35:03.529792: High export rate found rates in range 99p to -99p
2026-08-16 12:35:03.717739: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:35:03.718542: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}, {'start': 3630, 'end': 3660, 'average': 26.58}], ready by 16:00:00
2026-08-16 12:35:03.737930: Battery level now 11.01kWh, -1hr ago 8.9kWh, at midnight 12.21kWh, battery value change in the last hour 38.85p, change today -22.07p, rate_forward 18.39p
2026-08-16 12:35:03.738693: Last hour: net energy 2.5kWh, import 2.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 58.7p, import 58.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:35:03.878345: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 204.1p, import 154.12p, export 0.0p, carbon 0.0kg
2026-08-16 12:35:03.878744: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:35:04.036709: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:35:04.065187: Today's load divergence 90.4%, in-day adjustment 87.12%, damping 0.95x, yesterday 82.97% today 90.88% blend 47.57%
2026-08-16 12:35:04.065448: Today's predicted so far 7.93kWh with 0.0kWh car/iBoost excluded, 5.06kWh import ignored, and 7.93kWh forecast extra.
2026-08-16 12:35:04.065563: Today's actual load so far 6.57kWh with 0.0kWh car/iBoost excluded, and 5.06kWh import ignored.
2026-08-16 12:35:04.122183: Inverter 0: Type SK Sunsynk
2026-08-16 12:35:04.122271: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:35:04.122447: Reserve min: 7%, battery_min: 7%
2026-08-16 12:35:04.122522: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:35:04.122926: Inverter 0 SoC: 11.01kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4511W, current battery voltage 51.2V, grid power -5479W, load power 482W, PV Power 0W
2026-08-16 12:35:04.123180: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:35:04.123320: Inverter 0 scheduled charge enable is True
2026-08-16 12:35:04.123424: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:35:04.123568: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:35:04.123788: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:35:04.123832: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:35:04.123916: Inverter 0 scheduled discharge enable is False
2026-08-16 12:35:04.124093: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:35:04.124130: Inverter 0 discharge windows currently []
2026-08-16 12:35:04.124153: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:35:04.124172: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:35:04.124316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:35:04.215102: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:35:04.215545: Plan was last updated on 2026-08-16 12:30:00+01:00 and is now 5.0 minutes old
2026-08-16 12:35:04.215959: Best charge window [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:35:04.216413: Best export window [  ]
2026-08-16 12:35:04.217741: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:35:04.222171: Load divergence over 8.0 hours mean 396.51W, min 261.0W, max 799.8W, std dev 107.63W, divergence 13.57%
2026-08-16 12:35:04.248190: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:35:04.248511: LoadML is_calculating True
2026-08-16 12:35:04.248633: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:35:04.296818: predict base end_record 08-17 12:35:00, final soc 12.0kWh, metric 721.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 21.44kWh, PV 0.0kWh
2026-08-16 12:35:04.594433: Battery has 19.25 hours left - now at 11.01kWh
2026-08-16 12:35:04.685446: predict base10 end_record 08-17 12:35:00, final soc 11.14kWh, metric 718.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 22.15kWh, PV 0.0kWh
2026-08-16 12:35:04.823146: predict best10 end_record 08-17 12:35:00, final soc 1.64kWh, metric 424.39p, metric_keep 0kWh, min_soc 1.31kWh @ 08-17 12:25:00, load 22.15kWh, PV 0.0kWh
2026-08-16 12:35:04.955512: predict best end_record 08-17 12:35:00, final soc 2.37kWh, metric 423.8p, metric_keep 0kWh, min_soc 1.98kWh @ 08-17 12:25:00, load 21.44kWh, PV 0.0kWh
2026-08-16 12:35:04.961117: Saving plan best values to HA entities
2026-08-16 12:35:05.430362: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:35:05.438834: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:35:05.447928: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.66kWh, house 0.0kWh, export 0.0kWh, metric 423.8p, metric10 424.39p
2026-08-16 12:35:05.574084: Marginal costs baseline metric (no standing charge): 373.819
2026-08-16 12:35:06.140532: Marginal energy costs matrix computed: min=5.38 max=31.23
2026-08-16 12:35:06.348617: Rate array import [{'start': 755, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.0p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2195, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 755, 'end': 2195, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:35:06.349816: - Your estimated bill for today is £3.61 and tomorrow is £7.11
2026-08-16 12:35:06.349984: - Import rates are cheap (21.4p - 23.0p) for the next 3 and a half hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:35:06.350127: - The battery is currently at 69% and is charging to 75% for the next 1 and a half hours.
2026-08-16 12:35:06.350185: - For the next 48 hours there will be no solar generation.
2026-08-16 12:35:06.350217: - You will reach a minimum of 12% battery in 23 hours.
2026-08-16 12:35:06.350330: 
2026-08-16 12:35:06.393608: Plan calculation took 2.18 seconds
2026-08-16 12:35:06.397234: No high rate period found
2026-08-16 12:35:06.515139: Import threshold used for optimisation was 22.95p
2026-08-16 12:35:06.596356: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 9: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 10: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 11: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 12: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 13: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 14: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 15: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 16: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 17: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 18: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 19: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 20: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 21: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 22: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 23: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 24: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 25: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 26: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 27: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 28: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 29: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 30: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 31: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 32: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 33: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 34: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 35: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 36: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 37: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 38: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 39: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 40: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 41: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 42: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 43: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 44: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 45: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 46: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 47: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 48: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 49: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 50: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 51: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 52: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 53: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 54: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 55: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 56: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 57: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 58: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 59: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 60: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 61: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 62: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 63: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 64: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 65: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 66: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 67: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 68: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 69: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 70: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 71: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 72: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 73: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 74: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 75: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 76: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 77: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 78: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 79: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 80: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 81: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 82: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 83: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 84: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 85: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 86: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 87: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 88: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 89: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 90: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 91: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 92: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 93: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 94: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84, 95: 08-18 12:30:00 - 08-18 13:00:00 @ 26.58]
2026-08-16 12:35:06.610552: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:35:06.610704: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 75%
2026-08-16 12:35:06.610853: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:35:06.611084: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:35:06.611317: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:35:06.611411: No export window planned
2026-08-16 12:35:06.611545: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:35:06.611590: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:35:06.611762: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:35:06.611897: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:35:06.611984: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 69% -> 75% total add is 0.99kWh and this battery needs to add 0.99kWh to get to 12.0kWh
2026-08-16 12:35:06.612053: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:35:06.612201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612513: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612560: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612695: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612756: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.612890: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613024: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613137: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.613822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:35:06.614106: Inverter 0 count register writes 0
2026-08-16 12:35:06.654466: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 12:35:06.674257: Total inverter register writes now 833
2026-08-16 12:35:06.749244: Info: Completed run status Charging
2026-08-16 12:35:06.758474: Info: record_status Charging target 69%-75%
2026-08-16 12:35:06.768119: Saved current settings to /config/predbat_config.json
2026-08-16 12:35:06.768361: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:35:29.904127: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0092 val_mae=0.0045 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 12:35:41.938741: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:35:41.939243: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:35:41.939389: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:35:41.939721: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:35:41.939855: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:35:41.939999: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:35:41.940138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:36:01.619897: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0090 val_mae=0.0043 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-16 12:36:36.838586: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0041 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-16 12:37:08.855734: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0081 val_mae=0.0039 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-16 12:37:41.886667: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0079 val_mae=0.0040 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0032 kWh ema_combined=0.0028 kWh
2026-08-16 12:37:42.476794: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:37:42.477292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:37:42.477455: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:37:42.477736: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:37:42.477865: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:37:42.477987: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:37:42.478100: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:38:16.155626: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0080 val_mae=0.0043 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-16 12:38:48.648125: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0034 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-16 12:39:17.928149: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0076 val_mae=0.0042 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0035 kWh ema_combined=0.0030 kWh
2026-08-16 12:39:49.068871: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0068 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-1.5%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-16 12:39:56.976357: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:39:56.977165: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:39:56.977480: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:39:56.977826: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:39:56.977976: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:39:56.978181: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:39:56.978338: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:40:00.147828: --------------- PredBat - update at 2026-08-16 12:40:00+01:00 with clock skew 0 minutes, minutes now 760
2026-08-16 12:40:00.148692: Saved current settings to /config/predbat_config.json
2026-08-16 12:40:00.148828: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 12:40:00.149013: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:40:00.149111: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:40:00.182801: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:40:00.182960: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:40:00.183142: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:40:00.183720: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:40:00.183852: Predbat mode is set to Control charge & discharge
2026-08-16 12:40:00.748134: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:40:00.748335: Using load_power data to fill gaps in load_today data
2026-08-16 12:40:02.047948: Processing 721 30-minute periods for power integration
2026-08-16 12:40:02.369956: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:40:02.370350: Car charging hold False, threshold 6.0kWh
2026-08-16 12:40:02.370414: Current data so far today: load 6.55kWh, import 6.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:40:02.385482: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:40:02.386034: Standing charge is set to 46.63p
2026-08-16 12:40:02.470138: FutureRate: Detected import tariff E-1R-AGILE-24-10-01-G agile True export tariff None agile False
2026-08-16 12:40:02.470395: Fetching futurerate data from https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=DATE&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP
2026-08-16 12:40:02.470723: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-16&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 120.0 minutes
2026-08-16 12:40:02.471380: Return cached futurerate data for https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?date=2026-08-17&market=N2EX_DayAhead&deliveryArea=UK&currency=GBP age 120.0 minutes
2026-08-16 12:40:02.479869: Loaded 95 datapoints of futurerate analysis
2026-08-16 12:40:02.895054: Predicted future rates: ['08-16 00:00:00 => 28.52 / 19.97', '08-16 01:00:00 => 27.43 / 19.41', '08-16 02:00:00 => 26.47 / 18.92', '08-16 03:00:00 => 26.1 / 18.73', '08-16 04:00:00 => 26.04 / 18.7', '08-16 05:00:00 => 25.95 / 18.65', '08-16 06:00:00 => 25.71 / 18.53', '08-16 07:00:00 => 25.37 / 18.35', '08-16 08:00:00 => 24.58 / 17.94', '08-16 09:00:00 => 24.0 / 17.64', '08-16 10:00:00 => 24.54 / 17.92', '08-16 11:00:00 => 24.44 / 17.87', '08-16 12:00:00 => 23.53 / 17.4', '08-16 13:00:00 => 22.89 / 17.07', '08-16 14:00:00 => 21.77 / 16.49', '08-16 15:00:00 => 21.77 / 16.49', '08-16 16:00:00 => 36.89 / 18.3', '08-16 17:00:00 => 39.85 / 19.83', '08-16 18:00:00 => 43.87 / 21.9', '08-16 19:00:00 => 32.69 / 22.13', '08-16 20:00:00 => 33.46 / 22.53', '08-16 21:00:00 => 33.37 / 22.48', '08-16 22:00:00 => 32.01 / 21.78', '08-16 23:00:00 => 30.78 / 21.14', '08-17 00:00:00 => 29.98 / 20.73', '08-17 01:00:00 => 28.5 / 19.96', '08-17 02:00:00 => 27.42 / 19.4', '08-17 03:00:00 => 27.07 / 19.22', '08-17 04:00:00 => 27.42 / 19.4', '08-17 05:00:00 => 29.27 / 20.36', '08-17 06:00:00 => 32.03 / 21.79', '08-17 07:00:00 => 33.21 / 22.4', '08-17 08:00:00 => 32.03 / 21.79', '08-17 09:00:00 => 29.42 / 20.44', '08-17 10:00:00 => 27.72 / 19.56', '08-17 11:00:00 => 27.3 / 19.34']
2026-08-16 12:40:02.997310: Rate min forward looking: now 21.41p at end of forecast 26.58p
2026-08-16 12:40:02.997763: Import rates: min 21.41p, max 49.86p, average 31.2p
2026-08-16 12:40:03.069463: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:40:03.069654: Rate thresholds (for charge/export) are import 49.36p (0.0p), export -0.1p (0.0p)
2026-08-16 12:40:03.071399: High export rate found rates in range 99p to -99p
2026-08-16 12:40:03.176077: Low Import rate found rates in range 21.41p to 47.69p
2026-08-16 12:40:03.176858: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 750, 'end': 780, 'average': 22.33}, {'start': 780, 'end': 810, 'average': 22.76}, {'start': 810, 'end': 840, 'average': 22.3}, {'start': 840, 'end': 870, 'average': 21.41}, {'start': 870, 'end': 900, 'average': 21.65}, {'start': 900, 'end': 930, 'average': 22.95}, {'start': 930, 'end': 960, 'average': 22.83}, {'start': 960, 'end': 990, 'average': 36.84}, {'start': 990, 'end': 1020, 'average': 37.54}, {'start': 1020, 'end': 1050, 'average': 41.79}, {'start': 1050, 'end': 1080, 'average': 43.7}, {'start': 1080, 'end': 1110, 'average': 44.34}, {'start': 1110, 'end': 1140, 'average': 45.28}, {'start': 1140, 'end': 1170, 'average': 34.79}, {'start': 1170, 'end': 1200, 'average': 34.76}, {'start': 1200, 'end': 1230, 'average': 35.62}, {'start': 1230, 'end': 1260, 'average': 35.3}, {'start': 1260, 'end': 1290, 'average': 35.89}, {'start': 1290, 'end': 1320, 'average': 35.71}, {'start': 1320, 'end': 1350, 'average': 33.75}, {'start': 1350, 'end': 1380, 'average': 32.0}, {'start': 1380, 'end': 1410, 'average': 30.78}, {'start': 1410, 'end': 1440, 'average': 30.72}, {'start': 1440, 'end': 1470, 'average': 29.98}, {'start': 1470, 'end': 1500, 'average': 29.25}, {'start': 1500, 'end': 1530, 'average': 28.5}, {'start': 1530, 'end': 1560, 'average': 27.74}, {'start': 1560, 'end': 1590, 'average': 27.42}, {'start': 1590, 'end': 1620, 'average': 27.09}, {'start': 1620, 'end': 1650, 'average': 27.07}, {'start': 1650, 'end': 1680, 'average': 27.05}, {'start': 1680, 'end': 1710, 'average': 27.42}, {'start': 1710, 'end': 1740, 'average': 27.78}, {'start': 1740, 'end': 1770, 'average': 29.27}, {'start': 1770, 'end': 1800, 'average': 30.74}, {'start': 1800, 'end': 1830, 'average': 32.03}, {'start': 1830, 'end': 1860, 'average': 33.31}, {'start': 1860, 'end': 1890, 'average': 33.21}, {'start': 1890, 'end': 1920, 'average': 33.11}, {'start': 1920, 'end': 1950, 'average': 32.03}, {'start': 1950, 'end': 1980, 'average': 30.95}, {'start': 1980, 'end': 2010, 'average': 29.42}, {'start': 2010, 'end': 2040, 'average': 27.92}, {'start': 2040, 'end': 2070, 'average': 27.72}, {'start': 2070, 'end': 2100, 'average': 27.53}, {'start': 2100, 'end': 2130, 'average': 27.3}, {'start': 2130, 'end': 2160, 'average': 27.07}, {'start': 2160, 'end': 2190, 'average': 26.84}, {'start': 2190, 'end': 2220, 'average': 26.58}, {'start': 2220, 'end': 2250, 'average': 26.72}, {'start': 2250, 'end': 2280, 'average': 26.85}, {'start': 2280, 'end': 2310, 'average': 26.84}, {'start': 2310, 'end': 2340, 'average': 26.84}, {'start': 2340, 'end': 2370, 'average': 26.74}, {'start': 2370, 'end': 2400, 'average': 26.66}, {'start': 2400, 'end': 2430, 'average': 40.35}, {'start': 2430, 'end': 2460, 'average': 40.41}, {'start': 2460, 'end': 2490, 'average': 42.96}, {'start': 2490, 'end': 2520, 'average': 45.53}, {'start': 2520, 'end': 2550, 'average': 47.69}, {'start': 2580, 'end': 2610, 'average': 36.65}, {'start': 2610, 'end': 2640, 'average': 37.09}, {'start': 2640, 'end': 2670, 'average': 36.61}, {'start': 2670, 'end': 2700, 'average': 36.13}, {'start': 2700, 'end': 2730, 'average': 35.34}, {'start': 2730, 'end': 2760, 'average': 34.54}, {'start': 2760, 'end': 2790, 'average': 32.09}, {'start': 2790, 'end': 2820, 'average': 29.64}, {'start': 2820, 'end': 2850, 'average': 30.78}, {'start': 2850, 'end': 2880, 'average': 30.72}, {'start': 2880, 'end': 2910, 'average': 29.98}, {'start': 2910, 'end': 2940, 'average': 29.25}, {'start': 2940, 'end': 2970, 'average': 28.5}, {'start': 2970, 'end': 3000, 'average': 27.74}, {'start': 3000, 'end': 3030, 'average': 27.42}, {'start': 3030, 'end': 3060, 'average': 27.09}, {'start': 3060, 'end': 3090, 'average': 27.07}, {'start': 3090, 'end': 3120, 'average': 27.05}, {'start': 3120, 'end': 3150, 'average': 27.42}, {'start': 3150, 'end': 3180, 'average': 27.78}, {'start': 3180, 'end': 3210, 'average': 29.27}, {'start': 3210, 'end': 3240, 'average': 30.74}, {'start': 3240, 'end': 3270, 'average': 32.03}, {'start': 3270, 'end': 3300, 'average': 33.31}, {'start': 3300, 'end': 3330, 'average': 33.21}, {'start': 3330, 'end': 3360, 'average': 33.11}, {'start': 3360, 'end': 3390, 'average': 32.03}, {'start': 3390, 'end': 3420, 'average': 30.95}, {'start': 3420, 'end': 3450, 'average': 29.42}, {'start': 3450, 'end': 3480, 'average': 27.92}, {'start': 3480, 'end': 3510, 'average': 27.72}, {'start': 3510, 'end': 3540, 'average': 27.53}, {'start': 3540, 'end': 3570, 'average': 27.3}, {'start': 3570, 'end': 3600, 'average': 27.07}, {'start': 3600, 'end': 3630, 'average': 26.84}, {'start': 3630, 'end': 3660, 'average': 26.58}], ready by 16:00:00
2026-08-16 12:40:03.194174: Battery level now 11.01kWh, -1hr ago 9.59kWh, at midnight 12.21kWh, battery value change in the last hour 26.04p, change today -22.07p, rate_forward 18.39p
2026-08-16 12:40:03.194662: Last hour: net energy 2.3kWh, import 2.3kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 53.92p, import 53.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:40:03.330899: Today's energy total net 6.7kWh, import 6.7kWh, export 0.0kWh, cost 207.73p, import 161.09p, export 0.0p, carbon 0.0kg
2026-08-16 12:40:03.331108: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:40:03.495745: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:40:03.529232: Today's load divergence 90.34%, in-day adjustment 87.11%, damping 0.95x, yesterday 82.97% today 90.82% blend 47.22%
2026-08-16 12:40:03.529821: Today's predicted so far 7.94kWh with 0.0kWh car/iBoost excluded, 5.09kWh import ignored, and 7.94kWh forecast extra.
2026-08-16 12:40:03.529984: Today's actual load so far 6.57kWh with 0.0kWh car/iBoost excluded, and 5.09kWh import ignored.
2026-08-16 12:40:03.653140: Inverter 0: Type SK Sunsynk
2026-08-16 12:40:03.653448: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:40:03.655528: Reserve min: 7%, battery_min: 7%
2026-08-16 12:40:03.655797: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:40:03.656437: Inverter 0 SoC: 11.08kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4515W, current battery voltage 51.2V, grid power -5557W, load power 560W, PV Power 0W
2026-08-16 12:40:03.656848: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:40:03.657172: Inverter 0 scheduled charge enable is True
2026-08-16 12:40:03.657340: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:40:03.657677: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:40:03.658025: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:40:03.658160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:40:03.658365: Inverter 0 scheduled discharge enable is False
2026-08-16 12:40:03.658733: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:40:03.658860: Inverter 0 discharge windows currently []
2026-08-16 12:40:03.658995: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:40:03.659144: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:40:03.659264: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:40:03.819651: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:40:03.819776: Plan was last updated on 2026-08-16 12:30:00+01:00 and is now 10.0 minutes old
2026-08-16 12:40:03.820018: Best charge window [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 12:30:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 12:00:00 @ 27.37p 100% ]
2026-08-16 12:40:03.820067: Best export window [  ]
2026-08-16 12:40:03.820978: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:40:03.824687: Load divergence over 8.0 hours mean 399.64W, min 250.2W, max 797.4W, std dev 109.88W, divergence 13.75%
2026-08-16 12:40:03.856469: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:40:03.856618: LoadML is_calculating True
2026-08-16 12:40:03.873115: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:40:03.965403: predict base end_record 08-17 12:40:00, final soc 12.0kWh, metric 720.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 21.49kWh, PV 0.0kWh
2026-08-16 12:40:04.250607: Battery has 19.17 hours left - now at 11.08kWh
2026-08-16 12:40:04.357938: predict base10 end_record 08-17 12:40:00, final soc 11.47kWh, metric 726.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 22.2kWh, PV 0.0kWh
2026-08-16 12:40:04.557526: predict best10 end_record 08-17 12:40:00, final soc 1.96kWh, metric 432.52p, metric_keep 0kWh, min_soc 1.32kWh @ 08-17 12:25:00, load 22.2kWh, PV 0.0kWh
2026-08-16 12:40:04.688041: predict best end_record 08-17 12:40:00, final soc 2.76kWh, metric 433.75p, metric_keep 0kWh, min_soc 1.99kWh @ 08-17 12:25:00, load 21.49kWh, PV 0.0kWh
2026-08-16 12:40:04.688162: Saving plan best values to HA entities
2026-08-16 12:40:05.049785: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:40:05.060575: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:40:05.071411: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 8.01kWh, house 0.0kWh, export 0.0kWh, metric 433.75p, metric10 432.52p
2026-08-16 12:40:05.234766: Marginal costs baseline metric (no standing charge): 387.1145
2026-08-16 12:40:05.765935: Marginal energy costs matrix computed: min=5.19 max=31.45
2026-08-16 12:40:05.956250: Rate array import [{'start': 760, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.0p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2200, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 760, 'end': 2200, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:40:05.957127: - Your estimated bill for today is £3.62 and tomorrow is £7.09
2026-08-16 12:40:05.957283: - Import rates are cheap (21.4p - 23.0p) for the next 3 and a quarter hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:40:05.957465: - The battery is currently at 69% and is charging to 75% for the next 1 and a quarter hours.
2026-08-16 12:40:05.957589: - For the next 48 hours there will be no solar generation.
2026-08-16 12:40:05.957751: - You will reach a minimum of 12% battery in 23 hours.
2026-08-16 12:40:05.957866: 
2026-08-16 12:40:06.054925: Plan calculation took 2.24 seconds
2026-08-16 12:40:06.060330: No high rate period found
2026-08-16 12:40:06.182705: Import threshold used for optimisation was 22.95p
2026-08-16 12:40:06.335261: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 22.33, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 22.76, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 22.3, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 21.41, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 21.65, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 22.95, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 22.83, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 36.84, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 37.54, 9: 08-16 17:00:00 - 08-16 17:30:00 @ 41.79, 10: 08-16 17:30:00 - 08-16 18:00:00 @ 43.7, 11: 08-16 18:00:00 - 08-16 18:30:00 @ 44.34, 12: 08-16 18:30:00 - 08-16 19:00:00 @ 45.28, 13: 08-16 19:00:00 - 08-16 19:30:00 @ 34.79, 14: 08-16 19:30:00 - 08-16 20:00:00 @ 34.76, 15: 08-16 20:00:00 - 08-16 20:30:00 @ 35.62, 16: 08-16 20:30:00 - 08-16 21:00:00 @ 35.3, 17: 08-16 21:00:00 - 08-16 21:30:00 @ 35.89, 18: 08-16 21:30:00 - 08-16 22:00:00 @ 35.71, 19: 08-16 22:00:00 - 08-16 22:30:00 @ 33.75, 20: 08-16 22:30:00 - 08-16 23:00:00 @ 32.0, 21: 08-16 23:00:00 - 08-16 23:30:00 @ 30.78, 22: 08-16 23:30:00 - 08-17 00:00:00 @ 30.72, 23: 08-17 00:00:00 - 08-17 00:30:00 @ 29.98, 24: 08-17 00:30:00 - 08-17 01:00:00 @ 29.25, 25: 08-17 01:00:00 - 08-17 01:30:00 @ 28.5, 26: 08-17 01:30:00 - 08-17 02:00:00 @ 27.74, 27: 08-17 02:00:00 - 08-17 02:30:00 @ 27.42, 28: 08-17 02:30:00 - 08-17 03:00:00 @ 27.09, 29: 08-17 03:00:00 - 08-17 03:30:00 @ 27.07, 30: 08-17 03:30:00 - 08-17 04:00:00 @ 27.05, 31: 08-17 04:00:00 - 08-17 04:30:00 @ 27.42, 32: 08-17 04:30:00 - 08-17 05:00:00 @ 27.78, 33: 08-17 05:00:00 - 08-17 05:30:00 @ 29.27, 34: 08-17 05:30:00 - 08-17 06:00:00 @ 30.74, 35: 08-17 06:00:00 - 08-17 06:30:00 @ 32.03, 36: 08-17 06:30:00 - 08-17 07:00:00 @ 33.31, 37: 08-17 07:00:00 - 08-17 07:30:00 @ 33.21, 38: 08-17 07:30:00 - 08-17 08:00:00 @ 33.11, 39: 08-17 08:00:00 - 08-17 08:30:00 @ 32.03, 40: 08-17 08:30:00 - 08-17 09:00:00 @ 30.95, 41: 08-17 09:00:00 - 08-17 09:30:00 @ 29.42, 42: 08-17 09:30:00 - 08-17 10:00:00 @ 27.92, 43: 08-17 10:00:00 - 08-17 10:30:00 @ 27.72, 44: 08-17 10:30:00 - 08-17 11:00:00 @ 27.53, 45: 08-17 11:00:00 - 08-17 11:30:00 @ 27.3, 46: 08-17 11:30:00 - 08-17 12:00:00 @ 27.07, 47: 08-17 12:00:00 - 08-17 12:30:00 @ 26.84, 48: 08-17 12:30:00 - 08-17 13:00:00 @ 26.58, 49: 08-17 13:00:00 - 08-17 13:30:00 @ 26.72, 50: 08-17 13:30:00 - 08-17 14:00:00 @ 26.85, 51: 08-17 14:00:00 - 08-17 14:30:00 @ 26.84, 52: 08-17 14:30:00 - 08-17 15:00:00 @ 26.84, 53: 08-17 15:00:00 - 08-17 15:30:00 @ 26.74, 54: 08-17 15:30:00 - 08-17 16:00:00 @ 26.66, 55: 08-17 16:00:00 - 08-17 16:30:00 @ 40.35, 56: 08-17 16:30:00 - 08-17 17:00:00 @ 40.41, 57: 08-17 17:00:00 - 08-17 17:30:00 @ 42.96, 58: 08-17 17:30:00 - 08-17 18:00:00 @ 45.53, 59: 08-17 18:00:00 - 08-17 18:30:00 @ 47.69, 60: 08-17 19:00:00 - 08-17 19:30:00 @ 36.65, 61: 08-17 19:30:00 - 08-17 20:00:00 @ 37.09, 62: 08-17 20:00:00 - 08-17 20:30:00 @ 36.61, 63: 08-17 20:30:00 - 08-17 21:00:00 @ 36.13, 64: 08-17 21:00:00 - 08-17 21:30:00 @ 35.34, 65: 08-17 21:30:00 - 08-17 22:00:00 @ 34.54, 66: 08-17 22:00:00 - 08-17 22:30:00 @ 32.09, 67: 08-17 22:30:00 - 08-17 23:00:00 @ 29.64, 68: 08-17 23:00:00 - 08-17 23:30:00 @ 30.78, 69: 08-17 23:30:00 - 08-18 00:00:00 @ 30.72, 70: 08-18 00:00:00 - 08-18 00:30:00 @ 29.98, 71: 08-18 00:30:00 - 08-18 01:00:00 @ 29.25, 72: 08-18 01:00:00 - 08-18 01:30:00 @ 28.5, 73: 08-18 01:30:00 - 08-18 02:00:00 @ 27.74, 74: 08-18 02:00:00 - 08-18 02:30:00 @ 27.42, 75: 08-18 02:30:00 - 08-18 03:00:00 @ 27.09, 76: 08-18 03:00:00 - 08-18 03:30:00 @ 27.07, 77: 08-18 03:30:00 - 08-18 04:00:00 @ 27.05, 78: 08-18 04:00:00 - 08-18 04:30:00 @ 27.42, 79: 08-18 04:30:00 - 08-18 05:00:00 @ 27.78, 80: 08-18 05:00:00 - 08-18 05:30:00 @ 29.27, 81: 08-18 05:30:00 - 08-18 06:00:00 @ 30.74, 82: 08-18 06:00:00 - 08-18 06:30:00 @ 32.03, 83: 08-18 06:30:00 - 08-18 07:00:00 @ 33.31, 84: 08-18 07:00:00 - 08-18 07:30:00 @ 33.21, 85: 08-18 07:30:00 - 08-18 08:00:00 @ 33.11, 86: 08-18 08:00:00 - 08-18 08:30:00 @ 32.03, 87: 08-18 08:30:00 - 08-18 09:00:00 @ 30.95, 88: 08-18 09:00:00 - 08-18 09:30:00 @ 29.42, 89: 08-18 09:30:00 - 08-18 10:00:00 @ 27.92, 90: 08-18 10:00:00 - 08-18 10:30:00 @ 27.72, 91: 08-18 10:30:00 - 08-18 11:00:00 @ 27.53, 92: 08-18 11:00:00 - 08-18 11:30:00 @ 27.3, 93: 08-18 11:30:00 - 08-18 12:00:00 @ 27.07, 94: 08-18 12:00:00 - 08-18 12:30:00 @ 26.84, 95: 08-18 12:30:00 - 08-18 13:00:00 @ 26.58]
2026-08-16 12:40:06.364284: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:40:06.364453: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 69%, target 75%
2026-08-16 12:40:06.364599: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:40:06.364781: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:40:06.365065: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:40:06.365170: No export window planned
2026-08-16 12:40:06.365303: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:40:06.365348: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:40:06.365519: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:40:06.365644: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:40:06.366127: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 69% -> 75% total add is 0.92kWh and this battery needs to add 0.92kWh to get to 12.0kWh
2026-08-16 12:40:06.366727: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:40:06.366964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.367045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.367100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.367395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.368039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.368325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.368413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.369166: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.369951: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.373670: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.373791: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.373854: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.373977: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374043: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:06.374471: Inverter 0 count register writes 0
2026-08-16 12:40:06.457295: 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-16 12:40:06.457661: Recompute is saving previous plan...
2026-08-16 12:40:06.461495: Best charge window [ 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 75%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 75%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 75%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 75%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 75%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 75%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 75%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 75%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 75%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 75%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 75%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 75%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 75%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 75%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 75%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 75%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 75%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 75%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 75%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 75%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 75%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 75%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 75%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 75%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 75%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 75%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 75%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 75%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 75%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 75%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 75%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 75%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 75%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 75%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 75%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 75%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 75%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 75%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 75%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 75%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 75%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 75%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 75%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 75%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 75%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 75%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 75%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 75%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 75%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 75%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 75%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 75%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 75%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 75%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 75%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 75%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 75%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 75%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 75%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 75%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 75%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 75%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 75%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 75%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 75%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 75%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 75%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 75%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 75%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 75%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 75%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 75%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 75%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 75%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 75%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 75%, 18-08 12:30:00 - 18-08 13:00:00 @ 26.58p 75% ]
2026-08-16 12:40:06.462300: Best export window [  ]
2026-08-16 12:40:06.463868: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:40:06.468845: Load divergence over 8.0 hours mean 399.64W, min 250.2W, max 797.4W, std dev 109.88W, divergence 13.75%
2026-08-16 12:40:06.493617: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:40:06.493951: LoadML is_calculating True
2026-08-16 12:40:06.494177: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:40:06.511496: 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(0.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-16 12:40:06.513919: Optimise levels pass started at 2026-08-16 12:40:06
2026-08-16 12:40:06.514163: Optimise all windows, total charge 95 export 1
2026-08-16 12:40:10.576579: >> Region optimisation pass width 960 gives best_metric 794.69p, best_cost 813.88p, best_cycle 33.48kWh, best_import 23.29kWh
2026-08-16 12:40:11.615817: >> Region optimisation pass width 480 gives best_metric 794.69p, best_cost 813.88p, best_cycle 33.48kWh, best_import 23.29kWh
2026-08-16 12:40:12.729846: >> Region optimisation pass width 240 gives best_metric 794.69p, best_cost 813.88p, best_cycle 33.48kWh, best_import 23.29kWh
2026-08-16 12:40:18.291689: >> Region optimisation pass width 120 gives best_metric 792.06p, best_cost 811.15p, best_cycle 34.7kWh, best_import 23.38kWh
2026-08-16 12:40:18.292036: Calculated end_record as 08-17 13:00:00 based on best_price 26.72p, next_charge_start 08-16 13:00:00, max_windows 49
2026-08-16 12:40:18.292215: Optimise levels pass ended at 2026-08-16 12:40:18, duration 11.8 seconds tried 283 combinations
2026-08-16 12:40:18.292366: Set best_price_charge_level 28.6p, best_price_export_level 0p, best_price_charge 26.72p, best_cost_export 0p, best_metric 792.06p, best_keep 0kWh, best_cycle 34.7kWh, best_carbon 0kg, best_import 23.38kWh
2026-08-16 12:40:18.316243: Starting detailed optimisation end_record 08-17 13:00:00, best_price_charge 26.72p, best_price_export 0p. lowest_price_charge 21.41p with charge limits [16.0, 0, 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, 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, 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-16 12:40:37.534437: Tweak plan optimisation started metric 328.9p, cost 361.71p
2026-08-16 12:40:38.260451: Tweak optimisation finished metric 328.9p, cost 361.71p, metric_keep 0kWh, cycle 19.08kWh, carbon 0kg, import 7.05kWh, changed 8 window(s)
2026-08-16 12:40:38.318835: Swap charge optimisation started metric 328.9p, cost 361.71p, min_improvement_swap 0.1p
2026-08-16 12:40:42.729995: Swap charge optimisation finished metric 328.9p, cost 361.71p
2026-08-16 12:40:42.867464: Raw charge windows [ 16-08 12:30:00 - 16-08 13:00:00 @ 22.33p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 22.76p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 22.3p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 21.41p 100%, 16-08 14:30:00 - 16-08 15:00:00 @ 21.65p 100%, 16-08 15:00:00 - 16-08 15:30:00 @ 22.95p 100%, 16-08 15:30:00 - 16-08 16:00:00 @ 22.83p 100%, 16-08 16:00:00 - 16-08 16:30:00 @ 36.84p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 37.54p 0%, 16-08 17:00:00 - 16-08 17:30:00 @ 41.79p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 43.7p 0%, 16-08 18:00:00 - 16-08 18:30:00 @ 44.34p 0%, 16-08 18:30:00 - 16-08 19:00:00 @ 45.28p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 34.79p 0%, 16-08 19:30:00 - 16-08 20:00:00 @ 34.76p 0%, 16-08 20:00:00 - 16-08 20:30:00 @ 35.62p 0%, 16-08 20:30:00 - 16-08 21:00:00 @ 35.3p 0%, 16-08 21:00:00 - 16-08 21:30:00 @ 35.89p 0%, 16-08 21:30:00 - 16-08 22:00:00 @ 35.71p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 33.75p 0%, 16-08 22:30:00 - 16-08 23:00:00 @ 32.0p 0%, 16-08 23:00:00 - 16-08 23:30:00 @ 30.78p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 30.72p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 29.98p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 29.25p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 28.5p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 27.74p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 27.42p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 27.09p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 27.07p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 27.05p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 27.42p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 27.78p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 29.27p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 30.74p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 32.03p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 33.31p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 33.21p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 33.11p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 32.03p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 30.95p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 29.42p 0%, 17-08 09:30:00 - 17-08 10:00:00 @ 27.92p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 27.72p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 27.53p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 27.3p 0%, 17-08 11:30:00 - 17-08 12:00:00 @ 27.07p 0%, 17-08 12:00:00 - 17-08 12:30:00 @ 26.84p 0%, 17-08 12:30:00 - 17-08 13:00:00 @ 26.58p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 26.72p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 26.85p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 26.84p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 26.84p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 26.74p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 26.66p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 40.35p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 40.41p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 42.96p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 45.53p 100%, 17-08 18:00:00 - 17-08 18:30:00 @ 47.69p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 36.65p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 37.09p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.61p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 36.13p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.34p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 34.54p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 32.09p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 29.64p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 30.78p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 30.72p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 29.98p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 29.25p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 28.5p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 27.74p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 27.42p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 27.09p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 27.07p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 27.05p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 27.42p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 27.78p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 29.27p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 30.74p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 32.03p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.31p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.21p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.11p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 32.03p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 30.95p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 29.42p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 27.92p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 27.72p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 27.53p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 27.3p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 27.07p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 26.84p 100%, 18-08 12:30:00 - 18-08 13:00:00 @ 26.58p 100% ] reserve 1.12
2026-08-16 12:40:42.881796: Unclipped charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 13:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 13:00:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:40:42.882291: Unfiltered charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 13:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 13:00:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:40:42.882667: Filtered charge windows [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 13:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 13:00:00 @ 26.84p 100% ] reserve 1.12
2026-08-16 12:40:42.996859: Previous plan best metric is 342.61 (cost 438.75) and new plan best metric is 328.9 (cost 361.71)
2026-08-16 12:40:42.997388: New plan metric is significantly better from previous plan, using new plan
2026-08-16 12:40:42.997548: Plan valid is now true after recompute was False
2026-08-16 12:40:43.108372: predict base end_record 08-17 13:00:00, final soc 12.0kWh, metric 727.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 21.77kWh, PV 0.0kWh
2026-08-16 12:40:43.266010: Battery has 19.17 hours left - now at 11.08kWh
2026-08-16 12:40:43.340602: predict base10 end_record 08-17 13:00:00, final soc 12.0kWh, metric 748.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 22.49kWh, PV 0.0kWh
2026-08-16 12:40:43.520495: predict best10 end_record 08-17 13:00:00, final soc 1.12kWh, metric 416.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 22.49kWh, PV 0.0kWh
2026-08-16 12:40:43.691577: predict best end_record 08-17 13:00:00, final soc 1.56kWh, metric 408.35p, metric_keep 0kWh, min_soc 1.56kWh @ 08-17 12:55:00, load 21.77kWh, PV 0.0kWh
2026-08-16 12:40:43.691834: Saving plan best values to HA entities
2026-08-16 12:40:44.094400: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:40:44.103480: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:40:44.111838: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 7.05kWh, house 0.0kWh, export 0.0kWh, metric 408.35p, metric10 416.85p
2026-08-16 12:40:44.271709: Marginal costs baseline metric (no standing charge): 361.7111
2026-08-16 12:40:44.708324: Marginal energy costs matrix computed: min=15.78 max=32.77
2026-08-16 12:40:44.831650: Rate array import [{'start': 760, 'end': 960, 'rate': 'cheap', 'range': '(21.4p - 23.0p)'}, {'start': 960, 'end': 1020, 'rate': 'expensive', 'range': '(36.8p - 37.5p)'}, {'start': 1020, 'end': 1140, 'rate': 'very expensive', 'range': '(41.8p - 45.3p)'}, {'start': 1140, 'end': 1410, 'rate': 'expensive', 'range': '(30.8p - 35.9p)'}, {'start': 1410, 'end': 1800, 'rate': 'cheap', 'range': '(27.1p - 30.7p)'}, {'start': 1800, 'end': 1980, 'rate': 'expensive', 'range': '(30.9p - 33.3p)'}, {'start': 1980, 'end': 2220, 'rate': 'cheap', 'range': '(26.6p - 29.4p)'}] export [{'start': 760, 'end': 2220, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:40:44.837485: - Your estimated bill for today is £3.62 and tomorrow is £7.18
2026-08-16 12:40:44.837581: - Import rates are cheap (21.4p - 23.0p) for the next 3 and a quarter hours and then expensive (36.8p - 37.5p) for the next 1 hour.
2026-08-16 12:40:44.837611: - The battery is currently at 69% and is charging to 75% for the next 1 and a quarter hours.
2026-08-16 12:40:44.837684: - For the next 48 hours there will be no solar generation.
2026-08-16 12:40:44.837898: - You will reach a minimum of 10% battery in 24 hours.
2026-08-16 12:40:44.837955: 
2026-08-16 12:40:44.926158: Plan calculation took 38.47 seconds
2026-08-16 12:40:44.926483: Inverter 0: Type SK Sunsynk
2026-08-16 12:40:44.926549: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:40:44.926790: Reserve min: 7%, battery_min: 7%
2026-08-16 12:40:44.926918: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:40:44.927285: Inverter 0 SoC: 11.43kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power -4516W, current battery voltage 51.2V, grid power -5521W, load power 524W, PV Power 0W
2026-08-16 12:40:44.927514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:40:44.927648: Inverter 0 scheduled charge enable is True
2026-08-16 12:40:44.927728: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:40:44.941646: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:40:44.942013: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:40:44.942150: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:40:44.942329: Inverter 0 scheduled discharge enable is False
2026-08-16 12:40:44.942606: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:40:44.942770: Inverter 0 discharge windows currently []
2026-08-16 12:40:44.942903: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:40:44.943044: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:40:44.943150: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:40:45.054334: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:40:45.054515: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 71%, target 75%
2026-08-16 12:40:45.054669: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:40:45.054945: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:40:45.055254: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:40:45.055906: No export window planned
2026-08-16 12:40:45.056081: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:40:45.056131: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:40:45.056323: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:40:45.056454: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:40:45.056532: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 71% -> 75% total add is 0.57kWh and this battery needs to add 0.57kWh to get to 12.0kWh
2026-08-16 12:40:45.056599: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:40:45.056709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.056762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.056799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.056844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057557: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057627: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.057856: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.058545: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.058656: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.058715: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.058836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.059409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.059935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:40:45.060875: Inverter 0 count register writes 0
2026-08-16 12:40:45.098095: Total inverter register writes now 833
2026-08-16 12:40:45.156116: Info: Completed run status Charging
2026-08-16 12:40:45.168107: Info: record_status Charging target 71%-75%
2026-08-16 12:40:45.181484: Saved current settings to /config/predbat_config.json
2026-08-16 12:40:45.181750: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:40:46.651533: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0070 val_mae=0.0043 kWh val_bias=-0.0027 kWh (-3.0%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-16 12:41:20.572446: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0064 val_mae=0.0033 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0027 kWh
2026-08-16 12:41:27.365514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:41:27.366135: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:41:27.366287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:41:27.366547: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:41:27.366677: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:41:27.366785: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:41:27.366894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:41:54.524136: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0064 val_mae=0.0034 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 12:42:28.376790: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0062 val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 12:43:00.048336: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-16 12:43:31.616613: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0061 val_mae=0.0033 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 12:43:41.871755: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:43:41.872093: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:43:41.872147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:43:41.872321: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:43:41.872370: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:43:41.872399: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:43:41.872426: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:44:03.339706: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0063 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 12:44:35.912220: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0057 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-16 12:45:00.352556: --------------- PredBat - update at 2026-08-16 12:45:00+01:00 with clock skew 0 minutes, minutes now 765
2026-08-16 12:45:00.353520: Saved current settings to /config/predbat_config.json
2026-08-16 12:45:00.353668: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 12:45:00.353755: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:45:00.353862: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:45:00.392256: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:45:00.392554: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:45:00.392912: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:45:00.393657: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:45:00.393940: Predbat mode is set to Control charge & discharge
2026-08-16 12:45:00.978303: Found 21602 load_today datapoints going back 28 days
2026-08-16 12:45:00.979682: Using load_power data to fill gaps in load_today data
2026-08-16 12:45:02.734039: Processing 721 30-minute periods for power integration
2026-08-16 12:45:02.935482: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:45:02.936156: Car charging hold False, threshold 6.0kWh
2026-08-16 12:45:02.936314: Current data so far today: load 6.6kWh, import 6.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:45:02.954273: Cars: SoC: [15.822000000000001]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:45:02.955034: Standing charge is set to 46.63p
2026-08-16 12:45:03.093862: FutureRate: Detected import tariff E-1R-INTELLI-FIX-12M-26-06-13-G agile False export tariff None agile False
2026-08-16 12:45:03.094161: FutureRate: No futurerate adjustment enabled, skipping futurerate analysis
2026-08-16 12:45:03.211626: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 12:45:03.221464: Import rates: min 8.0p, max 33.75p, average 24.77p
2026-08-16 12:45:03.339614: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:45:03.341389: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 12:45:03.343834: High export rate found rates in range 99p to -99p
2026-08-16 12:45:03.389451: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 12:45:03.389743: Car 0 plan charging from 15.822000000000001kWh to 24.0% (14.064kWh), with slots [{'start': 750, 'end': 780, 'average': 8.0}, {'start': 780, 'end': 810, 'average': 8.0}, {'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 12:45:03.410110: Battery level now 11.08kWh, -1hr ago 9.94kWh, at midnight 12.21kWh, battery value change in the last hour 7.81p, change today -7.75p, rate_forward 6.87p
2026-08-16 12:45:03.410869: Last hour: net energy 1.8kWh, import 1.8kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 59.21p, import 59.21p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:45:03.504509: Today's energy total net 6.7kWh, import 6.7kWh, export 0.0kWh, cost 263.86p, import 217.23p, export 0.0p, carbon 0.0kg
2026-08-16 12:45:03.504677: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:45:03.640869: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:45:03.687492: Today's load divergence 89.72%, in-day adjustment 86.83%, damping 0.95x, yesterday 82.97% today 90.24% blend 46.88%
2026-08-16 12:45:03.687624: Today's predicted so far 7.97kWh with 0.0kWh car/iBoost excluded, 5.12kWh import ignored, and 7.97kWh forecast extra.
2026-08-16 12:45:03.687666: Today's actual load so far 6.52kWh with 0.0kWh car/iBoost excluded, and 5.12kWh import ignored.
2026-08-16 12:45:03.782905: Inverter 0: Type SK Sunsynk
2026-08-16 12:45:03.783012: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:45:03.783232: Reserve min: 7%, battery_min: 7%
2026-08-16 12:45:03.783319: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:45:03.783644: Inverter 0 SoC: 11.77kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power -25W, current battery voltage 51.2V, grid power -1022W, load power 994W, PV Power 0W
2026-08-16 12:45:03.783849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:45:03.783959: Inverter 0 scheduled charge enable is True
2026-08-16 12:45:03.784025: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:45:03.784136: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:45:03.784284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:45:03.784330: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:45:03.784377: Inverter 0 scheduled discharge enable is False
2026-08-16 12:45:03.784534: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:45:03.784580: Inverter 0 discharge windows currently []
2026-08-16 12:45:03.784610: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:45:03.784644: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:45:03.784669: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:45:03.962094: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:45:03.962356: Plan was last updated on 2026-08-16 12:40:00+01:00 and is now 5.0 minutes old
2026-08-16 12:45:03.962733: Best charge window [ 16-08 12:30:00 - 16-08 14:00:00 @ 22.43p 75%, 16-08 14:00:00 - 16-08 16:00:00 @ 22.53p 100%, 17-08 13:00:00 - 17-08 18:30:00 @ 45.22p 100%, 17-08 19:00:00 - 18-08 13:00:00 @ 26.84p 100% ]
2026-08-16 12:45:03.962802: Best export window [  ]
2026-08-16 12:45:03.964096: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:45:03.970286: Load divergence over 8.0 hours mean 402.74W, min 247.2W, max 816.0W, std dev 113.91W, divergence 14.14%
2026-08-16 12:45:04.014024: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:45:04.014251: LoadML is_calculating True
2026-08-16 12:45:04.014313: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 12:45:04.049079: predict base end_record 08-17 13:05:00, final soc 12.0kWh, metric 833.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 21.79kWh, PV 0.0kWh
2026-08-16 12:45:04.203549: Battery has 19.17 hours left - now at 11.77kWh
2026-08-16 12:45:04.274714: predict base10 end_record 08-17 13:05:00, final soc 12.0kWh, metric 891.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 22.51kWh, PV 0.0kWh
2026-08-16 12:45:04.412172: predict best10 end_record 08-17 13:05:00, final soc 1.44kWh, metric 528.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 22.51kWh, PV 0.0kWh
2026-08-16 12:45:04.637411: predict best end_record 08-17 13:05:00, final soc 1.96kWh, metric 376.55p, metric_keep 0kWh, min_soc 1.57kWh @ 08-17 12:55:00, load 21.79kWh, PV 0.0kWh
2026-08-16 12:45:04.637542: Saving plan best values to HA entities
2026-08-16 12:45:05.019863: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:45:05.040585: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:45:05.053091: Best charging limit SoC's [12.0, 16.0, 16.0, 16.0]kWh, export []kWh gives import battery 6.71kWh, house 0.0kWh, export 0.0kWh, metric 376.55p, metric10 528.16p
2026-08-16 12:45:05.175673: Marginal costs baseline metric (no standing charge): 329.9123
2026-08-16 12:45:05.723814: Marginal energy costs matrix computed: min=8.0 max=31.32
2026-08-16 12:45:05.898168: Rate array import [{'start': 765, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2225, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 765, 'end': 2225, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:45:05.898478: - Your estimated bill for today is £3.14 and tomorrow is £8.05
2026-08-16 12:45:05.898516: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 12:45:05.898534: - The battery is currently at 74% and is charging to 75% for the next 1 and a quarter hours.
2026-08-16 12:45:05.898549: - For the next 48 hours there will be no solar generation.
2026-08-16 12:45:05.898563: - You will reach a minimum of 10% battery in 24 hours.
2026-08-16 12:45:05.898577: 
2026-08-16 12:45:05.950337: Plan calculation took 1.99 seconds
2026-08-16 12:45:05.953159: No high rate period found
2026-08-16 12:45:06.029423: Import threshold used for optimisation was 22.95p
2026-08-16 12:45:06.108918: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 8.0, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 8.0, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 9: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 10: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 11: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 12: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 13: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 14: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 15: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 16: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 17: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 18: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 19: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 20: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 21: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 22: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 23: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 24: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 25: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 26: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 27: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 28: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 29: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 30: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 31: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 32: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 33: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0]
2026-08-16 12:45:06.119347: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:45:06.119480: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 16:00:00+01:00 - current SoC 74%, target 75%
2026-08-16 12:45:06.119741: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:45:06.120013: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:45:06.120259: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:45:06.120395: No export window planned
2026-08-16 12:45:06.120553: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:45:06.120599: Adjust idle time, charge 10:00:00-16:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:45:06.120804: Adjust demand (idle) time computed is 16:00:00-23:59:00
2026-08-16 12:45:06.121020: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:45:06.121133: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 74% -> 75% total add is 0.23kWh and this battery needs to add 0.23kWh to get to 12.0kWh
2026-08-16 12:45:06.121210: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:45:06.121389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121654: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.121995: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122123: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122229: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122337: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122437: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122544: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122633: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.122912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:45:06.123562: Inverter 0 count register writes 0
2026-08-16 12:45:06.162266: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 12:45:06.177741: Total inverter register writes now 833
2026-08-16 12:45:06.246680: Info: Completed run status Charging
2026-08-16 12:45:06.258750: Info: record_status Charging target 74%-75%
2026-08-16 12:45:06.283862: Saved current settings to /config/predbat_config.json
2026-08-16 12:45:06.284133: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:45:12.575533: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 12:45:41.526081: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:45:41.526366: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:45:41.526419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:45:41.526561: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:45:41.526607: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:45:41.526634: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:45:41.526991: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:45:45.136145: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0058 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 12:46:18.383534: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-16 12:46:18.385084: ML Predictor: Restored best weights from epoch with val_mae=0.0029 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 12:46:18.385350: ML Predictor: Training complete, final val_mae=0.0029 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 12:46:26.375914: ML Predictor: AR rollout over holdout: ar_mae=0.0033 kWh ar_bias=-0.0005 kWh (-0.6%) [drift vs teacher-forced: +0.0004 kWh]
2026-08-16 12:46:26.381886: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0029 kWh
2026-08-16 12:46:26.499651: ML Predictor: Curriculum pass 4/5: window=57.0 days (1368 hours of data)
2026-08-16 12:46:26.499778: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 12:46:27.196710: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 12:46:32.599946: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 12:46:32.654879: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0586 std=0.0472) load(mean=0.0589 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.5525 std=4.4514) import_rate(mean=26.1504 std=2.9036) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1895 std=0.5252)
2026-08-16 12:46:32.759758: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 12:46:32.779757: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 12:46:32.853433: ML Predictor: Baseline (pre-finetune) val_mae=0.0058 kWh val_bias=+0.0008 kWh
2026-08-16 12:46:47.705308: Apps.yaml successfully saved to apps.yaml
2026-08-16 12:46:47.705441: Backup created at apps.yaml.backup
2026-08-16 12:46:47.752097: Successfully loaded apps.yaml from apps.yaml
2026-08-16 12:46:50.373116: Stopping Predbat
2026-08-16 12:46:50.373216: Predbat terminating
2026-08-16 12:46:50.373376: Stopping load_ml interface
2026-08-16 12:46:50.473881: Stopped load_ml interface
2026-08-16 12:46:50.474016: Stopping temperature interface
2026-08-16 12:46:50.574379: Stopped temperature interface
2026-08-16 12:46:50.574511: Stopping mcp interface
2026-08-16 12:46:50.674876: Stopped mcp interface
2026-08-16 12:46:50.675193: Stopping web interface
2026-08-16 12:46:50.775812: Stopped web interface
2026-08-16 12:46:50.776168: Stopping ha_history interface
2026-08-16 12:46:50.879034: Stopped ha_history interface
2026-08-16 12:46:50.879364: Stopping ha interface
2026-08-16 12:46:50.913812: Info: Web socket stopping
2026-08-16 12:46:50.914041: Info: Web Socket stopped
2026-08-16 12:46:50.914431: Info: HA interface stopped
2026-08-16 12:46:50.979892: Stopped ha interface
2026-08-16 12:46:50.980014: Stopping storage interface
2026-08-16 12:46:51.080400: Stopped storage interface
2026-08-16 12:46:51.080635: Info: Components stopped
2026-08-16 12:46:51.080776: Predbat terminated
2026-08-16 12:46:51.189126: HAHistory: Finalizing...
2026-08-16 12:46:51.189488: HAHistory: Stopped
2026-08-16 12:46:53.009405: HTTP MCP Server stopped
2026-08-16 12:46:54.029157: StorageComponent: Finalizing...
2026-08-16 12:46:54.029301: StorageComponent: Stopped
2026-08-16 12:46:54.853096: TemperatureAPI: Finalizing...
2026-08-16 12:46:54.853397: TemperatureAPI: Stopped
2026-08-16 12:47:06.185840: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0111 val_mae=0.0065 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 12:47:37.907438: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0130 val_mae=0.0053 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0032 kWh ema_combined=0.0035 kWh
2026-08-16 12:48:10.998680: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0146 val_mae=0.0067 kWh val_bias=+0.0040 kWh (+5.0%) combined=0.0056 kWh ema_combined=0.0041 kWh
2026-08-16 12:48:42.176792: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0058 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0038 kWh ema_combined=0.0040 kWh
2026-08-16 12:49:16.405612: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0113 val_mae=0.0048 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0028 kWh ema_combined=0.0037 kWh
2026-08-16 12:49:49.994843: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0112 val_mae=0.0046 kWh val_bias=-0.0018 kWh (-2.3%) combined=0.0033 kWh ema_combined=0.0035 kWh
2026-08-16 12:50:22.309953: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0105 val_mae=0.0040 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0028 kWh ema_combined=0.0033 kWh
2026-08-16 12:50:55.061495: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0020 kWh ema_combined=0.0029 kWh
2026-08-16 12:51:28.422934: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0039 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-16 12:52:30.997605: Info: No secrets.yaml file found
2026-08-16 12:52:30.997746: Loading apps.yaml
2026-08-16 12:52:31.026742: Predbat: Startup predbat
2026-08-16 12:52:31.067085: --------------- PredBat - update at 2026-08-16 12:50:00+01:00 with clock skew 0 minutes, minutes now 770
2026-08-16 12:52:31.069264: Config root is /config
2026-08-16 12:52:31.069428: --------------- PredBat - update at 2026-08-16 12:50:00+01:00 with clock skew 0 minutes, minutes now 770
2026-08-16 12:52:31.069500: Initialising Storage interface
2026-08-16 12:52:31.069750: Initialising Home Assistant Interface interface
2026-08-16 12:52:31.090886: Initialising Home Assistant History interface
2026-08-16 12:52:31.091022: Initialising Web Interface interface
2026-08-16 12:52:31.091109: Initialising plugin system
2026-08-16 12:52:31.091250: Scanning for plugins in: /addon
2026-08-16 12:52:31.091605: Plugin discovery complete. Loaded 0 plugins.
2026-08-16 12:52:31.091680: Starting Storage interface
2026-08-16 12:52:31.091723: Creating task: <coroutine object ComponentBase.start at 0x7fe9d6335d20>
2026-08-16 12:52:31.092336: StorageComponent: Waiting for API to start
2026-08-16 12:52:31.103842: StorageComponent: Started
2026-08-16 12:52:32.093080: Starting Home Assistant Interface interface
2026-08-16 12:52:32.093343: Creating task: <coroutine object HAInterface.start at 0x7fe9b8830660>
2026-08-16 12:52:32.093926: HAInterface: Waiting for API to start
2026-08-16 12:52:32.094204: Info: Starting HA interface
2026-08-16 12:52:32.094639: Info: Start socket for url http://10.0.20.15:8123/api/websocket
2026-08-16 12:52:32.098421: Info: Web Socket active
2026-08-16 12:52:33.094141: Starting Home Assistant History interface
2026-08-16 12:52:33.094298: Creating task: <coroutine object ComponentBase.start at 0x7fe9b87797a0>
2026-08-16 12:52:33.094854: HAHistory: Waiting for API to start
2026-08-16 12:52:33.095297: Info: Starting HAHistory
2026-08-16 12:52:33.095529: Info: HAHistory: Pruning history data started.
2026-08-16 12:52:33.095598: Info: HAHistory: Pruning history data completed.
2026-08-16 12:52:33.095722: HAHistory: Started
2026-08-16 12:52:34.095510: Starting Web Interface interface
2026-08-16 12:52:34.095638: Creating task: <coroutine object WebInterface.start at 0x7fe9b89face0>
2026-08-16 12:52:34.096133: WebInterface: Waiting for API to start
2026-08-16 12:52:35.098686: Config root is /config and printable config_root_p is now /config
2026-08-16 12:52:35.233232: 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-16 12:52:35.235148: 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-16 12:52:35.235274: Refreshing Predbat configuration
2026-08-16 12:52:35.235394: Loading current config
2026-08-16 12:52:36.047946: Saved current settings to /config/predbat_config.json
2026-08-16 12:52:36.768474: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:52:36.785616: Initialising MCP Server interface
2026-08-16 12:52:36.786100: Initialising External Temperature API interface
2026-08-16 12:52:36.786387: Starting MCP Server interface
2026-08-16 12:52:36.786435: Creating task: <coroutine object PredbatMCPServer.start at 0x7fe9b87d64d0>
2026-08-16 12:52:36.786820: PredbatMCPServer: Waiting for API to start
2026-08-16 12:52:36.787115: Creating HTTP MCP Server with Predbat integration
2026-08-16 12:52:36.787215: HTTP MCP Server started (web interface integration)
2026-08-16 12:52:37.787047: Starting External Temperature API interface
2026-08-16 12:52:37.787200: Creating task: <coroutine object ComponentBase.start at 0x7fe9b8779900>
2026-08-16 12:52:37.787697: TemperatureAPI: Waiting for API to start
2026-08-16 12:52:37.919930: TemperatureAPI: Started
2026-08-16 12:52:38.788572: Initialising ML Load Forecaster interface
2026-08-16 12:52:38.882853: ML Predictor: Upgraded 288 feature std values to prevent extreme normalization
2026-08-16 12:52:38.883003: ML Predictor: Model loaded from /config/predbat_ml_model.npz (trained 2026-08-16 09:04, val_mae=0.0039, val_bias=-0.0001)
2026-08-16 12:52:38.883172: ML Component: Loaded existing model
2026-08-16 12:52:38.883289: Starting ML Load Forecaster interface
2026-08-16 12:52:38.883333: Creating task: <coroutine object ComponentBase.start at 0x7fe9b8779d20>
2026-08-16 12:52:38.883741: LoadMLComponent: Waiting for API to start
2026-08-16 12:52:38.935976: ML Component: Loaded database history: 16694 load points, 1.0h elapsed since save, age 57.0 days (shift will be applied on next fetch)
2026-08-16 12:52:38.950328: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 12:52:45.250715: Processing 1297 30-minute periods for power integration
2026-08-16 12:52:45.330898: ML Component: Car charging hold False, car energy reported load False
2026-08-16 12:52:45.407864: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:52:45.499869: ML Temperature data points: 48191
2026-08-16 12:52:46.584158: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 12:52:46.602718: ML Component: Data fetch completed, load data age 58.0 days, 16706 data points
2026-08-16 12:52:46.602826: ML Component: No training needed, model age is 2.75 hours
2026-08-16 12:52:46.602890: ML Component: Generating predictions load data age 58.0 days, 16706 data points
2026-08-16 12:52:46.737030: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0901 max_dow {0: 0.10211875006537885, 1: 0.10797500054407864, 2: 0.11627812483031302, 3: 0.11878124942630529, 4: 0.16584999989941718, 5: 0.0965111110350324, 6: 0.10629687624797225}
2026-08-16 12:52:53.898798: ML Component: Generated 576 predictions (total 32.33 kWh over 48h)
2026-08-16 12:52:53.959790: ML Component: Prediction cycle completed
2026-08-16 12:52:54.072912: ML Component: Saved 16706 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 12:52:54.075000: LoadMLComponent: Started
2026-08-16 12:52:54.917919: Refreshing Predbat configuration
2026-08-16 12:52:55.672243: Watch list []
2026-08-16 12:52:56.629420: Saved current settings to /config/predbat_config.json
2026-08-16 12:52:56.630450: Validation of apps.yaml was successful
2026-08-16 12:52:56.634125: Restored saved plan from 210 minutes ago: 5 charge windows, 0 export windows
2026-08-16 12:52:56.642836: Predbat: Next run time will be 2026-08-16 12:55:00 and then every 300 seconds
2026-08-16 12:52:57.648942: Refreshing Predbat configuration
2026-08-16 12:52:58.289103: Saved current settings to /config/predbat_config.json
2026-08-16 12:52:58.289947: Validation of apps.yaml was successful
2026-08-16 12:52:58.290078: --------------- PredBat - update at 2026-08-16 12:50:00+01:00 with clock skew 0 minutes, minutes now 770
2026-08-16 12:52:58.290620: Saved current settings to /config/predbat_config.json
2026-08-16 12:52:58.497840: Loaded GitHub URL cache from storage (1 entries)
2026-08-16 12:52:59.025260: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:52:59.025402: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:52:59.044157: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:52:59.044356: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:52:59.044681: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:52:59.045822: Cars 1 charging from battery False planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [24.0]% ([14.064]kWh), rate [7.4]kW, exclusive [False]
2026-08-16 12:52:59.046059: Predbat mode is set to Control charge & discharge
2026-08-16 12:52:59.498019: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:52:59.498386: Using load_power data to fill gaps in load_today data
2026-08-16 12:53:00.391894: Processing 721 30-minute periods for power integration
2026-08-16 12:53:00.674225: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:53:00.674365: Car charging hold False, threshold 6.0kWh
2026-08-16 12:53:00.674412: Current data so far today: load 6.65kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:53:00.732939: Cars: SoC: [16.994]kWh, Charge limit [24.0]% ([14.064]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:53:00.733668: Octopus: Joining Octopus saving event code EVENT_45_160826 Sun 16/08 13:00-14:00 at rate 0.0 p/kWh
2026-08-16 12:53:01.138920: Warn: Web Socket result failed {'id': 25, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Saving Sessions event not found'}}
2026-08-16 12:53:01.139020: Warn: Service call octopus_energy/join_octoplus_saving_session_event data {'event_code': 'EVENT_45_160826', 'entity_id': 'event.octopus_energy_a_db198414_octoplus_saving_session_events'} failed
2026-08-16 12:53:01.496001: Octopus: Joining Octopus saving event code EVENT_46_160826 Sun 16/08 14:00-15:00 at rate 0.0 p/kWh
2026-08-16 12:53:01.802989: Warn: Web Socket result failed {'id': 27, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Saving Sessions event not found'}}
2026-08-16 12:53:01.803088: Warn: Service call octopus_energy/join_octoplus_saving_session_event data {'event_code': 'EVENT_46_160826', 'entity_id': 'event.octopus_energy_a_db198414_octoplus_saving_session_events'} failed
2026-08-16 12:53:02.004601: Standing charge is set to 46.63p
2026-08-16 12:53:02.119057: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 12:53:02.119222: Import rates: min 8.0p, max 33.75p, average 24.81p
2026-08-16 12:53:02.171608: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:53:02.171788: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 12:53:02.173006: High export rate found rates in range 99p to -99p
2026-08-16 12:53:02.218715: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 12:53:02.218972: Car 0 plan charging from 16.994kWh to 24.0% (14.064kWh), with slots [{'start': 750, 'end': 780, 'average': 8.0}, {'start': 780, 'end': 810, 'average': 8.0}, {'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 12:53:02.233603: Battery level now 11.77kWh, -1hr ago 10.29kWh, at midnight 12.21kWh, battery value change in the last hour 10.21p, change today -2.99p, rate_forward 6.87p
2026-08-16 12:53:02.234435: Last hour: net energy 2.35kWh, import 2.35kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 52.02p, import 52.02p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:53:02.304468: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 271.86p, import 225.23p, export 0.0p, carbon 0.0kg
2026-08-16 12:53:02.304611: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:53:02.398420: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:53:02.509520: Today's load divergence 89.65%, in-day adjustment 86.82%, damping 0.95x, yesterday 82.97% today 90.17% blend 46.53%
2026-08-16 12:53:02.509935: Today's predicted so far 8.01kWh with 0.0kWh car/iBoost excluded, 6.05kWh import ignored, and 8.01kWh forecast extra.
2026-08-16 12:53:02.509998: Today's actual load so far 6.56kWh with 0.0kWh car/iBoost excluded, and 6.05kWh import ignored.
2026-08-16 12:53:02.557431: Octopus slots changed from [[], [], [], [], [], [], [], []] to [[]]
2026-08-16 12:53:02.557625: 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-16 12:53:02.558008: Sensor changes require a replan, will recompute the plan
2026-08-16 12:53:02.558183: Inverter 0: Type SK Sunsynk
2026-08-16 12:53:02.558232: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:53:02.558485: Reserve min: 7%, battery_min: 7%
2026-08-16 12:53:02.558585: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:53:02.558885: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power -21W, current battery voltage 51.2V, grid power -460W, load power 451W, PV Power 0W
2026-08-16 12:53:02.559061: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:53:02.559165: Inverter 0 scheduled charge enable is True
2026-08-16 12:53:02.559224: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:53:02.559362: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:53:02.559508: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:53:02.559545: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:53:02.559629: Inverter 0 scheduled discharge enable is False
2026-08-16 12:53:02.559798: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:53:02.559844: Inverter 0 discharge windows currently []
2026-08-16 12:53:02.559932: 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-16 12:53:07.350508: Looking for discharge curve, have found 15.0 days of history data, max days 15
2026-08-16 12:53:07.419168: 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-16 12:53:07.435375: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:53:07.435514: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:53:07.435540: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:53:07.508976: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:53:07.509067: Will recompute the plan as it is invalid
2026-08-16 12:53:07.509107: Current charge window has expired, removing it
2026-08-16 12:53:07.509196: Recompute is saving previous plan...
2026-08-16 12:53:07.510387: Best charge window [ 16-08 12:30:00 - 16-08 13:00:00 @ 8.0p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 75%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 75%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 75%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 75%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 75%, 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 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% ]
2026-08-16 12:53:07.510438: Best export window [  ]
2026-08-16 12:53:07.511359: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:53:07.514599: Load divergence over 8.0 hours mean 404.26W, min 244.2W, max 845.4W, std dev 108.98W, divergence 13.48%
2026-08-16 12:53:07.532175: Calculating data from yesterday for savings calculation
2026-08-16 12:53:07.542411: 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-16 12:53:07.724054: 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-16 12:53:07.741792: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 12:53:07.757695: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 233.09p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 12:53:07.779411: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 12:53:07.810563: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.72kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.46kWh
2026-08-16 12:53:07.912353: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 333.28p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 12:53:07.912631: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.43 (adjusted £-1.59) with import 12.49kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 12:53:07.930576: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:53:07.930733: LoadML is_calculating False
2026-08-16 12:53:07.930802: Creating pool of 12 processes to match your CPU count
2026-08-16 12:53:08.118746: 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(0.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-16 12:53:08.119541: Optimise levels pass started at 2026-08-16 12:53:08
2026-08-16 12:53:08.119593: Optimise all windows, total charge 34 export 1
2026-08-16 12:53:08.805520: >> Region optimisation pass width 960 gives best_metric 449.35p, best_cost 452.67p, best_cycle 36.09kWh, best_import 22.6kWh
2026-08-16 12:53:09.300475: >> Region optimisation pass width 480 gives best_metric 446.79p, best_cost 452.76p, best_cycle 36.1kWh, best_import 22.61kWh
2026-08-16 12:53:09.580848: >> Region optimisation pass width 240 gives best_metric 446.79p, best_cost 452.76p, best_cycle 36.1kWh, best_import 22.61kWh
2026-08-16 12:53:10.140018: >> Region optimisation pass width 120 gives best_metric 446.79p, best_cost 452.76p, best_cycle 36.1kWh, best_import 22.61kWh
2026-08-16 12:53:10.140217: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 22
2026-08-16 12:53:10.140275: Optimise levels pass ended at 2026-08-16 12:53:10, duration 2.0 seconds tried 108 combinations
2026-08-16 12:53:10.140338: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 446.79p, best_keep 0kWh, best_cycle 36.1kWh, best_carbon 0kg, best_import 22.61kWh
2026-08-16 12:53:10.156202: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 12:53:14.187265: Tweak plan optimisation started metric 368.2p, cost 378.49p
2026-08-16 12:53:14.571253: Tweak optimisation finished metric 368.2p, cost 378.49p, metric_keep 0kWh, cycle 25.43kWh, carbon 0kg, import 13.33kWh, changed 8 window(s)
2026-08-16 12:53:14.592144: Swap charge optimisation started metric 368.2p, cost 378.49p, min_improvement_swap 0.1p
2026-08-16 12:53:15.866164: Swap charge optimisation finished metric 368.2p, cost 378.49p
2026-08-16 12:53:16.034400: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 366.78p -> 366.61p, plan now metric 369.56p, cost 375.45p, cycle 25.97kWh, import 12.95kWh
2026-08-16 12:53:16.050958: Raw charge windows [ 16-08 12:30:00 - 16-08 13:00:00 @ 8.0p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 86%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 12:53:16.051538: Unclipped charge windows [ 16-08 12:30:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:53:16.051829: Unfiltered charge windows [ 16-08 12:30:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:53:16.052120: Filtered charge windows [ 16-08 12:30:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:53:16.095076: Previous plan best metric is 1067.78 (cost 1165.68) and new plan best metric is 368.2 (cost 378.49)
2026-08-16 12:53:16.095370: New plan metric is significantly better from previous plan, using new plan
2026-08-16 12:53:16.095457: Plan valid is now true after recompute was False
2026-08-16 12:53:16.122280: predict base end_record 08-17 23:30:00, final soc 6.62kWh, metric 895.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 28.46kWh, PV 0.0kWh
2026-08-16 12:53:16.268777: Battery has 19.08 hours left - now at 12.0kWh
2026-08-16 12:53:16.322504: predict base10 end_record 08-17 23:30:00, final soc 6.36kWh, metric 954.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 29.5kWh, PV 0.0kWh
2026-08-16 12:53:16.396007: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 440.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.5kWh, PV 0.0kWh
2026-08-16 12:53:16.497659: predict best end_record 08-17 23:30:00, final soc 1.29kWh, metric 422.09p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.46kWh, PV 0.0kWh
2026-08-16 12:53:16.497758: Saving plan best values to HA entities
2026-08-16 12:53:16.688809: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 12:53:16.695862: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:53:16.703079: Best charging limit SoC's [12.0, 16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.95kWh, house 0.0kWh, export 0.0kWh, metric 422.09p, metric10 440.62p
2026-08-16 12:53:16.789089: Marginal costs baseline metric (no standing charge): 375.4547
2026-08-16 12:53:17.078308: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 12:53:17.157686: Rate array import [{'start': 770, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 770, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:53:17.158211: - Your estimated bill for today is £3.00 and tomorrow is £1.47
2026-08-16 12:53:17.158268: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 12:53:17.158294: - The battery is currently at 75% and is charging to 75% for the next 40 minutes.
2026-08-16 12:53:17.158329: - For the next 48 hours there will be no solar generation.
2026-08-16 12:53:17.158385: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 12:53:17.158429: 
2026-08-16 12:53:17.217884: Plan calculation took 9.71 seconds
2026-08-16 12:53:17.223196: Saved plan to storage
2026-08-16 12:53:17.226786: No high rate period found
2026-08-16 12:53:17.280046: Import threshold used for optimisation was 8.0p
2026-08-16 12:53:17.333666: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 8.0, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 8.0, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 9: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 10: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 11: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 12: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 13: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 14: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 15: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 16: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 17: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 18: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 19: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 20: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 21: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 22: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 23: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 24: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 25: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 26: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 27: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 28: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 29: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 30: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 31: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 32: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 33: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0]
2026-08-16 12:53:17.340799: Inverter 0: Type SK Sunsynk
2026-08-16 12:53:17.340883: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:53:17.341168: Reserve min: 7%, battery_min: 7%
2026-08-16 12:53:17.341262: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:53:17.341605: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power -21W, current battery voltage 51.2V, grid power -460W, load power 451W, PV Power 0W
2026-08-16 12:53:17.341834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:53:17.341945: Inverter 0 scheduled charge enable is True
2026-08-16 12:53:17.341993: Inverter 0 charge windows currently [{'start': 600, 'end': 960, 'average': 0}, {'start': 2040, 'end': 2400, 'average': 0}, {'start': 3480, 'end': 3840, 'average': 0}]
2026-08-16 12:53:17.342118: Inverter 0 Charge settings: 08-16 10:00:00-08-16 16:00:00, limit 75.0%, power 5.0kW
2026-08-16 12:53:17.342251: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:53:17.342294: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:53:17.342364: Inverter 0 scheduled discharge enable is False
2026-08-16 12:53:17.342513: Inverter 0 idle time is 08-16 16:00:00-08-16 23:59:00
2026-08-16 12:53:17.342553: Inverter 0 discharge windows currently []
2026-08-16 12:53:17.342582: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:53:17.342610: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:53:17.342631: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:53:17.396118: Include original charge start 08-16 10:00:00, keeping this instead of new start 08-16 12:30:00
2026-08-16 12:53:17.396249: Inverter 0 Charge window will be: 2026-08-16 10:00:00+01:00 - 2026-08-16 13:30:00+01:00 - current SoC 75%, target 75%
2026-08-16 12:53:17.396430: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 12:53:17.396522: Inverter 0 Hold charging as SoC 75% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-16 12:53:17.396654: Adjust idle time, charge 10:00:00-13:30:00 discharge 00:00:00-00:00:00
2026-08-16 12:53:17.396895: Adjust demand (idle) time computed is 13:30:00-23:59:00
2026-08-16 12:53:17.397005: Inverter 0 set new demand (idle) start time to 13:30:00 was 16:00:00
2026-08-16 12:53:22.403497: Inverter 0 write_and_poll_value: Wrote 13:30:00 to idle_start_time, successfully now 13:30:00
2026-08-16 12:53:27.417574: Inverter 0 write_and_poll_value: Wrote 13:30:00 to charge_end_time, successfully now 13:30:00
2026-08-16 12:53:27.417722: Inverter 0 Updated start and end charge window to 10:00:00 - 13:30:00 (old 10:00:00 - 16:00:00)
2026-08-16 12:53:27.417820: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-16 12:53:32.426445: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-16 12:53:37.510908: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-16 12:53:37.511073: No export window planned
2026-08-16 12:53:37.511252: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:53:37.511300: Adjust idle time, charge 10:00:00-13:30:00 discharge 00:00:00-00:00:00
2026-08-16 12:53:37.511531: Adjust demand (idle) time computed is 13:30:00-23:59:00
2026-08-16 12:53:37.511659: Inverter 0 setting charging SoC to 75% as per target
2026-08-16 12:53:37.511734: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 75% -> 75% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.0kWh
2026-08-16 12:53:37.511797: Inverter 0 Current Target SoC is 75%, already at target
2026-08-16 12:53:37.511930: 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-16 12:53:37.517665: 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-16 12:53:37.529014: 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-16 12:53:37.554749: 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-16 12:53:37.567391: 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-16 12:53:37.612856: 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-16 12:53:37.658548: 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-16 12:53:37.699947: 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-16 12:53:37.789687: 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-16 12:53:37.794705: 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-16 12:53:37.861493: 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-16 12:53:37.888500: 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-16 12:53:37.928124: 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-16 12:53:37.971070: 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-16 12:53:38.015480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:53:38.015759: Inverter 0 count register writes 1
2026-08-16 12:53:38.042004: Total inverter register writes now 834
2026-08-16 12:53:38.083219: Info: Completed run status Hold charging
2026-08-16 12:53:38.361855: Info: record_status Hold charging target 75%-75%
2026-08-16 12:53:38.371287: Saved current settings to /config/predbat_config.json
2026-08-16 12:53:38.371733: Compare, best tariff: igo_fixed metric 126.72p
2026-08-16 12:53:38.442165: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 12:53:54.126190: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 12:53:55.198653: Processing 1297 30-minute periods for power integration
2026-08-16 12:53:55.305290: ML Component: Car charging hold False, car energy reported load False
2026-08-16 12:53:55.400230: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:53:55.496679: ML Temperature data points: 48191
2026-08-16 12:53:55.760080: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 12:53:55.791910: ML Component: Data fetch completed, load data age 58.0 days, 16706 data points
2026-08-16 12:53:55.792028: ML Component: Starting fine-tune training (2h interval), model age is 2.7534325841666667 hours
2026-08-16 12:53:55.792057: ML Component: Doing training...
2026-08-16 12:53:55.804997: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 12:53:55.805099: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.0 days)
2026-08-16 12:53:55.844824: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 12:53:55.844980: ML Predictor: Starting initial training with 30 epochs
2026-08-16 12:53:56.482473: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 12:54:01.709000: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 12:54:01.768625: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0468) load(mean=0.0588 std=0.0467) pv(mean=0.0000 std=0.0100) temp(mean=19.5946 std=4.4768) import_rate(mean=17.2664 std=8.3944) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-16 12:54:12.245714: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:54:12.246045: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:54:12.246199: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:54:12.246462: Inverter 0 idle time is 08-16 13:30:00-08-16 23:59:00
2026-08-16 12:54:12.246616: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:54:12.246739: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:54:12.246849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:54:34.671742: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0190 val_mae=0.0055 kWh val_bias=-0.0020 kWh (-2.9%) combined=0.0047 kWh ema_combined=0.0047 kWh
2026-08-16 12:54:56.305705: Apps.yaml successfully saved to apps.yaml
2026-08-16 12:54:56.305944: Backup created at apps.yaml.backup
2026-08-16 12:54:56.380428: Successfully loaded apps.yaml from apps.yaml
2026-08-16 12:54:59.493564: Stopping Predbat
2026-08-16 12:54:59.493931: Predbat terminating
2026-08-16 12:54:59.494212: Stopping load_ml interface
2026-08-16 12:54:59.602135: Stopped load_ml interface
2026-08-16 12:54:59.602678: Stopping temperature interface
2026-08-16 12:54:59.703147: Stopped temperature interface
2026-08-16 12:54:59.703509: Stopping mcp interface
2026-08-16 12:54:59.803994: Stopped mcp interface
2026-08-16 12:54:59.804383: Stopping web interface
2026-08-16 12:54:59.904864: Stopped web interface
2026-08-16 12:54:59.905216: Stopping ha_history interface
2026-08-16 12:55:00.005787: Stopped ha_history interface
2026-08-16 12:55:00.005912: Stopping ha interface
2026-08-16 12:55:00.044648: Info: Web socket stopping
2026-08-16 12:55:00.044986: Info: Web Socket stopped
2026-08-16 12:55:00.045233: Info: HA interface stopped
2026-08-16 12:55:00.106382: Stopped ha interface
2026-08-16 12:55:00.106630: Stopping storage interface
2026-08-16 12:55:00.208485: Stopped storage interface
2026-08-16 12:55:00.208811: Info: Components stopped
2026-08-16 12:55:00.209407: Predbat terminated
2026-08-16 12:55:01.253491: StorageComponent: Finalizing...
2026-08-16 12:55:01.253627: StorageComponent: Stopped
2026-08-16 12:55:01.929319: HTTP MCP Server stopped
2026-08-16 12:55:03.069100: TemperatureAPI: Finalizing...
2026-08-16 12:55:03.069242: TemperatureAPI: Stopped
2026-08-16 12:55:03.545107: HAHistory: Finalizing...
2026-08-16 12:55:03.545376: HAHistory: Stopped
2026-08-16 12:55:07.171866: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0221 val_mae=0.0055 kWh val_bias=-0.0027 kWh (-3.8%) combined=0.0034 kWh ema_combined=0.0043 kWh
2026-08-16 12:55:38.584195: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0235 val_mae=0.0048 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0027 kWh ema_combined=0.0038 kWh
2026-08-16 12:56:17.323544: Info: No secrets.yaml file found
2026-08-16 12:56:17.323868: Loading apps.yaml
2026-08-16 12:56:17.349462: Predbat: Startup predbat
2026-08-16 12:56:17.388747: --------------- PredBat - update at 2026-08-16 12:55:00+01:00 with clock skew 0 minutes, minutes now 775
2026-08-16 12:56:17.390901: Config root is /config
2026-08-16 12:56:17.391056: --------------- PredBat - update at 2026-08-16 12:55:00+01:00 with clock skew 0 minutes, minutes now 775
2026-08-16 12:56:17.391105: Initialising Storage interface
2026-08-16 12:56:17.391295: Initialising Home Assistant Interface interface
2026-08-16 12:56:17.413738: Initialising Home Assistant History interface
2026-08-16 12:56:17.413893: Initialising Web Interface interface
2026-08-16 12:56:17.413974: Initialising plugin system
2026-08-16 12:56:17.414091: Scanning for plugins in: /addon
2026-08-16 12:56:17.414393: Plugin discovery complete. Loaded 0 plugins.
2026-08-16 12:56:17.414448: Starting Storage interface
2026-08-16 12:56:17.414484: Creating task: <coroutine object ComponentBase.start at 0x7f60cfae1d20>
2026-08-16 12:56:17.414996: StorageComponent: Waiting for API to start
2026-08-16 12:56:17.424526: StorageComponent: Started
2026-08-16 12:56:18.415628: Starting Home Assistant Interface interface
2026-08-16 12:56:18.415769: Creating task: <coroutine object HAInterface.start at 0x7f60affd4660>
2026-08-16 12:56:18.416511: Info: Starting HA interface
2026-08-16 12:56:18.416568: HAInterface: Waiting for API to start
2026-08-16 12:56:18.417241: Info: Start socket for url http://10.0.20.15:8123/api/websocket
2026-08-16 12:56:18.420902: Info: Web Socket active
2026-08-16 12:56:19.417464: Starting Home Assistant History interface
2026-08-16 12:56:19.417605: Creating task: <coroutine object ComponentBase.start at 0x7f60aff157a0>
2026-08-16 12:56:19.418013: HAHistory: Waiting for API to start
2026-08-16 12:56:19.418356: Info: Starting HAHistory
2026-08-16 12:56:19.418431: Info: HAHistory: Pruning history data started.
2026-08-16 12:56:19.418470: Info: HAHistory: Pruning history data completed.
2026-08-16 12:56:19.418540: HAHistory: Started
2026-08-16 12:56:20.418191: Starting Web Interface interface
2026-08-16 12:56:20.418310: Creating task: <coroutine object WebInterface.start at 0x7f60b21a6ce0>
2026-08-16 12:56:20.418765: WebInterface: Waiting for API to start
2026-08-16 12:56:21.418977: Config root is /config and printable config_root_p is now /config
2026-08-16 12:56:21.524359: Regular expression argument car_charging_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-16 12:56:21.529614: 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-16 12:56:21.532531: 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-16 12:56:21.535249: 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-16 12:56:21.537545: 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-16 12:56:21.539174: 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-16 12:56:21.539299: Refreshing Predbat configuration
2026-08-16 12:56:21.539426: Loading current config
2026-08-16 12:56:22.281063: Saved current settings to /config/predbat_config.json
2026-08-16 12:56:22.941457: Compare, best tariff: current metric 318.25p
2026-08-16 12:56:22.957095: Initialising MCP Server interface
2026-08-16 12:56:22.957542: Initialising External Temperature API interface
2026-08-16 12:56:22.957807: Starting MCP Server interface
2026-08-16 12:56:22.957853: Creating task: <coroutine object PredbatMCPServer.start at 0x7f60aff6e4d0>
2026-08-16 12:56:22.958241: PredbatMCPServer: Waiting for API to start
2026-08-16 12:56:22.958494: Creating HTTP MCP Server with Predbat integration
2026-08-16 12:56:22.958614: HTTP MCP Server started (web interface integration)
2026-08-16 12:56:23.958714: Starting External Temperature API interface
2026-08-16 12:56:23.958877: Creating task: <coroutine object ComponentBase.start at 0x7f60aff15900>
2026-08-16 12:56:23.959453: TemperatureAPI: Waiting for API to start
2026-08-16 12:56:24.091345: TemperatureAPI: Started
2026-08-16 12:56:24.960768: Initialising ML Load Forecaster interface
2026-08-16 12:56:25.057149: ML Predictor: Upgraded 288 feature std values to prevent extreme normalization
2026-08-16 12:56:25.057346: ML Predictor: Model loaded from /config/predbat_ml_model.npz (trained 2026-08-16 09:04, val_mae=0.0039, val_bias=-0.0001)
2026-08-16 12:56:25.057572: ML Component: Loaded existing model
2026-08-16 12:56:25.057692: Starting ML Load Forecaster interface
2026-08-16 12:56:25.057754: Creating task: <coroutine object ComponentBase.start at 0x7f60aff15d20>
2026-08-16 12:56:25.058250: LoadMLComponent: Waiting for API to start
2026-08-16 12:56:25.117605: ML Component: Loaded database history: 16701 load points, 0.1h elapsed since save, age 58.0 days (shift will be applied on next fetch)
2026-08-16 12:56:25.128127: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 12:56:28.898264: Processing 1297 30-minute periods for power integration
2026-08-16 12:56:29.028995: ML Component: Car charging hold False, car energy reported load False
2026-08-16 12:56:29.150128: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:56:29.261568: ML Temperature data points: 48186
2026-08-16 12:56:30.173662: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 12:56:30.193338: ML Component: Data fetch completed, load data age 58.0 days, 16707 data points
2026-08-16 12:56:30.193628: ML Component: No training needed, model age is 2.84 hours
2026-08-16 12:56:30.194549: ML Component: Generating predictions load data age 58.0 days, 16707 data points
2026-08-16 12:56:30.326808: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0442 max_dow {0: 0.10157812506537883, 1: 0.10667500054407865, 2: 0.11695312483347953, 3: 0.11357499942630528, 4: 0.16304062489941715, 5: 0.09685277770169907, 6: 0.10852187624797224}
2026-08-16 12:56:38.016262: ML Component: Generated 576 predictions (total 32.36 kWh over 48h)
2026-08-16 12:56:38.064519: ML Component: Prediction cycle completed
2026-08-16 12:56:38.182494: ML Component: Saved 16707 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 12:56:38.184165: LoadMLComponent: Started
2026-08-16 12:56:39.082962: Refreshing Predbat configuration
2026-08-16 12:56:39.865103: Watch list []
2026-08-16 12:56:40.801437: Saved current settings to /config/predbat_config.json
2026-08-16 12:56:40.802522: Validation of apps.yaml was successful
2026-08-16 12:56:40.806852: Restored saved plan from 5 minutes ago: 5 charge windows, 0 export windows
2026-08-16 12:56:40.814825: Predbat: Next run time will be 2026-08-16 13:00:00 and then every 300 seconds
2026-08-16 12:56:41.818731: Refreshing Predbat configuration
2026-08-16 12:56:42.508814: Saved current settings to /config/predbat_config.json
2026-08-16 12:56:42.509741: Validation of apps.yaml was successful
2026-08-16 12:56:42.509894: --------------- PredBat - update at 2026-08-16 12:55:00+01:00 with clock skew 0 minutes, minutes now 775
2026-08-16 12:56:42.510414: Saved current settings to /config/predbat_config.json
2026-08-16 12:56:42.719871: Loaded GitHub URL cache from storage (1 entries)
2026-08-16 12:56:42.720013: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 3.7 minutes
2026-08-16 12:56:42.720141: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 12:56:42.720226: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 12:56:42.757707: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 12:56:42.757842: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 12:56:42.758043: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 12:56:42.758832: Cars 1 charging from battery False 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-16 12:56:42.758994: Predbat mode is set to Control charge & discharge
2026-08-16 12:56:42.951147: Found 21602 load_today datapoints going back 27 days
2026-08-16 12:56:42.951324: Using load_power data to fill gaps in load_today data
2026-08-16 12:56:43.833231: Processing 721 30-minute periods for power integration
2026-08-16 12:56:44.142672: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 12:56:44.142800: Car charging hold False, threshold 6.0kWh
2026-08-16 12:56:44.142860: Current data so far today: load 6.8kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 12:56:44.189230: Cars: SoC: [16.994]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 12:56:44.189783: Octopus: Joining Octopus saving event code EVENT_45_160826 Sun 16/08 13:00-14:00 at rate 0.0 p/kWh
2026-08-16 12:56:44.602687: Warn: Web Socket result failed {'id': 25, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Saving Sessions event not found'}}
2026-08-16 12:56:44.602789: Warn: Service call octopus_energy/join_octoplus_saving_session_event data {'event_code': 'EVENT_45_160826', 'entity_id': 'event.octopus_energy_a_db198414_octoplus_saving_session_events'} failed
2026-08-16 12:56:44.911452: Octopus: Joining Octopus saving event code EVENT_46_160826 Sun 16/08 14:00-15:00 at rate 0.0 p/kWh
2026-08-16 12:56:45.313652: Warn: Web Socket result failed {'id': 27, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Saving Sessions event not found'}}
2026-08-16 12:56:45.313763: Warn: Service call octopus_energy/join_octoplus_saving_session_event data {'event_code': 'EVENT_46_160826', 'entity_id': 'event.octopus_energy_a_db198414_octoplus_saving_session_events'} failed
2026-08-16 12:56:45.585819: Standing charge is set to 46.63p
2026-08-16 12:56:45.656260: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656396: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656462: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656528: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656645: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656704: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656758: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656811: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.656899: Octopus: Intelligent slot at 08-16 12:30:00-08-16 17:00:00, assumed price 8.0, amount 32.44, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657145: Octopus: Intelligent slot at 08-17 02:00:00-08-17 04:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657230: Octopus: Intelligent slot at 08-17 02:00:00-08-17 04:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657293: Octopus: Intelligent slot at 08-17 02:00:00-08-17 04:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657350: Octopus: Intelligent slot at 08-17 02:00:00-08-17 04:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657479: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.56, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 12:56:45.657530: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 12:56:45.661718: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 12:56:45.661809: Import rates: min 8.0p, max 33.75p, average 24.85p
2026-08-16 12:56:45.702873: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 12:56:45.703013: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 12:56:45.704069: High export rate found rates in range 99p to -99p
2026-08-16 12:56:45.738860: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 12:56:45.739072: Car 0 plan charging from 16.994kWh to 100.0% (58.6kWh), with slots [{'start': 750, 'end': 780, 'average': 8.0}, {'start': 780, 'end': 810, 'average': 8.0}, {'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 12:56:45.739573: Car 0 charging plan is: [{'start': 775, 'end': 780, 'kwh': 0.617, 'average': 8.0, 'cost': 4.93, 'octopus': False}, {'start': 780, 'end': 810, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 12:56:45.757872: Battery level now 12.0kWh, -1hr ago 10.29kWh, at midnight 12.21kWh, battery value change in the last hour 11.77p, change today -1.43p, rate_forward 6.87p
2026-08-16 12:56:45.758273: Last hour: net energy 2.1kWh, import 2.1kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 38.43p, import 38.43p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 12:56:45.821416: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 273.46p, import 226.83p, export 0.0p, carbon 0.0kg
2026-08-16 12:56:45.821589: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:56:45.930218: Using weighted-bucket historical load forecast over 14 days
2026-08-16 12:56:46.005713: Today's load divergence 90.88%, in-day adjustment 87.47%, damping 0.95x, yesterday 82.97% today 91.33% blend 46.18%
2026-08-16 12:56:46.005848: Today's predicted so far 8.05kWh with 0.0kWh car/iBoost excluded, 6.01kWh import ignored, and 8.05kWh forecast extra.
2026-08-16 12:56:46.005895: Today's actual load so far 6.75kWh with 0.0kWh car/iBoost excluded, and 6.01kWh import ignored.
2026-08-16 12:56:46.052906: Octopus slots changed from [[], [], [], [], [], [], [], []] to [[{'start': '2026-08-16T12:22:24+01:00', 'end': '2026-08-16T12:35:53+01:00', 'charge_in_kwh': -1.6629444444444443, 'source': 'BOOST'}, {'start': '2026-08-16T12:37:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -32.436666666666675, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T04: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': -1.5635, 'source': 'SMART'}]]
2026-08-16 12:56:46.053255: 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-16 12:56:46.053797: Sensor changes require a replan, will recompute the plan
2026-08-16 12:56:46.054047: Inverter 0: Type SK Sunsynk
2026-08-16 12:56:46.054119: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:56:46.054327: Reserve min: 7%, battery_min: 7%
2026-08-16 12:56:46.054407: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:56:46.054695: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -447W, load power 447W, PV Power 0W
2026-08-16 12:56:46.054936: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:56:46.055085: Inverter 0 scheduled charge enable is True
2026-08-16 12:56:46.055569: Inverter 0 charge windows currently [{'start': 600, 'end': 810, 'average': 0}, {'start': 2040, 'end': 2250, 'average': 0}, {'start': 3480, 'end': 3690, 'average': 0}]
2026-08-16 12:56:46.055722: Inverter 0 Charge settings: 08-16 10:00:00-08-16 13:30:00, limit 75.0%, power 5.0kW
2026-08-16 12:56:46.055912: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:56:46.055951: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:56:46.055999: Inverter 0 scheduled discharge enable is False
2026-08-16 12:56:46.056181: Inverter 0 idle time is 08-16 13:30:00-08-16 23:59:00
2026-08-16 12:56:46.056227: Inverter 0 discharge windows currently []
2026-08-16 12:56:46.056292: 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-16 12:56:48.340278: Looking for discharge curve, have found 15.0 days of history data, max days 15
2026-08-16 12:56:48.424561: 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-16 12:56:48.438461: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:56:48.438588: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:56:48.438624: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:56:48.512211: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 12:56:48.512303: Will recompute the plan as it is invalid
2026-08-16 12:56:48.512454: Recompute is saving previous plan...
2026-08-16 12:56:48.513841: Best charge window [ 16-08 12:30:00 - 16-08 13:00:00 @ 8.0p 75%, 16-08 13:00:00 - 16-08 13:30:00 @ 8.0p 75%, 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 75%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 75%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 75%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 75%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 75%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 75%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 75%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 75%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 75%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 75%, 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 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% ]
2026-08-16 12:56:48.513924: Best export window [  ]
2026-08-16 12:56:48.514730: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 12:56:48.518065: Load divergence over 8.0 hours mean 405.77W, min 240.6W, max 850.2W, std dev 106.35W, divergence 13.1%
2026-08-16 12:56:48.539055: Calculating data from yesterday for savings calculation
2026-08-16 12:56:48.553513: 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-16 12:56:48.657148: 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-16 12:56:48.678614: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 12:56:48.693263: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 232.7p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 12:56:48.711561: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 12:56:48.745422: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.41 (adjusted £-3.29) with import 23.68kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.45kWh
2026-08-16 12:56:48.830762: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.93p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 12:56:48.830931: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 12:56:48.843134: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 12:56:48.843270: LoadML is_calculating False
2026-08-16 12:56:48.843361: Creating pool of 12 processes to match your CPU count
2026-08-16 12:56:49.030697: 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(0.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-16 12:56:49.031516: Optimise levels pass started at 2026-08-16 12:56:49
2026-08-16 12:56:49.031572: Optimise all windows, total charge 34 export 1
2026-08-16 12:56:49.892525: >> Region optimisation pass width 960 gives best_metric 454.6p, best_cost 452.32p, best_cycle 32.7kWh, best_import 22.36kWh
2026-08-16 12:56:50.383790: >> Region optimisation pass width 480 gives best_metric 452.05p, best_cost 452.41p, best_cycle 32.71kWh, best_import 22.37kWh
2026-08-16 12:56:50.683691: >> Region optimisation pass width 240 gives best_metric 452.05p, best_cost 452.41p, best_cycle 32.71kWh, best_import 22.37kWh
2026-08-16 12:56:51.360547: >> Region optimisation pass width 120 gives best_metric 452.05p, best_cost 452.41p, best_cycle 32.71kWh, best_import 22.37kWh
2026-08-16 12:56:51.360789: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 22
2026-08-16 12:56:51.360881: Optimise levels pass ended at 2026-08-16 12:56:51, duration 2.3 seconds tried 108 combinations
2026-08-16 12:56:51.361057: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 452.05p, best_keep 0kWh, best_cycle 32.71kWh, best_carbon 0kg, best_import 22.37kWh
2026-08-16 12:56:51.379225: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 12:56:55.093344: Tweak plan optimisation started metric 373.03p, cost 378.55p
2026-08-16 12:56:55.445052: Tweak optimisation finished metric 373.03p, cost 378.55p, metric_keep 0kWh, cycle 22.9kWh, carbon 0kg, import 13.14kWh, changed 8 window(s)
2026-08-16 12:56:55.467650: Swap charge optimisation started metric 373.03p, cost 378.55p, min_improvement_swap 0.1p
2026-08-16 12:56:56.602469: Swap charge optimisation finished metric 373.03p, cost 378.55p
2026-08-16 12:56:56.761820: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 366.89p -> 366.71p, plan now metric 374.39p, cost 375.53p, cycle 23.41kWh, import 12.76kWh
2026-08-16 12:56:56.773805: Raw charge windows [ 16-08 12:30:00 - 16-08 13:00:00 @ 8.0p 0%, 16-08 13:00:00 - 16-08 13:30:00 @ 8.0p 0%, 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 86%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 12:56:56.774306: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:56:56.774694: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:56:56.774965: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 12:56:56.828656: Previous plan best metric is 373.54 (cost 379.1) and new plan best metric is 373.03 (cost 378.55)
2026-08-16 12:56:56.829001: New plan is a cost-neutral improvement but less fragmented (2 vs 3 segments), using new plan
2026-08-16 12:56:56.829082: Plan valid is now true after recompute was False
2026-08-16 12:56:56.865720: predict base end_record 08-17 23:30:00, final soc 5.13kWh, metric 850.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 28.61kWh, PV 0.0kWh
2026-08-16 12:56:57.000322: Battery has 18.92 hours left - now at 12.0kWh
2026-08-16 12:56:57.063791: predict base10 end_record 08-17 23:30:00, final soc 4.81kWh, metric 907.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 29.65kWh, PV 0.0kWh
2026-08-16 12:56:57.160185: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 472.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.65kWh, PV 0.0kWh
2026-08-16 12:56:57.243446: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 422.16p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.61kWh, PV 0.0kWh
2026-08-16 12:56:57.243544: Saving plan best values to HA entities
2026-08-16 12:56:57.426389: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 12:56:57.433868: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 12:56:57.440783: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.16kWh, house 1.6kWh, export 0.0kWh, metric 422.16p, metric10 472.24p
2026-08-16 12:56:57.548166: Marginal costs baseline metric (no standing charge): 375.5295
2026-08-16 12:56:57.917769: Marginal energy costs matrix computed: min=8.0 max=20.67
2026-08-16 12:56:58.008749: Rate array import [{'start': 775, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 775, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 12:56:58.009643: - Your estimated bill for today is £3.11 and tomorrow is £1.37
2026-08-16 12:56:58.009702: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 12:56:58.009727: - The battery is currently at 75% and is in eco mode for the next 10 hours.
2026-08-16 12:56:58.009753: - For the next 48 hours there will be no solar generation.
2026-08-16 12:56:58.009802: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 12:56:58.009843: - Your car is currently charging.
2026-08-16 12:56:58.009873: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 12:56:58.009915: 
2026-08-16 12:56:58.074955: Plan calculation took 9.56 seconds
2026-08-16 12:56:58.079630: Saved plan to storage
2026-08-16 12:56:58.083340: No high rate period found
2026-08-16 12:56:58.143942: Import threshold used for optimisation was 8.0p
2026-08-16 12:56:58.226056: Low import rate windows [0: 08-16 12:30:00 - 08-16 13:00:00 @ 8.0, 1: 08-16 13:00:00 - 08-16 13:30:00 @ 8.0, 2: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 3: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 4: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 5: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 6: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 7: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 8: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 9: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 10: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 11: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 12: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 13: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 14: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 15: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 16: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 17: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 18: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 19: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 20: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 21: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 22: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 23: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 24: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 25: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 26: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 27: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 28: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 29: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 30: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 31: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 32: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 33: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0]
2026-08-16 12:56:58.235522: Inverter 0: Type SK Sunsynk
2026-08-16 12:56:58.235615: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 12:56:58.235874: Reserve min: 7%, battery_min: 7%
2026-08-16 12:56:58.235962: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 12:56:58.236318: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -447W, load power 447W, PV Power 0W
2026-08-16 12:56:58.236554: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 12:56:58.236666: Inverter 0 scheduled charge enable is True
2026-08-16 12:56:58.236718: Inverter 0 charge windows currently [{'start': 600, 'end': 810, 'average': 0}, {'start': 2040, 'end': 2250, 'average': 0}, {'start': 3480, 'end': 3690, 'average': 0}]
2026-08-16 12:56:58.236830: Inverter 0 Charge settings: 08-16 10:00:00-08-16 13:30:00, limit 75.0%, power 5.0kW
2026-08-16 12:56:58.237014: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:56:58.237063: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:56:58.237110: Inverter 0 scheduled discharge enable is False
2026-08-16 12:56:58.237276: Inverter 0 idle time is 08-16 13:30:00-08-16 23:59:00
2026-08-16 12:56:58.237320: Inverter 0 discharge windows currently []
2026-08-16 12:56:58.237352: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:56:58.237375: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:56:58.237396: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:56:58.309153: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 75%, target 100%
2026-08-16 12:56:58.309356: Inverter 0 disabled charge window while waiting for schedule (now 08-16 12:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-16 10:00:00
2026-08-16 12:56:58.309469: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:56:58.309717: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 12:56:58.309812: Inverter 0 set new demand (idle) start time to 12:55:00 was 13:30:00
2026-08-16 12:57:03.317022: Inverter 0 write_and_poll_value: Wrote 12:55:00 to idle_start_time, successfully now 12:55:00
2026-08-16 12:57:08.326420: Inverter 0 Wrote scheduled_charge_enable to False successfully and got off
2026-08-16 12:57:08.326553: Inverter 0 Turning off scheduled charge
2026-08-16 12:57:08.326737: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:57:08.327013: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 12:57:13.336555: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_start_time, successfully now 00:00:00
2026-08-16 12:57:18.345544: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_end_time, successfully now 00:00:00
2026-08-16 12:57:18.345716: Inverter 0 Updated start and end charge window to 00:00:00 - 00:00:00 (old 10:00:00 - 13:30:00)
2026-08-16 12:57:18.345765: No export window planned
2026-08-16 12:57:18.345931: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 12:57:18.345997: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 12:57:18.346353: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 12:57:18.346531: Car charging from battery is off, next slot for car 0 is 08-16 12:55:00 - 08-16 13:00:00
2026-08-16 12:57:18.346617: Disabling battery discharge whilst car 0 is charging
2026-08-16 12:57:18.346738: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 12:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 12:57:18.346812: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 12:57:18.346866: Inverter 0 Current charge limit is 75% and new target is 7%
2026-08-16 12:57:23.369274: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-16 12:57:23.369573: 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-16 12:57:23.411762: 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-16 12:57:23.415681: 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-16 12:57:23.459698: 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-16 12:57:23.502934: 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-16 12:57:23.551286: 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-16 12:57:23.598926: 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-16 12:57:23.647288: 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-16 12:57:23.751420: 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-16 12:57:23.856922: 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-16 12:57:23.962353: 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-16 12:57:23.966586: 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-16 12:57:24.011278: 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-16 12:57:24.054932: 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-16 12:57:24.098881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.098981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099044: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 12:57:24.099145: Inverter 0 count register writes 1
2026-08-16 12:57:24.124612: Total inverter register writes now 835
2026-08-16 12:57:24.158907: Info: Completed run status Hold for car
2026-08-16 12:57:24.516887: Info: record_status Hold for car
2026-08-16 12:57:24.524365: Saved current settings to /config/predbat_config.json
2026-08-16 12:57:24.524841: Compare, best tariff: current metric 318.25p
2026-08-16 12:57:24.586822: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 12:57:38.234209: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 12:57:39.211297: Processing 1297 30-minute periods for power integration
2026-08-16 12:57:39.311094: ML Component: Car charging hold False, car energy reported load False
2026-08-16 12:57:39.406700: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 12:57:39.517961: ML Temperature data points: 48186
2026-08-16 12:57:39.792475: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 12:57:39.825505: ML Component: Data fetch completed, load data age 58.0 days, 16707 data points
2026-08-16 12:57:39.825679: ML Component: Starting fine-tune training (2h interval), model age is 2.8367659175 hours
2026-08-16 12:57:39.825724: ML Component: Doing training...
2026-08-16 12:57:39.838553: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 12:57:39.838768: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.0 days)
2026-08-16 12:57:39.878141: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 12:57:39.878364: ML Predictor: Starting initial training with 30 epochs
2026-08-16 12:57:40.522940: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 12:57:45.038001: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 12:57:45.092155: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0468) load(mean=0.0588 std=0.0470) pv(mean=0.0000 std=0.0100) temp(mean=19.5946 std=4.4768) import_rate(mean=17.2664 std=8.3944) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-16 12:57:55.832267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 12:57:55.832670: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:57:55.832814: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:57:55.833092: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 12:57:55.833229: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:57:55.833345: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:57:55.833459: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 12:58:14.168690: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0263 val_mae=0.0065 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 12:58:47.641171: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0264 val_mae=0.0065 kWh val_bias=+0.0034 kWh (+4.9%) combined=0.0040 kWh ema_combined=0.0037 kWh
2026-08-16 12:59:21.712361: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0187 val_mae=0.0040 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0025 kWh ema_combined=0.0034 kWh
2026-08-16 12:59:50.821138: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0178 val_mae=0.0047 kWh val_bias=-0.0016 kWh (-2.3%) combined=0.0032 kWh ema_combined=0.0033 kWh
2026-08-16 12:59:56.323639: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 12:59:56.324145: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 12:59:56.324289: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 12:59:56.324609: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 12:59:56.324739: Note: Inverter does not support discharge freeze - disabled
2026-08-16 12:59:56.324867: Note: Inverter does not support charge freeze - disabled
2026-08-16 12:59:56.324997: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:00:00.490593: --------------- PredBat - update at 2026-08-16 13:00:00+01:00 with clock skew 0 minutes, minutes now 780
2026-08-16 13:00:00.491329: Saved current settings to /config/predbat_config.json
2026-08-16 13:00:00.491491: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 7.0 minutes
2026-08-16 13:00:00.491590: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:00:00.491727: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:00:00.523539: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:00:00.523740: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:00:00.524140: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:00:00.525048: Cars 1 charging from battery False 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-16 13:00:00.525334: Predbat mode is set to Control charge & discharge
2026-08-16 13:00:00.967880: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:00:00.968194: Using load_power data to fill gaps in load_today data
2026-08-16 13:00:02.567321: Processing 721 30-minute periods for power integration
2026-08-16 13:00:03.117217: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:00:03.117540: Car charging hold False, threshold 6.0kWh
2026-08-16 13:00:03.117649: Current data so far today: load 6.9kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:00:03.136412: Cars: SoC: [16.994]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:00:03.137240: Standing charge is set to 46.63p
2026-08-16 13:00:03.241384: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.242063: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.242208: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.243131: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.243273: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.243475: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.243793: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.243969: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244057: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244130: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244209: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244284: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244356: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244497: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:00:03.244561: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:00:03.249540: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:00:03.250039: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:00:03.294541: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:00:03.294768: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:00:03.296396: High export rate found rates in range 99p to -99p
2026-08-16 13:00:03.342871: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:00:03.343380: Car 0 plan charging from 16.994kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:00:03.344159: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:00:03.376147: Battery level now 12.0kWh, -1hr ago 10.64kWh, at midnight 12.21kWh, battery value change in the last hour 9.35p, change today -1.43p, rate_forward 6.87p
2026-08-16 13:00:03.376705: Last hour: net energy 1.8kWh, import 1.8kWh, export 0.0kWh, car 0kWh, load 0.72kWh, net cost 28.31p, import 28.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:00:03.513421: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 273.46p, import 226.83p, export 0.0p, carbon 0.0kg
2026-08-16 13:00:03.513638: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:00:03.653097: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:00:03.683734: Today's load divergence 90.86%, in-day adjustment 87.49%, damping 0.95x, yesterday 82.97% today 91.32% blend 45.83%
2026-08-16 13:00:03.683861: Today's predicted so far 8.2kWh with 0.0kWh car/iBoost excluded, 5.96kWh import ignored, and 8.2kWh forecast extra.
2026-08-16 13:00:03.683911: Today's actual load so far 6.9kWh with 0.0kWh car/iBoost excluded, and 5.96kWh import ignored.
2026-08-16 13:00:03.753356: Octopus slots changed from [[{'start': '2026-08-16T12:22:24+01:00', 'end': '2026-08-16T12:35:53+01:00', 'charge_in_kwh': -1.6629444444444443, 'source': 'BOOST'}, {'start': '2026-08-16T12:37:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -32.436666666666675, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T04: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': -1.5635, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:37:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.836666666666667, 'source': 'SMART'}, {'start': '2026-08-16T13:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -18.5, 'source': 'SMART'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.8665, 'source': 'SMART'}]]
2026-08-16 13:00:03.754098: Sensor changes require a replan, will recompute the plan
2026-08-16 13:00:03.754392: Inverter 0: Type SK Sunsynk
2026-08-16 13:00:03.754461: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:00:03.754828: Reserve min: 7%, battery_min: 7%
2026-08-16 13:00:03.755050: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:00:03.755536: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -401W, load power 400W, PV Power 0W
2026-08-16 13:00:03.755865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:00:03.756061: Inverter 0 scheduled charge enable is False
2026-08-16 13:00:03.756116: Inverter 0 charge windows currently []
2026-08-16 13:00:03.756210: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:00:03.756443: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:00:03.756517: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:00:03.756661: Inverter 0 scheduled discharge enable is False
2026-08-16 13:00:03.756875: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:00:03.756923: Inverter 0 discharge windows currently []
2026-08-16 13:00:03.756972: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:00:03.757096: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:00:03.757132: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:00:03.887423: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:00:03.887688: Will recompute the plan as it is invalid
2026-08-16 13:00:03.887909: Recompute is saving previous plan...
2026-08-16 13:00:03.889239: Best charge window [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:00:03.889400: Best export window [  ]
2026-08-16 13:00:03.890347: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:00:03.893670: Load divergence over 8.0 hours mean 407.19W, min 253.2W, max 766.8W, std dev 103.8W, divergence 12.75%
2026-08-16 13:00:03.935455: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:00:03.935760: LoadML is_calculating True
2026-08-16 13:00:03.935917: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:00:03.967223: 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(0.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-16 13:00:03.968070: Optimise levels pass started at 2026-08-16 13:00:03
2026-08-16 13:00:03.968145: Optimise all windows, total charge 31 export 1
2026-08-16 13:00:09.537710: >> Region optimisation pass width 960 gives best_metric 452.31p, best_cost 454.66p, best_cycle 33.72kWh, best_import 22.65kWh
2026-08-16 13:00:15.453954: >> Region optimisation pass width 480 gives best_metric 452.31p, best_cost 454.66p, best_cycle 33.72kWh, best_import 22.65kWh
2026-08-16 13:00:18.845382: >> Region optimisation pass width 240 gives best_metric 452.31p, best_cost 454.66p, best_cycle 33.72kWh, best_import 22.65kWh
2026-08-16 13:00:21.159744: >> Region optimisation pass width 120 gives best_metric 452.31p, best_cost 454.66p, best_cycle 33.72kWh, best_import 22.65kWh
2026-08-16 13:00:21.160046: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 13:00:21.160185: Optimise levels pass ended at 2026-08-16 13:00:21, duration 17.2 seconds tried 125 combinations
2026-08-16 13:00:21.160245: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 452.31p, best_keep 0kWh, best_cycle 33.72kWh, best_carbon 0kg, best_import 22.65kWh
2026-08-16 13:00:21.184327: Starting detailed optimisation end_record 08-17 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, 7.0, 7.0, 7.0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:00:37.657164: Tweak plan optimisation started metric 372.91p, cost 378.62p
2026-08-16 13:00:38.475538: Tweak optimisation finished metric 372.91p, cost 378.62p, metric_keep 0kWh, cycle 23.57kWh, carbon 0kg, import 13.14kWh, changed 8 window(s)
2026-08-16 13:00:38.502734: Swap charge optimisation started metric 372.91p, cost 378.62p, min_improvement_swap 0.1p
2026-08-16 13:00:40.419261: Swap charge optimisation finished metric 372.91p, cost 378.62p
2026-08-16 13:00:40.649487: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 366.91p -> 366.64p, plan now metric 374.42p, cost 375.12p, cycle 24.03kWh, import 12.71kWh
2026-08-16 13:00:40.668548: Raw charge windows [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 44%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 44%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 44%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:00:40.669497: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 44%, 17-08 01:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:00:40.670045: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 44%, 17-08 01:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:00:40.670442: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 44%, 17-08 01:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:00:40.734423: Previous plan best metric is 372.91 (cost 378.65) and new plan best metric is 372.91 (cost 378.62)
2026-08-16 13:00:40.734831: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:00:40.735146: Plan valid is now true after recompute was False
2026-08-16 13:00:40.778972: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 675.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 28.66kWh, PV 0.0kWh
2026-08-16 13:00:41.023899: Battery has 18.0 hours left - now at 12.0kWh
2026-08-16 13:00:41.132398: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 746.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:00:00, load 29.7kWh, PV 0.0kWh
2026-08-16 13:00:41.268340: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 471.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.7kWh, PV 0.0kWh
2026-08-16 13:00:41.410799: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 422.16p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.66kWh, PV 0.0kWh
2026-08-16 13:00:41.410899: Saving plan best values to HA entities
2026-08-16 13:00:41.757242: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:00:41.767091: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:00:41.777017: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.54kWh, house 1.22kWh, export 0.0kWh, metric 422.16p, metric10 471.51p
2026-08-16 13:00:41.897992: Marginal costs baseline metric (no standing charge): 375.5238
2026-08-16 13:00:42.434050: Marginal energy costs matrix computed: min=8.0 max=20.7
2026-08-16 13:00:42.547469: Rate array import [{'start': 780, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 780, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:00:42.548270: - Your estimated bill for today is £3.07 and tomorrow is £1.39
2026-08-16 13:00:42.548325: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:00:42.548384: - The battery is currently at 75% and is in eco mode for the next 10 hours.
2026-08-16 13:00:42.548425: - For the next 48 hours there will be no solar generation.
2026-08-16 13:00:42.549012: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:00:42.549072: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:00:42.549104: 
2026-08-16 13:00:42.599610: Plan calculation took 38.71 seconds
2026-08-16 13:00:42.669676: Saved plan to storage
2026-08-16 13:00:42.673217: No high rate period found
2026-08-16 13:00:42.752371: Import threshold used for optimisation was 8.0p
2026-08-16 13:00:42.844096: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:00:42.888618: Inverter 0: Type SK Sunsynk
2026-08-16 13:00:42.888742: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:00:42.889041: Reserve min: 7%, battery_min: 7%
2026-08-16 13:00:42.889141: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:00:42.889462: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 0W, current battery power -12W, current battery voltage 51.2V, grid power -353W, load power 353W, PV Power 0W
2026-08-16 13:00:42.889653: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:00:42.889783: Inverter 0 scheduled charge enable is False
2026-08-16 13:00:42.889832: Inverter 0 charge windows currently []
2026-08-16 13:00:42.889872: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:00:42.890012: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:00:42.890053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:00:42.890099: Inverter 0 scheduled discharge enable is False
2026-08-16 13:00:42.890252: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:00:42.890346: Inverter 0 discharge windows currently []
2026-08-16 13:00:42.890433: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:00:42.890464: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:00:42.890499: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:00:42.981508: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 75%, target 100%
2026-08-16 13:00:42.981703: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:00:42.981780: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:00:42.982018: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:00:42.982112: No export window planned
2026-08-16 13:00:42.982258: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:00:42.982305: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:00:42.982476: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:00:42.982616: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-16 13:00:47.959503: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0138 val_mae=0.0039 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0021 kWh ema_combined=0.0029 kWh
2026-08-16 13:00:47.992297: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-16 13:00:53.109038: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-16 13:00:53.109300: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:00:53.109395: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:00:53.109548: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:00:53.109679: 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-16 13:00:53.203188: 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-16 13:00:53.272853: 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-16 13:00:53.386439: 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-16 13:00:53.502167: 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-16 13:00:53.605925: 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-16 13:00:53.713387: 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-16 13:00:53.827476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.827601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.827811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.827984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.828150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.828314: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.828455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:00:53.828596: Inverter 0 count register writes 1
2026-08-16 13:00:53.865033: Total inverter register writes now 836
2026-08-16 13:00:53.916249: Info: Completed run status Demand
2026-08-16 13:00:54.200254: Info: record_status Demand
2026-08-16 13:00:54.211101: Saved current settings to /config/predbat_config.json
2026-08-16 13:00:54.211462: Compare, best tariff: current metric 318.25p
2026-08-16 13:01:19.514328: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0136 val_mae=0.0040 kWh val_bias=+0.0010 kWh (+1.4%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-16 13:01:26.432550: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:01:26.433584: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:01:26.433661: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:01:26.433862: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:01:26.433916: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:01:26.433945: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:01:26.433979: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:01:52.131987: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0122 val_mae=0.0038 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0025 kWh
2026-08-16 13:02:25.195364: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0124 val_mae=0.0031 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 13:02:57.274069: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0114 val_mae=0.0031 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-16 13:03:27.531318: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0121 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-16 13:03:41.069703: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:03:41.070321: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:03:41.070494: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:03:41.070810: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:03:41.070965: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:03:41.071131: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:03:41.071282: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:03:58.029129: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0097 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-16 13:04:29.019270: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0095 val_mae=0.0034 kWh val_bias=-0.0017 kWh (-2.4%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-16 13:05:00.556441: --------------- PredBat - update at 2026-08-16 13:05:00+01:00 with clock skew 0 minutes, minutes now 785
2026-08-16 13:05:00.558165: Saved current settings to /config/predbat_config.json
2026-08-16 13:05:00.558418: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 12.0 minutes
2026-08-16 13:05:00.558603: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:05:00.558822: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:05:00.592372: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:05:00.592531: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:05:00.592743: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:05:00.593418: Cars 1 charging from battery False 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-16 13:05:00.593573: Predbat mode is set to Control charge & discharge
2026-08-16 13:05:00.967128: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:05:00.967411: Using load_power data to fill gaps in load_today data
2026-08-16 13:05:02.453036: Processing 721 30-minute periods for power integration
2026-08-16 13:05:02.815795: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:05:02.816239: Car charging hold False, threshold 6.0kWh
2026-08-16 13:05:02.816345: Current data so far today: load 7.0kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:05:02.837866: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:05:02.840088: Standing charge is set to 46.63p
2026-08-16 13:05:03.136880: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.137706: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.138176: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.138445: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.138638: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.138851: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.139193: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.139479: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.139646: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.139799: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.139962: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.140178: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.140388: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.140737: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:05:03.143905: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:05:03.151327: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:05:03.152049: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:05:03.229949: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:05:03.230129: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:05:03.232197: High export rate found rates in range 99p to -99p
2026-08-16 13:05:03.271177: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:05:03.271473: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:05:03.272206: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:05:03.296548: Battery level now 12.0kWh, -1hr ago 10.98kWh, at midnight 12.21kWh, battery value change in the last hour 6.98p, change today -1.43p, rate_forward 6.87p
2026-08-16 13:05:03.297101: Last hour: net energy 1.5kWh, import 1.5kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 18.18p, import 18.18p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:05:03.395354: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 273.46p, import 226.83p, export 0.0p, carbon 0.0kg
2026-08-16 13:05:03.395525: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:05:03.545321: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:05:03.601386: Today's load divergence 91.1%, in-day adjustment 87.65%, damping 0.95x, yesterday 82.97% today 91.55% blend 45.49%
2026-08-16 13:05:03.601533: Today's predicted so far 8.32kWh with 0.0kWh car/iBoost excluded, 5.96kWh import ignored, and 8.32kWh forecast extra.
2026-08-16 13:05:03.601576: Today's actual load so far 7.05kWh with 0.0kWh car/iBoost excluded, and 5.96kWh import ignored.
2026-08-16 13:05:03.677083: Inverter 0: Type SK Sunsynk
2026-08-16 13:05:03.677203: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:05:03.677424: Reserve min: 7%, battery_min: 7%
2026-08-16 13:05:03.677515: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:05:03.677829: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 491W, current battery voltage 51.2V, grid power -57W, load power 555W, PV Power 0W
2026-08-16 13:05:03.678012: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:05:03.678137: Inverter 0 scheduled charge enable is False
2026-08-16 13:05:03.678185: Inverter 0 charge windows currently []
2026-08-16 13:05:03.678219: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:05:03.678476: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:05:03.678531: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:05:03.678676: Inverter 0 scheduled discharge enable is False
2026-08-16 13:05:03.678965: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:05:03.679088: Inverter 0 discharge windows currently []
2026-08-16 13:05:03.679237: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:05:03.679331: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:05:03.679438: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:05:03.854983: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:05:03.855316: Plan was last updated on 2026-08-16 13:00:00+01:00 and is now 5.0 minutes old
2026-08-16 13:05:03.855700: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:05:03.855889: Best export window [  ]
2026-08-16 13:05:03.857260: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:05:03.862155: Load divergence over 8.0 hours mean 408.86W, min 261.0W, max 799.8W, std dev 107.09W, divergence 13.1%
2026-08-16 13:05:03.899344: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:05:03.899525: LoadML is_calculating True
2026-08-16 13:05:03.899575: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:05:03.951209: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 675.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:10:00, load 28.83kWh, PV 0.0kWh
2026-08-16 13:05:04.147942: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-16 13:05:04.168709: Battery has 18.08 hours left - now at 12.0kWh
2026-08-16 13:05:04.305410: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 744.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.87kWh, PV 0.0kWh
2026-08-16 13:05:04.577800: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 473.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.87kWh, PV 0.0kWh
2026-08-16 13:05:04.788248: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 426.0p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.83kWh, PV 0.0kWh
2026-08-16 13:05:04.788355: Saving plan best values to HA entities
2026-08-16 13:05:05.205221: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:05:05.239252: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:05:05.258265: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.0kWh, house 1.23kWh, export 0.0kWh, metric 426.0p, metric10 473.56p
2026-08-16 13:05:05.456762: Marginal costs baseline metric (no standing charge): 379.3621
2026-08-16 13:05:06.178323: Marginal energy costs matrix computed: min=8.0 max=20.75
2026-08-16 13:05:06.318780: Rate array import [{'start': 785, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 13:05:06.319508: - Your estimated bill for today is £3.07 and tomorrow is £1.39
2026-08-16 13:05:06.319682: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:05:06.319793: - The battery is currently at 75% and is in eco mode for the next 10 hours.
2026-08-16 13:05:06.319895: - For the next 48 hours there will be no solar generation.
2026-08-16 13:05:06.319984: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:05:06.320076: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:05:06.320168: 
2026-08-16 13:05:06.371245: Plan calculation took 2.52 seconds
2026-08-16 13:05:06.375045: No high rate period found
2026-08-16 13:05:06.511321: Import threshold used for optimisation was 8.0p
2026-08-16 13:05:06.675175: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:05:06.693810: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 75%, target 100%
2026-08-16 13:05:06.694179: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:05:06.694845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:05:06.698508: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:05:06.698765: No export window planned
2026-08-16 13:05:06.699096: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:05:06.699191: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:05:06.699606: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:05:06.700079: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:05:06.700201: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:05:06.700298: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:05:06.700431: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.700493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.700579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.700639: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.700701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.700874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.701086: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.701384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.701618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.701724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.701891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.702009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.702138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.702215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:05:06.702244: Inverter 0 count register writes 0
2026-08-16 13:05:06.735975: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 13:05:06.747066: Total inverter register writes now 836
2026-08-16 13:05:06.819588: Info: Completed run status Demand
2026-08-16 13:05:06.835714: Info: record_status Demand
2026-08-16 13:05:06.851294: Saved current settings to /config/predbat_config.json
2026-08-16 13:05:06.851753: Compare, best tariff: current metric 318.25p
2026-08-16 13:05:38.799672: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0082 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-16 13:05:40.998226: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:05:40.998741: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:05:40.998912: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:05:40.999315: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:05:40.999477: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:05:40.999612: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:05:40.999748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:06:12.008930: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0089 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-16 13:06:44.683913: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0076 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 13:07:18.095172: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0070 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 13:07:41.485316: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:07:41.485769: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:07:41.485833: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:07:41.486648: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:07:41.486819: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:07:41.487065: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:07:41.487127: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:07:51.364214: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0071 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 13:08:23.268530: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0069 val_mae=0.0026 kWh val_bias=-0.0008 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-16 13:08:54.280041: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0070 val_mae=0.0021 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 13:09:26.355429: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0061 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 13:09:56.115740: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:09:56.116032: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:09:56.116171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:09:56.116406: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:09:56.116473: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:09:56.116501: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:09:56.116600: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:09:57.549448: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0062 val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 13:10:00.269978: --------------- PredBat - update at 2026-08-16 13:10:00+01:00 with clock skew 0 minutes, minutes now 790
2026-08-16 13:10:00.270903: Saved current settings to /config/predbat_config.json
2026-08-16 13:10:00.271030: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 17.0 minutes
2026-08-16 13:10:00.271119: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:10:00.271204: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:10:00.303724: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:10:00.304150: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:10:00.304510: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:10:00.305293: Cars 1 charging from battery False 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-16 13:10:00.305562: Predbat mode is set to Control charge & discharge
2026-08-16 13:10:00.841100: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:10:00.853115: Using load_power data to fill gaps in load_today data
2026-08-16 13:10:02.331004: Processing 721 30-minute periods for power integration
2026-08-16 13:10:02.639985: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:10:02.640157: Car charging hold False, threshold 6.0kWh
2026-08-16 13:10:02.640211: Current data so far today: load 6.8kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:10:02.726317: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:10:02.727770: Standing charge is set to 46.63p
2026-08-16 13:10:02.900366: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.900761: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.900994: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.901364: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.901544: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.901686: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.902012: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.902297: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.902485: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.902730: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.902872: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.903018: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.903149: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.903419: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:10:02.903524: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:10:02.908259: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:10:02.908685: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:10:02.951604: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:10:02.951727: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:10:02.952753: High export rate found rates in range 99p to -99p
2026-08-16 13:10:02.991731: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:10:02.992102: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:10:02.992691: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:10:03.018048: Battery level now 12.0kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour 5.5p, change today -1.43p, rate_forward 6.87p
2026-08-16 13:10:03.018377: Last hour: net energy 1.55kWh, import 1.55kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 18.84p, import 18.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:10:03.104416: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:10:03.104652: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:10:03.263987: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:10:03.370499: Today's load divergence 89.43%, in-day adjustment 86.8%, damping 0.95x, yesterday 82.97% today 89.96% blend 45.14%
2026-08-16 13:10:03.371022: Today's predicted so far 8.32kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 8.32kWh forecast extra.
2026-08-16 13:10:03.371174: Today's actual load so far 6.84kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 13:10:03.456798: Inverter 0: Type SK Sunsynk
2026-08-16 13:10:03.463134: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:10:03.463629: Reserve min: 7%, battery_min: 7%
2026-08-16 13:10:03.463905: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:10:03.464465: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 347W, current battery voltage 51.2V, grid power -54W, load power 413W, PV Power 0W
2026-08-16 13:10:03.465849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:10:03.466140: Inverter 0 scheduled charge enable is False
2026-08-16 13:10:03.466300: Inverter 0 charge windows currently []
2026-08-16 13:10:03.466468: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:10:03.466814: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:10:03.466955: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:10:03.467134: Inverter 0 scheduled discharge enable is False
2026-08-16 13:10:03.467850: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:10:03.468027: Inverter 0 discharge windows currently []
2026-08-16 13:10:03.468166: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:10:03.468301: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:10:03.468459: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:10:03.669628: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:10:03.669777: Plan was last updated on 2026-08-16 13:00:00+01:00 and is now 10.0 minutes old
2026-08-16 13:10:03.670010: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:10:03.670061: Best export window [  ]
2026-08-16 13:10:03.671189: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:10:03.675505: Load divergence over 8.0 hours mean 408.96W, min 250.2W, max 797.4W, std dev 109.28W, divergence 13.36%
2026-08-16 13:10:03.697155: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:10:03.697514: LoadML is_calculating True
2026-08-16 13:10:03.697668: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:10:03.739639: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 674.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.63kWh, PV 0.0kWh
2026-08-16 13:10:03.943043: Battery has 18.25 hours left - now at 12.0kWh
2026-08-16 13:10:04.020230: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 742.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:20:00, load 29.67kWh, PV 0.0kWh
2026-08-16 13:10:04.186185: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 476.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.67kWh, PV 0.0kWh
2026-08-16 13:10:04.555500: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 431.27p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.63kWh, PV 0.0kWh
2026-08-16 13:10:04.555620: Saving plan best values to HA entities
2026-08-16 13:10:04.991354: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:10:05.002405: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:10:05.010153: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.42kWh, house 1.22kWh, export 0.0kWh, metric 431.27p, metric10 476.78p
2026-08-16 13:10:05.179906: Marginal costs baseline metric (no standing charge): 384.6345
2026-08-16 13:10:05.915690: Marginal energy costs matrix computed: min=8.0 max=20.74
2026-08-16 13:10:06.168055: Rate array import [{'start': 790, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 13:10:06.169319: - Your estimated bill for today is £3.09 and tomorrow is £1.38
2026-08-16 13:10:06.169394: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:10:06.169450: - The battery is currently at 75% and is in eco mode for the next 10 hours.
2026-08-16 13:10:06.169488: - For the next 48 hours there will be no solar generation.
2026-08-16 13:10:06.169532: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:10:06.169574: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:10:06.169807: 
2026-08-16 13:10:06.266051: Plan calculation took 2.60 seconds
2026-08-16 13:10:06.271365: No high rate period found
2026-08-16 13:10:06.379353: Import threshold used for optimisation was 8.0p
2026-08-16 13:10:06.599253: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:10:06.611111: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 75%, target 100%
2026-08-16 13:10:06.612011: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:10:06.612231: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:10:06.612597: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:10:06.612797: No export window planned
2026-08-16 13:10:06.613114: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:10:06.613247: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:10:06.613544: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:10:06.613843: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:10:06.613996: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:10:06.614166: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:10:06.614443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.614571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.614714: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.614825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.614963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.615072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.615207: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.615392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.615550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:06.616896: Inverter 0 count register writes 0
2026-08-16 13:10:06.644770: 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-16 13:10:06.645190: Recompute is saving previous plan...
2026-08-16 13:10:06.646607: Best charge window [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:10:06.646777: Best export window [  ]
2026-08-16 13:10:06.647801: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:10:06.651079: Load divergence over 8.0 hours mean 408.96W, min 250.2W, max 797.4W, std dev 109.28W, divergence 13.36%
2026-08-16 13:10:06.669071: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:10:06.669362: LoadML is_calculating True
2026-08-16 13:10:06.669600: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:10:06.682207: 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(0.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-16 13:10:06.682854: Optimise levels pass started at 2026-08-16 13:10:06
2026-08-16 13:10:06.683004: Optimise all windows, total charge 31 export 1
2026-08-16 13:10:11.692302: >> Region optimisation pass width 960 gives best_metric 453.72p, best_cost 457.4p, best_cycle 33.79kWh, best_import 22.73kWh
2026-08-16 13:10:12.101011: >> Region optimisation pass width 480 gives best_metric 453.72p, best_cost 457.4p, best_cycle 33.79kWh, best_import 22.73kWh
2026-08-16 13:10:12.816471: >> Region optimisation pass width 240 gives best_metric 453.72p, best_cost 457.4p, best_cycle 33.79kWh, best_import 22.73kWh
2026-08-16 13:10:14.616002: >> Region optimisation pass width 120 gives best_metric 453.72p, best_cost 457.4p, best_cycle 33.79kWh, best_import 22.73kWh
2026-08-16 13:10:14.616255: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 13:10:14.616332: Optimise levels pass ended at 2026-08-16 13:10:14, duration 7.9 seconds tried 82 combinations
2026-08-16 13:10:14.616397: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 453.72p, best_keep 0kWh, best_cycle 33.79kWh, best_carbon 0kg, best_import 22.73kWh
2026-08-16 13:10:14.667818: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:10:32.484875: Tweak plan optimisation started metric 373.17p, cost 379.3p
2026-08-16 13:10:33.309671: Tweak optimisation finished metric 373.17p, cost 379.3p, metric_keep 0kWh, cycle 23.26kWh, carbon 0kg, import 12.97kWh, changed 8 window(s)
2026-08-16 13:10:33.333044: Swap charge optimisation started metric 373.17p, cost 379.3p, min_improvement_swap 0.1p
2026-08-16 13:10:34.870625: Swap charge optimisation finished metric 373.17p, cost 379.3p
2026-08-16 13:10:35.088760: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 367.6p -> 367.33p, plan now metric 374.66p, cost 375.86p, cycle 23.71kWh, import 12.54kWh
2026-08-16 13:10:35.137149: Raw charge windows [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:10:35.137631: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:10:35.137942: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:10:35.138147: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:10:35.221061: Previous plan best metric is 373.17 (cost 379.32) and new plan best metric is 373.17 (cost 379.3)
2026-08-16 13:10:35.245154: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:10:35.245425: Plan valid is now true after recompute was False
2026-08-16 13:10:35.298374: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 672.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.41kWh, PV 0.0kWh
2026-08-16 13:10:35.590666: Battery has 18.25 hours left - now at 12.0kWh
2026-08-16 13:10:35.663779: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 740.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:20:00, load 29.44kWh, PV 0.0kWh
2026-08-16 13:10:35.762303: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 469.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.44kWh, PV 0.0kWh
2026-08-16 13:10:35.929702: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 422.85p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.41kWh, PV 0.0kWh
2026-08-16 13:10:35.929904: Saving plan best values to HA entities
2026-08-16 13:10:36.333230: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:10:36.342356: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:10:36.353435: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.37kWh, house 1.22kWh, export 0.0kWh, metric 422.85p, metric10 469.39p
2026-08-16 13:10:36.530068: Marginal costs baseline metric (no standing charge): 376.2126
2026-08-16 13:10:37.068557: Marginal energy costs matrix computed: min=8.0 max=20.74
2026-08-16 13:10:37.219487: Rate array import [{'start': 790, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 790, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:10:37.234048: - Your estimated bill for today is £3.09 and tomorrow is £1.38
2026-08-16 13:10:37.234153: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:10:37.234185: - The battery is currently at 75% and is in eco mode for the next 10 hours.
2026-08-16 13:10:37.234212: - For the next 48 hours there will be no solar generation.
2026-08-16 13:10:37.234238: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:10:37.234271: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:10:37.234300: 
2026-08-16 13:10:37.324849: Plan calculation took 30.68 seconds
2026-08-16 13:10:37.325173: Inverter 0: Type SK Sunsynk
2026-08-16 13:10:37.325233: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:10:37.325444: Reserve min: 7%, battery_min: 7%
2026-08-16 13:10:37.325547: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:10:37.325846: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 349W, current battery voltage 51.2V, grid power -55W, load power 416W, PV Power 0W
2026-08-16 13:10:37.334821: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:10:37.335062: Inverter 0 scheduled charge enable is False
2026-08-16 13:10:37.335123: Inverter 0 charge windows currently []
2026-08-16 13:10:37.335222: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:10:37.335463: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:10:37.335515: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:10:37.335570: Inverter 0 scheduled discharge enable is False
2026-08-16 13:10:37.336339: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:10:37.336400: Inverter 0 discharge windows currently []
2026-08-16 13:10:37.336431: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:10:37.336468: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:10:37.336562: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:10:37.505548: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 74%, target 100%
2026-08-16 13:10:37.505850: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:10:37.505948: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:10:37.506183: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:10:37.506272: No export window planned
2026-08-16 13:10:37.506401: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:10:37.506446: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:10:37.506779: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:10:37.506986: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:10:37.507053: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:10:37.507118: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:10:37.507219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.507832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:10:37.508019: Inverter 0 count register writes 0
2026-08-16 13:10:37.556413: Total inverter register writes now 836
2026-08-16 13:10:37.641377: Info: Completed run status Demand
2026-08-16 13:10:37.650561: Info: record_status Demand
2026-08-16 13:10:37.662152: Saved current settings to /config/predbat_config.json
2026-08-16 13:10:37.662508: Compare, best tariff: current metric 318.25p
2026-08-16 13:10:48.518244: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0065 val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-16 13:11:10.849732: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:11:10.850278: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:11:10.850452: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:11:10.850839: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:11:10.851001: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:11:10.851137: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:11:10.851269: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:11:19.307449: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0060 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-16 13:11:52.477998: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 13:12:23.556639: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0059 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 13:12:57.664345: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0062 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-16 13:13:11.426322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:13:11.426758: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:13:11.427001: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:13:11.427451: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:13:11.427658: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:13:11.427773: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:13:11.427940: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:13:30.620363: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0057 val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-16 13:14:02.952140: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0020 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0013 kWh
2026-08-16 13:14:38.311635: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0059 val_mae=0.0018 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-16 13:14:38.313224: ML Predictor: Restored best weights from epoch with val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 13:14:38.313485: ML Predictor: Training complete, final val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 13:14:44.823526: ML Predictor: AR rollout over holdout: ar_mae=0.0019 kWh ar_bias=-0.0002 kWh (-0.3%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 13:14:44.828851: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0018 kWh
2026-08-16 13:14:44.902558: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-16 13:14:44.902871: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 13:14:45.581389: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 13:14:51.089253: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 13:14:51.149731: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0588 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.6075 std=4.4875) import_rate(mean=17.2495 std=8.3959) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1891 std=0.5259)
2026-08-16 13:14:51.252166: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 13:14:51.269516: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 13:14:51.317754: ML Predictor: Baseline (pre-finetune) val_mae=0.0042 kWh val_bias=-0.0009 kWh
2026-08-16 13:15:00.620192: --------------- PredBat - update at 2026-08-16 13:15:00+01:00 with clock skew 0 minutes, minutes now 795
2026-08-16 13:15:00.621250: Saved current settings to /config/predbat_config.json
2026-08-16 13:15:00.621397: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 22.0 minutes
2026-08-16 13:15:00.621488: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:15:00.621734: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:15:00.664351: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:15:00.664702: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:15:00.665121: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:15:00.665934: Cars 1 charging from battery False 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-16 13:15:00.666208: Predbat mode is set to Control charge & discharge
2026-08-16 13:15:01.156025: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:15:01.157064: Using load_power data to fill gaps in load_today data
2026-08-16 13:15:02.533748: Processing 721 30-minute periods for power integration
2026-08-16 13:15:02.821017: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:15:02.827622: Car charging hold False, threshold 6.0kWh
2026-08-16 13:15:02.831189: Current data so far today: load 6.8kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:15:02.901186: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:15:02.903654: Standing charge is set to 46.63p
2026-08-16 13:15:03.102484: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.102902: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.103383: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.103518: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.103659: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.103784: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.104001: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.104224: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.104354: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.104472: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.104589: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.105028: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.105128: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.105303: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:15:03.105362: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:15:03.109842: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:15:03.110103: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:15:03.176025: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:15:03.181112: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:15:03.183192: High export rate found rates in range 99p to -99p
2026-08-16 13:15:03.251357: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:15:03.252093: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:15:03.252979: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:15:03.357982: Battery level now 12.0kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour 5.5p, change today -1.43p, rate_forward 6.87p
2026-08-16 13:15:03.358872: Last hour: net energy 1.5kWh, import 1.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 17.15p, import 17.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:15:03.608693: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:15:03.608869: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:15:03.767945: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:15:03.807655: Today's load divergence 88.74%, in-day adjustment 86.47%, damping 0.95x, yesterday 82.97% today 89.3% blend 44.79%
2026-08-16 13:15:03.808331: Today's predicted so far 8.33kWh with 0.0kWh car/iBoost excluded, 6.14kWh import ignored, and 8.33kWh forecast extra.
2026-08-16 13:15:03.808437: Today's actual load so far 6.76kWh with 0.0kWh car/iBoost excluded, and 6.14kWh import ignored.
2026-08-16 13:15:03.992109: Inverter 0: Type SK Sunsynk
2026-08-16 13:15:03.992217: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:15:03.992444: Reserve min: 7%, battery_min: 7%
2026-08-16 13:15:03.992534: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:15:03.992877: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 358W, current battery voltage 51.2V, grid power -55W, load power 423W, PV Power 0W
2026-08-16 13:15:03.993111: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:15:03.993238: Inverter 0 scheduled charge enable is False
2026-08-16 13:15:03.993286: Inverter 0 charge windows currently []
2026-08-16 13:15:03.993331: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:15:03.993482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:15:03.993531: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:15:03.993588: Inverter 0 scheduled discharge enable is False
2026-08-16 13:15:03.993792: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:15:03.993844: Inverter 0 discharge windows currently []
2026-08-16 13:15:03.993875: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:15:03.993900: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:15:03.993931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:15:04.188077: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:15:04.188311: Plan was last updated on 2026-08-16 13:10:00+01:00 and is now 5.0 minutes old
2026-08-16 13:15:04.188667: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:15:04.188807: Best export window [  ]
2026-08-16 13:15:04.190041: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:15:04.193302: Load divergence over 8.0 hours mean 409.26W, min 247.2W, max 816.0W, std dev 113.6W, divergence 13.88%
2026-08-16 13:15:04.212432: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:15:04.212710: LoadML is_calculating True
2026-08-16 13:15:04.212830: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:15:04.269604: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 676.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.45kWh, PV 0.0kWh
2026-08-16 13:15:04.636427: Battery has 18.0 hours left - now at 11.84kWh
2026-08-16 13:15:04.721061: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 742.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.48kWh, PV 0.0kWh
2026-08-16 13:15:04.924136: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 472.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.48kWh, PV 0.0kWh
2026-08-16 13:15:05.091514: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 427.74p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.45kWh, PV 0.0kWh
2026-08-16 13:15:05.091750: Saving plan best values to HA entities
2026-08-16 13:15:05.356581: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:15:05.364183: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:15:05.371436: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.98kWh, house 1.21kWh, export 0.0kWh, metric 427.74p, metric10 472.53p
2026-08-16 13:15:05.553670: Marginal costs baseline metric (no standing charge): 381.1057
2026-08-16 13:15:05.956785: Marginal energy costs matrix computed: min=8.0 max=20.75
2026-08-16 13:15:06.187562: Rate array import [{'start': 795, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 13:15:06.189717: - Your estimated bill for today is £3.09 and tomorrow is £1.39
2026-08-16 13:15:06.189881: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:15:06.190025: - The battery is currently at 74% and is in eco mode for the next 10 hours.
2026-08-16 13:15:06.190160: - For the next 48 hours there will be no solar generation.
2026-08-16 13:15:06.190286: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:15:06.190408: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:15:06.190531: 
2026-08-16 13:15:06.239895: Plan calculation took 2.05 seconds
2026-08-16 13:15:06.243577: No high rate period found
2026-08-16 13:15:06.360442: Import threshold used for optimisation was 8.0p
2026-08-16 13:15:06.477905: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:15:06.518230: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 74%, target 100%
2026-08-16 13:15:06.518475: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:15:06.518601: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:15:06.518918: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:15:06.519091: No export window planned
2026-08-16 13:15:06.519261: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:15:06.519333: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:15:06.519613: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:15:06.519933: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:15:06.520032: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:15:06.520122: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:15:06.520266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520526: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520562: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520597: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.520922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:15:06.521051: Inverter 0 count register writes 0
2026-08-16 13:15:06.595666: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 13:15:06.604290: Total inverter register writes now 836
2026-08-16 13:15:06.689823: Info: Completed run status Demand
2026-08-16 13:15:06.701495: Info: record_status Demand
2026-08-16 13:15:06.714456: Saved current settings to /config/predbat_config.json
2026-08-16 13:15:06.714744: Compare, best tariff: current metric 318.25p
2026-08-16 13:15:28.772268: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0051 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-16 13:15:40.899362: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:15:40.900182: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:15:40.900402: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:15:40.900751: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:15:40.900912: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:15:40.901108: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:15:40.901241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:16:03.800466: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0119 val_mae=0.0066 kWh val_bias=-0.0039 kWh (-4.4%) combined=0.0055 kWh ema_combined=0.0036 kWh
2026-08-16 13:16:35.727428: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0159 val_mae=0.0056 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 13:17:08.512325: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0156 val_mae=0.0053 kWh val_bias=-0.0019 kWh (-2.1%) combined=0.0032 kWh ema_combined=0.0035 kWh
2026-08-16 13:17:41.208580: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0140 val_mae=0.0046 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 13:17:41.398072: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:17:41.398362: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:17:41.398411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:17:41.398573: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:17:41.398622: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:17:41.398659: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:17:41.398687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:18:15.327651: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0104 val_mae=0.0050 kWh val_bias=-0.0025 kWh (-2.9%) combined=0.0039 kWh ema_combined=0.0034 kWh
2026-08-16 13:18:49.723935: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0101 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0030 kWh
2026-08-16 13:19:20.949122: Update event install {'domain': 'update', 'service': 'install', 'service_data': {'entity_id': ['update.browser_mod_update', 'update.midea_ac_lan_update', 'update.multiple_entity_row_update', 'update.tuya_local_update', 'update.vehicle_status_card_update']}} None
2026-08-16 13:19:25.072154: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0090 val_mae=0.0044 kWh val_bias=+0.0013 kWh (+1.4%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-16 13:19:55.946345: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:19:55.946811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:19:55.946878: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:19:55.947505: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:19:55.947572: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:19:55.947662: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:19:55.947736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:19:57.320260: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0138 val_mae=0.0039 kWh val_bias=+0.0015 kWh (+1.7%) combined=0.0032 kWh ema_combined=0.0031 kWh
2026-08-16 13:20:00.177280: --------------- PredBat - update at 2026-08-16 13:20:00+01:00 with clock skew 0 minutes, minutes now 800
2026-08-16 13:20:00.178298: Saved current settings to /config/predbat_config.json
2026-08-16 13:20:00.178512: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 27.0 minutes
2026-08-16 13:20:00.178610: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:20:00.178874: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:20:00.234002: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:20:00.236639: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:20:00.237090: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:20:00.238021: Cars 1 charging from battery False 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-16 13:20:00.238292: Predbat mode is set to Control charge & discharge
2026-08-16 13:20:00.763120: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:20:00.763341: Using load_power data to fill gaps in load_today data
2026-08-16 13:20:02.025830: Processing 721 30-minute periods for power integration
2026-08-16 13:20:02.367179: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:20:02.367305: Car charging hold False, threshold 6.0kWh
2026-08-16 13:20:02.367353: Current data so far today: load 6.93kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:20:02.387592: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:20:02.390907: Standing charge is set to 46.63p
2026-08-16 13:20:02.662685: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.663161: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.663431: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.663634: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.663881: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.664940: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.665292: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.665632: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.666020: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.666229: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.666443: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.666635: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.666850: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.667174: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:20:02.667330: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:20:02.673263: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:20:02.673743: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:20:02.734515: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:20:02.734867: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:20:02.736750: High export rate found rates in range 99p to -99p
2026-08-16 13:20:02.806197: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:20:02.816187: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:20:02.817391: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:20:02.851564: Battery level now 11.84kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour 5.5p, change today -2.53p, rate_forward 6.87p
2026-08-16 13:20:02.852260: Last hour: net energy 1.45kWh, import 1.45kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 15.46p, import 15.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:20:02.999897: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:20:03.000136: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:20:03.145618: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:20:03.217159: Today's load divergence 89.26%, in-day adjustment 86.76%, damping 0.95x, yesterday 82.97% today 89.8% blend 44.44%
2026-08-16 13:20:03.217269: Today's predicted so far 8.38kWh with 0.0kWh car/iBoost excluded, 6.08kWh import ignored, and 8.38kWh forecast extra.
2026-08-16 13:20:03.217298: Today's actual load so far 6.88kWh with 0.0kWh car/iBoost excluded, and 6.08kWh import ignored.
2026-08-16 13:20:03.297755: Inverter 0: Type SK Sunsynk
2026-08-16 13:20:03.297987: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:20:03.299031: Reserve min: 7%, battery_min: 7%
2026-08-16 13:20:03.299182: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:20:03.299509: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 342W, current battery voltage 51.2V, grid power -54W, load power 408W, PV Power 0W
2026-08-16 13:20:03.299727: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:20:03.321340: Inverter 0 scheduled charge enable is False
2026-08-16 13:20:03.321478: Inverter 0 charge windows currently []
2026-08-16 13:20:03.321602: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:20:03.321933: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:20:03.322063: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:20:03.322186: Inverter 0 scheduled discharge enable is False
2026-08-16 13:20:03.322428: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:20:03.322553: Inverter 0 discharge windows currently []
2026-08-16 13:20:03.322652: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:20:03.322744: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:20:03.322851: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:20:03.552823: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:20:03.553022: Plan was last updated on 2026-08-16 13:10:00+01:00 and is now 10.0 minutes old
2026-08-16 13:20:03.553374: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:20:03.553452: Best export window [  ]
2026-08-16 13:20:03.556124: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:20:03.563417: Load divergence over 8.0 hours mean 409.22W, min 244.2W, max 845.4W, std dev 108.15W, divergence 13.21%
2026-08-16 13:20:03.612502: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:20:03.612668: LoadML is_calculating True
2026-08-16 13:20:03.612725: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:20:03.712705: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 675.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 28.62kWh, PV 0.0kWh
2026-08-16 13:20:03.978117: Battery has 18.0 hours left - now at 11.84kWh
2026-08-16 13:20:04.075016: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 740.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:20:00, load 29.65kWh, PV 0.0kWh
2026-08-16 13:20:04.262227: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 474.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.65kWh, PV 0.0kWh
2026-08-16 13:20:04.432145: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 431.47p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.62kWh, PV 0.0kWh
2026-08-16 13:20:04.432268: Saving plan best values to HA entities
2026-08-16 13:20:04.965552: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 13:20:04.975757: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 13:20:04.985014: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.45kWh, house 1.21kWh, export 0.0kWh, metric 431.47p, metric10 474.13p
2026-08-16 13:20:05.141704: Marginal costs baseline metric (no standing charge): 384.8385
2026-08-16 13:20:05.679183: Marginal energy costs matrix computed: min=8.0 max=20.83
2026-08-16 13:20:05.884428: Rate array import [{'start': 800, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 13:20:05.886291: - Your estimated bill for today is £3.10 and tomorrow is £1.38
2026-08-16 13:20:05.886381: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:20:05.886414: - The battery is currently at 74% and is in eco mode for the next 10 hours.
2026-08-16 13:20:05.886453: - For the next 48 hours there will be no solar generation.
2026-08-16 13:20:05.886483: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:20:05.886523: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:20:05.886558: 
2026-08-16 13:20:06.040784: Plan calculation took 2.49 seconds
2026-08-16 13:20:06.044408: No high rate period found
2026-08-16 13:20:06.158914: Import threshold used for optimisation was 8.0p
2026-08-16 13:20:06.287058: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:20:06.302762: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 74%, target 100%
2026-08-16 13:20:06.302937: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:20:06.303016: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:20:06.303207: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:20:06.303286: No export window planned
2026-08-16 13:20:06.303387: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:20:06.303555: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:20:06.303857: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:20:06.304089: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:20:06.304151: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:20:06.304318: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:20:06.304459: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.304511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.304626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.304703: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.304794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.304895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305002: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:06.305556: Inverter 0 count register writes 0
2026-08-16 13:20:06.331533: 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-16 13:20:06.331720: Recompute is saving previous plan...
2026-08-16 13:20:06.333141: Best charge window [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:20:06.333215: Best export window [  ]
2026-08-16 13:20:06.334091: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:20:06.338140: Load divergence over 8.0 hours mean 409.22W, min 244.2W, max 845.4W, std dev 108.15W, divergence 13.21%
2026-08-16 13:20:06.379075: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:20:06.379937: LoadML is_calculating True
2026-08-16 13:20:06.380066: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:20:06.394233: 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(0.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-16 13:20:06.417599: Optimise levels pass started at 2026-08-16 13:20:06
2026-08-16 13:20:06.417774: Optimise all windows, total charge 31 export 1
2026-08-16 13:20:12.016463: >> Region optimisation pass width 960 gives best_metric 454.69p, best_cost 457.49p, best_cycle 33.85kWh, best_import 22.74kWh
2026-08-16 13:20:12.518665: >> Region optimisation pass width 480 gives best_metric 454.69p, best_cost 457.49p, best_cycle 33.85kWh, best_import 22.74kWh
2026-08-16 13:20:13.265402: >> Region optimisation pass width 240 gives best_metric 454.69p, best_cost 457.49p, best_cycle 33.85kWh, best_import 22.74kWh
2026-08-16 13:20:14.723296: >> Region optimisation pass width 120 gives best_metric 454.69p, best_cost 457.49p, best_cycle 33.85kWh, best_import 22.74kWh
2026-08-16 13:20:14.723643: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 13:20:14.723880: Optimise levels pass ended at 2026-08-16 13:20:14, duration 8.3 seconds tried 91 combinations
2026-08-16 13:20:14.723998: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 454.69p, best_keep 0kWh, best_cycle 33.85kWh, best_carbon 0kg, best_import 22.74kWh
2026-08-16 13:20:14.763936: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:20:33.071017: Tweak plan optimisation started metric 372.93p, cost 379.45p
2026-08-16 13:20:34.368109: Tweak optimisation finished metric 372.93p, cost 379.45p, metric_keep 0kWh, cycle 23.18kWh, carbon 0kg, import 12.99kWh, changed 8 window(s)
2026-08-16 13:20:34.410265: Swap charge optimisation started metric 372.93p, cost 379.45p, min_improvement_swap 0.1p
2026-08-16 13:20:35.876970: Swap charge optimisation finished metric 372.93p, cost 379.45p
2026-08-16 13:20:36.174090: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 367.73p -> 367.57p, plan now metric 374.29p, cost 376.41p, cycle 23.71kWh, import 12.61kWh
2026-08-16 13:20:36.205052: Raw charge windows [ 16-08 13:30:00 - 16-08 14:00:00 @ 8.0p 0%, 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:20:36.205485: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:20:36.210148: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:20:36.210472: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:20:36.266923: Previous plan best metric is 372.93 (cost 379.45) and new plan best metric is 372.93 (cost 379.45)
2026-08-16 13:20:36.267473: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:20:36.267858: Plan valid is now true after recompute was False
2026-08-16 13:20:36.299453: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 673.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 28.4kWh, PV 0.0kWh
2026-08-16 13:20:36.489065: Battery has 18.0 hours left - now at 11.84kWh
2026-08-16 13:20:36.591312: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 738.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:20:00, load 29.42kWh, PV 0.0kWh
2026-08-16 13:20:36.755398: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 466.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.42kWh, PV 0.0kWh
2026-08-16 13:20:36.931099: predict best end_record 08-17 23:30:00, final soc 1.29kWh, metric 423.05p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.4kWh, PV 0.0kWh
2026-08-16 13:20:36.941030: Saving plan best values to HA entities
2026-08-16 13:20:37.262289: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 13:20:37.276802: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 13:20:37.285438: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.4kWh, house 1.21kWh, export 0.0kWh, metric 423.05p, metric10 466.73p
2026-08-16 13:20:37.475690: Marginal costs baseline metric (no standing charge): 376.4127
2026-08-16 13:20:38.001121: Marginal energy costs matrix computed: min=8.0 max=20.83
2026-08-16 13:20:38.081371: Rate array import [{'start': 800, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 800, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:20:38.081971: - Your estimated bill for today is £3.10 and tomorrow is £1.38
2026-08-16 13:20:38.082014: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:20:38.082034: - The battery is currently at 74% and is in eco mode for the next 10 hours.
2026-08-16 13:20:38.082051: - For the next 48 hours there will be no solar generation.
2026-08-16 13:20:38.082065: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:20:38.082079: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:20:38.082094: 
2026-08-16 13:20:38.133991: Plan calculation took 31.80 seconds
2026-08-16 13:20:38.148574: Inverter 0: Type SK Sunsynk
2026-08-16 13:20:38.148742: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:20:38.154329: Reserve min: 7%, battery_min: 7%
2026-08-16 13:20:38.156054: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:20:38.156443: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 342W, current battery voltage 51.2V, grid power -54W, load power 408W, PV Power 0W
2026-08-16 13:20:38.156649: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:20:38.156766: Inverter 0 scheduled charge enable is False
2026-08-16 13:20:38.156828: Inverter 0 charge windows currently []
2026-08-16 13:20:38.156867: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:20:38.157051: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:20:38.157105: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:20:38.157155: Inverter 0 scheduled discharge enable is False
2026-08-16 13:20:38.157321: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:20:38.157369: Inverter 0 discharge windows currently []
2026-08-16 13:20:38.157401: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:20:38.157437: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:20:38.157462: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:20:38.312521: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 74%, target 100%
2026-08-16 13:20:38.312718: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:20:38.312850: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:20:38.313158: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:20:38.313267: No export window planned
2026-08-16 13:20:38.313417: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:20:38.313468: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:20:38.313663: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:20:38.313892: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:20:38.313976: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:20:38.314041: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:20:38.314154: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314215: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314348: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314476: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.314929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.315034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.315185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:20:38.315659: Inverter 0 count register writes 0
2026-08-16 13:20:38.391756: Total inverter register writes now 836
2026-08-16 13:20:38.495190: Info: Completed run status Demand
2026-08-16 13:20:38.514634: Info: record_status Demand
2026-08-16 13:20:38.539894: Saved current settings to /config/predbat_config.json
2026-08-16 13:20:38.540301: Compare, best tariff: current metric 318.25p
2026-08-16 13:20:51.712120: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0041 kWh val_bias=+0.0016 kWh (+1.8%) combined=0.0038 kWh ema_combined=0.0034 kWh
2026-08-16 13:21:11.802309: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:21:11.802740: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:21:11.802800: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:21:11.803047: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:21:11.803173: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:21:11.803218: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:21:11.803299: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:21:26.648230: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0082 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-16 13:21:26.648360: ML Predictor: Early stopping at epoch 11
2026-08-16 13:21:26.649311: ML Predictor: Restored best weights from epoch with val_mae=0.0051 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-16 13:21:26.649497: ML Predictor: Training complete, final val_mae=0.0051 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-16 13:21:31.771952: ML Predictor: AR rollout over holdout: ar_mae=0.0058 kWh ar_bias=+0.0000 kWh (+0.0%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-16 13:21:31.782955: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0051 kWh
2026-08-16 13:21:31.890660: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-16 13:21:31.890964: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 13:21:32.565282: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 13:21:37.802398: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 13:21:37.860262: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0589 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6216 std=4.4960) import_rate(mean=17.2202 std=8.3994) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-16 13:21:37.963085: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 13:21:37.980762: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 13:21:38.071935: ML Predictor: Baseline (pre-finetune) val_mae=0.0093 kWh val_bias=+0.0037 kWh
2026-08-16 13:22:14.963734: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0123 val_mae=0.0056 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 13:22:50.596078: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0136 val_mae=0.0062 kWh val_bias=-0.0025 kWh (-3.1%) combined=0.0042 kWh ema_combined=0.0036 kWh
2026-08-16 13:23:22.945165: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0125 val_mae=0.0056 kWh val_bias=+0.0015 kWh (+1.8%) combined=0.0043 kWh ema_combined=0.0038 kWh
2026-08-16 13:23:26.730536: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:23:26.730955: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:23:26.731017: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:23:26.731299: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:23:26.731356: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:23:26.731440: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:23:26.731520: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:23:57.677008: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0053 kWh val_bias=-0.0026 kWh (-3.2%) combined=0.0042 kWh ema_combined=0.0039 kWh
2026-08-16 13:24:33.242740: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0117 val_mae=0.0048 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0026 kWh ema_combined=0.0035 kWh
2026-08-16 13:25:00.121429: --------------- PredBat - update at 2026-08-16 13:25:00+01:00 with clock skew 0 minutes, minutes now 805
2026-08-16 13:25:00.123096: Saved current settings to /config/predbat_config.json
2026-08-16 13:25:00.123213: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 32.0 minutes
2026-08-16 13:25:00.123314: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:25:00.123463: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:25:00.173765: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:25:00.173961: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:25:00.174255: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:25:00.174887: Cars 1 charging from battery False 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-16 13:25:00.175077: Predbat mode is set to Control charge & discharge
2026-08-16 13:25:00.476168: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:25:00.476315: Using load_power data to fill gaps in load_today data
2026-08-16 13:25:01.938914: Processing 721 30-minute periods for power integration
2026-08-16 13:25:02.309446: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:25:02.309608: Car charging hold False, threshold 6.0kWh
2026-08-16 13:25:02.309682: Current data so far today: load 6.95kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:25:02.328807: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:25:02.329771: Standing charge is set to 46.63p
2026-08-16 13:25:02.538964: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.84, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.540812: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.541524: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.541635: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.541726: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.541814: Octopus: Intelligent slot at 08-16 13:30:00-08-16 16:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542044: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542275: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542385: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542481: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542635: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542786: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.542873: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.543073: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:25:02.543135: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:25:02.551154: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:25:02.553280: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 13:25:02.643906: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:25:02.644052: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:25:02.645245: High export rate found rates in range 99p to -99p
2026-08-16 13:25:02.688607: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:25:02.689670: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 810, 'end': 840, 'average': 8.0}, {'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:25:02.690463: Car 0 charging plan is: [{'start': 810, 'end': 840, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:25:02.717507: Battery level now 11.84kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour 5.5p, change today -2.53p, rate_forward 6.87p
2026-08-16 13:25:02.718134: Last hour: net energy 1.4kWh, import 1.4kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 13.78p, import 13.78p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:25:02.871287: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:25:02.871465: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:25:02.966878: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:25:02.996991: Today's load divergence 89.29%, in-day adjustment 86.8%, damping 0.95x, yesterday 82.97% today 89.82% blend 44.1%
2026-08-16 13:25:02.998266: Today's predicted so far 8.42kWh with 0.0kWh car/iBoost excluded, 6.05kWh import ignored, and 8.42kWh forecast extra.
2026-08-16 13:25:02.998350: Today's actual load so far 6.92kWh with 0.0kWh car/iBoost excluded, and 6.05kWh import ignored.
2026-08-16 13:25:03.057322: Inverter 0: Type SK Sunsynk
2026-08-16 13:25:03.057433: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:25:03.057689: Reserve min: 7%, battery_min: 7%
2026-08-16 13:25:03.057783: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:25:03.058137: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 330W, PV Power 0W
2026-08-16 13:25:03.058332: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:25:03.058442: Inverter 0 scheduled charge enable is False
2026-08-16 13:25:03.058486: Inverter 0 charge windows currently []
2026-08-16 13:25:03.058522: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:25:03.058757: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:25:03.058811: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:25:03.058966: Inverter 0 scheduled discharge enable is False
2026-08-16 13:25:03.059419: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:25:03.059507: Inverter 0 discharge windows currently []
2026-08-16 13:25:03.059656: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:25:03.059756: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:25:03.059799: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:25:03.198823: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:25:03.198980: Plan was last updated on 2026-08-16 13:20:00+01:00 and is now 5.0 minutes old
2026-08-16 13:25:03.199266: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:25:03.199318: Best export window [  ]
2026-08-16 13:25:03.200608: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:25:03.208075: Load divergence over 8.0 hours mean 409.31W, min 240.6W, max 850.2W, std dev 105.28W, divergence 12.86%
2026-08-16 13:25:03.279144: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:25:03.296327: LoadML is_calculating True
2026-08-16 13:25:03.296422: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:25:03.358550: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 672.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:30:00, load 28.48kWh, PV 0.0kWh
2026-08-16 13:25:03.652800: Battery has 18.08 hours left - now at 11.84kWh
2026-08-16 13:25:03.745612: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 736.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:25:00, load 29.51kWh, PV 0.0kWh
2026-08-16 13:25:03.920933: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 469.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.51kWh, PV 0.0kWh
2026-08-16 13:25:04.111443: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 426.73p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.48kWh, PV 0.0kWh
2026-08-16 13:25:04.111580: Saving plan best values to HA entities
2026-08-16 13:25:04.484120: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 13:25:04.497620: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 13:25:04.505122: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.87kWh, house 1.2kWh, export 0.0kWh, metric 426.73p, metric10 469.04p
2026-08-16 13:25:04.685884: Marginal costs baseline metric (no standing charge): 380.0934
2026-08-16 13:25:05.270412: Marginal energy costs matrix computed: min=8.0 max=20.94
2026-08-16 13:25:05.498540: Rate array import [{'start': 805, 'end': 810, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 810, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 13:25:05.500070: - Your estimated bill for today is £3.10 and tomorrow is £1.38
2026-08-16 13:25:05.502222: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 2 and a half hours.
2026-08-16 13:25:05.502306: - The battery is currently at 74% and is in eco mode for the next 10 hours.
2026-08-16 13:25:05.502333: - For the next 48 hours there will be no solar generation.
2026-08-16 13:25:05.502353: - You will reach a minimum of 8% battery in 34 hours.
2026-08-16 13:25:05.502371: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 13:25:05.502391: 
2026-08-16 13:25:05.585654: Plan calculation took 2.39 seconds
2026-08-16 13:25:05.589523: No high rate period found
2026-08-16 13:25:05.693023: Import threshold used for optimisation was 8.0p
2026-08-16 13:25:05.860877: Low import rate windows [0: 08-16 13:30:00 - 08-16 14:00:00 @ 8.0, 1: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 2: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 3: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 4: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:25:05.880115: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 74%, target 100%
2026-08-16 13:25:05.880415: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:25:05.880582: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:25:05.880871: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:25:05.881803: No export window planned
2026-08-16 13:25:05.882053: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:25:05.882178: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:25:05.882431: Adjust demand (idle) time computed is 12:55:00-23:59:00
2026-08-16 13:25:05.882686: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:25:05.882878: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:25:05.883045: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:25:05.886258: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.886508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.886636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.886755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.886870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887008: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.887939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.888094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:25:05.888210: Inverter 0 count register writes 0
2026-08-16 13:25:05.937772: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 13:25:05.954160: Total inverter register writes now 836
2026-08-16 13:25:06.071456: Info: Completed run status Demand
2026-08-16 13:25:06.103474: Info: record_status Demand
2026-08-16 13:25:06.122034: Saved current settings to /config/predbat_config.json
2026-08-16 13:25:06.122428: Compare, best tariff: current metric 318.25p
2026-08-16 13:25:09.407247: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0113 val_mae=0.0046 kWh val_bias=-0.0014 kWh (-1.7%) combined=0.0025 kWh ema_combined=0.0032 kWh
2026-08-16 13:25:41.286117: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:25:41.286382: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:25:41.286545: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:25:41.286851: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:25:41.286991: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:25:41.287108: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:25:41.287214: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:25:47.007559: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0114 val_mae=0.0043 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0024 kWh ema_combined=0.0030 kWh
2026-08-16 13:26:20.304120: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0132 val_mae=0.0046 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0029 kWh ema_combined=0.0030 kWh
2026-08-16 13:26:55.511923: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0107 val_mae=0.0043 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-16 13:27:28.393638: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0098 val_mae=0.0039 kWh val_bias=+0.0012 kWh (+1.5%) combined=0.0033 kWh ema_combined=0.0029 kWh
2026-08-16 13:27:55.884517: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:27:55.884979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:27:55.885036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:27:55.885424: Inverter 0 idle time is 08-16 12:55:00-08-16 23:59:00
2026-08-16 13:27:55.885563: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:27:55.885680: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:27:55.885787: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:28:01.965964: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0104 val_mae=0.0046 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-16 13:28:36.265339: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0090 val_mae=0.0037 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-16 13:29:09.364189: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0087 val_mae=0.0036 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 13:29:16.753906: Warn: Web Socket closed, will try to reconnect in 5 seconds - error count 1
2026-08-16 13:29:16.755901: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_charge: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_charge (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.758556: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_charge: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_charge (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.762203: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_export: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_export (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.764321: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_export: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_export (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.767682: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_freeze_charge: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_freeze_charge (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.769591: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_freeze_charge: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_freeze_charge (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.773529: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_freeze_export: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_freeze_export (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.775362: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_freeze_export: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_freeze_export (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.778969: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_demand: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_demand (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.781030: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_demand: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_demand (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.781138: Error: Too many API errors, stopping
2026-08-16 13:29:16.784677: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_import_rates: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_import_rates (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.784768: Error: Too many API errors, stopping
2026-08-16 13:29:16.786630: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_import_rates: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_import_rates (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.786723: Error: Too many API errors, stopping
2026-08-16 13:29:16.793521: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_export_rates: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_export_rates (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.793622: Error: Too many API errors, stopping
2026-08-16 13:29:16.795326: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_export_rates: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_export_rates (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.795408: Error: Too many API errors, stopping
2026-08-16 13:29:16.798858: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_load_adjust: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_load_adjust (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.798947: Error: Too many API errors, stopping
2026-08-16 13:29:16.800843: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_load_adjust: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_load_adjust (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.801066: Error: Too many API errors, stopping
2026-08-16 13:29:16.804505: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_soc: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_soc (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.804700: Error: Too many API errors, stopping
2026-08-16 13:29:16.806375: Warn: Connection error from http://10.0.20.15:8123/api/states/select.predbat_manual_soc: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/states/select.predbat_manual_soc (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-16 13:29:16.806586: Error: Too many API errors, stopping
2026-08-16 13:29:17.005146: TemperatureAPI: Finalizing...
2026-08-16 13:29:17.005284: TemperatureAPI: Stopped
2026-08-16 13:29:17.257153: Stopping Predbat
2026-08-16 13:29:17.257422: Predbat terminating
2026-08-16 13:29:17.257642: Stopping load_ml interface
2026-08-16 13:29:17.358156: Stopped load_ml interface
2026-08-16 13:29:17.358453: Stopping temperature interface
2026-08-16 13:29:17.469587: Stopped temperature interface
2026-08-16 13:29:17.469894: Stopping mcp interface
2026-08-16 13:29:17.570429: Stopped mcp interface
2026-08-16 13:29:17.570702: Stopping web interface
2026-08-16 13:29:17.671178: Stopped web interface
2026-08-16 13:29:17.671437: Stopping ha_history interface
2026-08-16 13:29:17.761122: HAHistory: Finalizing...
2026-08-16 13:29:17.761351: HAHistory: Stopped
2026-08-16 13:29:17.771900: Stopped ha_history interface
2026-08-16 13:29:17.772130: Stopping ha interface
2026-08-16 13:29:17.872592: Stopped ha interface
2026-08-16 13:29:17.872728: Stopping storage interface
2026-08-16 13:29:17.973128: Stopped storage interface
2026-08-16 13:29:17.975806: Info: Components stopped
2026-08-16 13:29:17.976043: Predbat terminated
2026-08-16 13:29:19.541140: StorageComponent: Finalizing...
2026-08-16 13:29:19.541270: StorageComponent: Stopped
2026-08-16 13:29:20.125332: HTTP MCP Server stopped
2026-08-16 13:29:21.757823: Info: Web socket stopping
2026-08-16 13:29:21.757961: Info: Web Socket stopped
2026-08-16 13:29:21.758158: Info: HA interface stopped
2026-08-16 13:29:41.039261: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 13:30:26.741685: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0081 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 13:31:10.899839: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-16 13:31:51.722742: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0033 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0030 kWh ema_combined=0.0026 kWh
2026-08-16 13:32:28.540452: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0070 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-16 13:33:03.368184: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 13:33:36.290367: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0061 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 13:34:08.692935: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 13:35:10.122113: Info: No secrets.yaml file found
2026-08-16 13:35:10.122412: Loading apps.yaml
2026-08-16 13:35:10.151731: Predbat: Startup predbat
2026-08-16 13:35:10.199385: --------------- PredBat - update at 2026-08-16 13:35:00+01:00 with clock skew 0 minutes, minutes now 815
2026-08-16 13:35:10.201826: Config root is /config
2026-08-16 13:35:10.201969: --------------- PredBat - update at 2026-08-16 13:35:00+01:00 with clock skew 0 minutes, minutes now 815
2026-08-16 13:35:10.202027: Initialising Storage interface
2026-08-16 13:35:10.202245: Initialising Home Assistant Interface interface
2026-08-16 13:35:10.225931: Initialising Home Assistant History interface
2026-08-16 13:35:10.226153: Initialising Web Interface interface
2026-08-16 13:35:10.226283: Initialising plugin system
2026-08-16 13:35:10.226526: Scanning for plugins in: /addon
2026-08-16 13:35:10.226879: Plugin discovery complete. Loaded 0 plugins.
2026-08-16 13:35:10.226936: Starting Storage interface
2026-08-16 13:35:10.226975: Creating task: <coroutine object ComponentBase.start at 0x7f9861ae9d20>
2026-08-16 13:35:10.227546: StorageComponent: Waiting for API to start
2026-08-16 13:35:10.237024: StorageComponent: Started
2026-08-16 13:35:11.228286: Starting Home Assistant Interface interface
2026-08-16 13:35:11.228461: Creating task: <coroutine object HAInterface.start at 0x7f9843ff0660>
2026-08-16 13:35:11.229128: HAInterface: Waiting for API to start
2026-08-16 13:35:11.229425: Info: Starting HA interface
2026-08-16 13:35:11.229905: Info: Start socket for url http://10.0.20.15:8123/api/websocket
2026-08-16 13:35:11.233654: Info: Web Socket active
2026-08-16 13:35:12.229609: Starting Home Assistant History interface
2026-08-16 13:35:12.229747: Creating task: <coroutine object ComponentBase.start at 0x7f9843f317a0>
2026-08-16 13:35:12.230595: HAHistory: Waiting for API to start
2026-08-16 13:35:12.231023: Info: Starting HAHistory
2026-08-16 13:35:12.231215: Info: HAHistory: Pruning history data started.
2026-08-16 13:35:12.231279: Info: HAHistory: Pruning history data completed.
2026-08-16 13:35:12.231425: HAHistory: Started
2026-08-16 13:35:13.231249: Starting Web Interface interface
2026-08-16 13:35:13.231386: Creating task: <coroutine object WebInterface.start at 0x7f98441b3120>
2026-08-16 13:35:13.231957: WebInterface: Waiting for API to start
2026-08-16 13:35:14.232214: Config root is /config and printable config_root_p is now /config
2026-08-16 13:35:14.297343: Regular expression argument car_charging_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-16 13:35:14.298070: 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-16 13:35:14.298854: 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-16 13:35:14.299315: 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-16 13:35:14.301141: 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-16 13:35:14.301810: 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-16 13:35:14.301887: Refreshing Predbat configuration
2026-08-16 13:35:14.667533: Loading current config
2026-08-16 13:35:15.503016: Saved current settings to /config/predbat_config.json
2026-08-16 13:35:16.125856: Compare, best tariff: current metric 318.25p
2026-08-16 13:35:16.144830: Initialising MCP Server interface
2026-08-16 13:35:16.145546: Initialising External Temperature API interface
2026-08-16 13:35:16.145960: Starting MCP Server interface
2026-08-16 13:35:16.146023: Creating task: <coroutine object PredbatMCPServer.start at 0x7f9843f8a5c0>
2026-08-16 13:35:16.146791: Creating HTTP MCP Server with Predbat integration
2026-08-16 13:35:16.146869: PredbatMCPServer: Waiting for API to start
2026-08-16 13:35:16.146951: HTTP MCP Server started (web interface integration)
2026-08-16 13:35:17.147166: Starting External Temperature API interface
2026-08-16 13:35:17.147291: Creating task: <coroutine object ComponentBase.start at 0x7f9843f31d20>
2026-08-16 13:35:17.147777: TemperatureAPI: Waiting for API to start
2026-08-16 13:35:17.261026: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 13:35:17.452541: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 13:35:17.521330: TemperatureAPI: Started
2026-08-16 13:35:18.148569: Initialising ML Load Forecaster interface
2026-08-16 13:35:18.256322: ML Predictor: Upgraded 288 feature std values to prevent extreme normalization
2026-08-16 13:35:18.256485: ML Predictor: Model loaded from /config/predbat_ml_model.npz (trained 2026-08-16 09:04, val_mae=0.0039, val_bias=-0.0001)
2026-08-16 13:35:18.256637: ML Component: Loaded existing model
2026-08-16 13:35:18.256725: Starting ML Load Forecaster interface
2026-08-16 13:35:18.256763: Creating task: <coroutine object ComponentBase.start at 0x7f9843f31900>
2026-08-16 13:35:18.257314: LoadMLComponent: Waiting for API to start
2026-08-16 13:35:18.303607: ML Component: Loaded database history: 16702 load points, 0.7h elapsed since save, age 58.0 days (shift will be applied on next fetch)
2026-08-16 13:35:18.317436: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 13:35:22.220304: Processing 1297 30-minute periods for power integration
2026-08-16 13:35:22.317993: ML Component: Car charging hold False, car energy reported load False
2026-08-16 13:35:22.410881: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:35:22.501791: ML Temperature data points: 48146
2026-08-16 13:35:23.314306: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 13:35:23.329363: ML Component: Data fetch completed, load data age 58.0 days, 16715 data points
2026-08-16 13:35:23.329510: ML Component: No training needed, model age is 3.5 hours
2026-08-16 13:35:23.329621: ML Component: Generating predictions load data age 58.0 days, 16715 data points
2026-08-16 13:35:23.482479: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0206 max_dow {0: 0.09934687506537884, 1: 0.10397500054407863, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.09761944436836574, 6: 0.1026277773262726}
2026-08-16 13:35:30.816126: ML Component: Generated 576 predictions (total 27.01 kWh over 48h)
2026-08-16 13:35:30.854837: ML Component: Prediction cycle completed
2026-08-16 13:35:30.932667: ML Component: Saved 16715 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 13:35:30.934473: LoadMLComponent: Started
2026-08-16 13:35:31.363020: Refreshing Predbat configuration
2026-08-16 13:35:32.108141: Watch list []
2026-08-16 13:35:33.088449: Saved current settings to /config/predbat_config.json
2026-08-16 13:35:33.089634: Validation of apps.yaml was successful
2026-08-16 13:35:33.093656: Restored saved plan from 35 minutes ago: 4 charge windows, 0 export windows
2026-08-16 13:35:33.102108: Predbat: Next run time will be 2026-08-16 13:40:00 and then every 300 seconds
2026-08-16 13:35:34.106041: Refreshing Predbat configuration
2026-08-16 13:35:34.832746: Saved current settings to /config/predbat_config.json
2026-08-16 13:35:34.833912: Validation of apps.yaml was successful
2026-08-16 13:35:34.834122: --------------- PredBat - update at 2026-08-16 13:35:00+01:00 with clock skew 0 minutes, minutes now 815
2026-08-16 13:35:34.834784: Saved current settings to /config/predbat_config.json
2026-08-16 13:35:35.035525: Loaded GitHub URL cache from storage (1 entries)
2026-08-16 13:35:35.035660: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 42.6 minutes
2026-08-16 13:35:35.035724: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:35:35.035788: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:35:35.068361: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:35:35.068505: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:35:35.068729: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:35:35.069586: Cars 1 charging from battery False 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-16 13:35:35.069752: Predbat mode is set to Control charge & discharge
2026-08-16 13:35:35.280527: Found 21602 load_today datapoints going back 27 days
2026-08-16 13:35:35.280692: Using load_power data to fill gaps in load_today data
2026-08-16 13:35:36.190774: Processing 721 30-minute periods for power integration
2026-08-16 13:35:36.482160: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:35:36.482305: Car charging hold False, threshold 6.0kWh
2026-08-16 13:35:36.482380: Current data so far today: load 7.0kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:35:36.534164: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:35:36.534836: Octopus: Joining Octopus saving event code EVENT_46_160826 Sun 16/08 14:00-15:00 at rate 0.0 p/kWh
2026-08-16 13:35:36.972532: Warn: Web Socket result failed {'id': 25, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Saving Sessions event not found'}}
2026-08-16 13:35:36.972636: Warn: Service call octopus_energy/join_octoplus_saving_session_event data {'event_code': 'EVENT_46_160826', 'entity_id': 'event.octopus_energy_a_db198414_octoplus_saving_session_events'} failed
2026-08-16 13:35:37.308828: Standing charge is set to 46.63p
2026-08-16 13:35:37.378347: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.378488: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.378555: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.378622: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.378867: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379020: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379137: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379219: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379295: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379434: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379541: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379699: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379876: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:35:37.379945: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:35:37.384510: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:35:37.384605: Import rates: min 8.0p, max 33.75p, average 25.7p
2026-08-16 13:35:37.419472: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:35:37.419591: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:35:37.420577: High export rate found rates in range 99p to -99p
2026-08-16 13:35:37.447767: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:35:37.447950: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:35:37.448385: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:35:37.462817: Battery level now 11.84kWh, -1hr ago 11.01kWh, at midnight 12.21kWh, battery value change in the last hour 5.72p, change today -2.53p, rate_forward 6.87p
2026-08-16 13:35:37.463205: Last hour: net energy 1.3kWh, import 1.3kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 11.95p, import 11.95p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:35:37.515962: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:35:37.516093: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:35:37.587703: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:35:37.651947: Today's load divergence 88.92%, in-day adjustment 86.65%, damping 0.95x, yesterday 82.97% today 89.47% blend 43.4%
2026-08-16 13:35:37.652055: Today's predicted so far 8.63kWh with 0.0kWh car/iBoost excluded, 6.03kWh import ignored, and 8.63kWh forecast extra.
2026-08-16 13:35:37.652089: Today's actual load so far 7.09kWh with 0.0kWh car/iBoost excluded, and 6.03kWh import ignored.
2026-08-16 13:35:37.689218: Octopus slots changed from [[], [], [], [], [], [], [], []] to [[{'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, 'source': 'SMART'}]]
2026-08-16 13:35:37.689442: 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-16 13:35:37.689952: Sensor changes require a replan, will recompute the plan
2026-08-16 13:35:37.690124: Inverter 0: Type SK Sunsynk
2026-08-16 13:35:37.690158: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:35:39.471871: Find battery size has 15 days of data, max days 15
2026-08-16 13:35:39.472009: Charge start 21600 soc 63.65 end 21572 soc 74.45
2026-08-16 13:35:39.472048: Charging clipped start at 21600 with SoC 63%, end at 21575 with SoC 74%; SoC change 11%
2026-08-16 13:35:39.472081:   Power added over 26 samples is 2.0kWh
2026-08-16 13:35:39.472110:   Battery size sample accepted raw 17.9kWh adjusted 16.67kWh from 11% SoC over 26 minutes
2026-08-16 13:35:39.472150: Charge start 21545 soc 78.0 end 21539 soc 78.45
2026-08-16 13:35:39.472212: Charge start 21515 soc 81.0 end 21462 soc 100.0
2026-08-16 13:35:39.472250: Charging clipped start at 21505 with SoC 83%, end at 21490 with SoC 90%; SoC change 7%
2026-08-16 13:35:39.472420: Charge start 20615 soc 71.0 end 20614 soc 71.0
2026-08-16 13:35:39.472722: Charge start 18905 soc 22.0 end 18885 soc 29.05
2026-08-16 13:35:39.472752: Charging clipped start at 18895 with SoC 24%, end at 18885 with SoC 29%; SoC change 5%
2026-08-16 13:35:39.472807: Charge start 18845 soc 31.0 end 18677 soc 100.0
2026-08-16 13:35:39.472842: Charging clipped start at 18835 with SoC 33%, end at 18705 with SoC 90%; SoC change 57%
2026-08-16 13:35:39.472890:   Power added over 131 samples is 9.9kWh
2026-08-16 13:35:39.472915:   Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 57% SoC over 131 minutes
2026-08-16 13:35:39.473446: Charge start 15935 soc 15.0 end 15756 soc 89.65
2026-08-16 13:35:39.473488: Charging clipped start at 15925 with SoC 17%, end at 15760 with SoC 89%; SoC change 72%
2026-08-16 13:35:39.473538:   Power added over 166 samples is 12.5kWh
2026-08-16 13:35:39.473569:   Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 72% SoC over 166 minutes
2026-08-16 13:35:39.473619: Charge start 15725 soc 92.0 end 15698 soc 100.0
2026-08-16 13:35:39.473822: Charge start 14638 soc 68.0 end 14637 soc 68.0
2026-08-16 13:35:39.473864: Charge start 14615 soc 69.0 end 14539 soc 99.5
2026-08-16 13:35:39.473898: Charging clipped start at 14605 with SoC 71%, end at 14565 with SoC 88%; SoC change 17%
2026-08-16 13:35:39.473929:   Power added over 41 samples is 3.1kWh
2026-08-16 13:35:39.473950:   Battery size sample accepted raw 18.13kWh adjusted 16.89kWh from 17% SoC over 41 minutes
2026-08-16 13:35:39.474228: Charge start 12965 soc 42.0 end 12941 soc 49.25
2026-08-16 13:35:39.474259: Charging clipped start at 12955 with SoC 44%, end at 12945 with SoC 49%; SoC change 5%
2026-08-16 13:35:39.474290: Charge start 12875 soc 52.0 end 12873 soc 52.0
2026-08-16 13:35:39.474332: Charge start 12845 soc 53.0 end 12816 soc 62.05
2026-08-16 13:35:39.474365: Charging clipped start at 12835 with SoC 55%, end at 12820 with SoC 62%; SoC change 7%
2026-08-16 13:35:39.474584: Charge start 11659 soc 9.0 end 11650 soc 11.15
2026-08-16 13:35:39.474618: Charge start 11633 soc 9.35 end 11624 soc 10.65
2026-08-16 13:35:39.474678: Charge start 11615 soc 11.8 end 11402 soc 100.0
2026-08-16 13:35:39.474707: Charging clipped start at 11615 with SoC 11%, end at 11430 with SoC 90%; SoC change 79%
2026-08-16 13:35:39.474757:   Power added over 186 samples is 14.1kWh
2026-08-16 13:35:39.474784:   Battery size sample accepted raw 17.84kWh adjusted 16.61kWh from 79% SoC over 186 minutes
2026-08-16 13:35:39.474996: Charge start 10265 soc 13.0 end 10176 soc 49.25
2026-08-16 13:35:39.475024: Charging clipped start at 10260 with SoC 14%, end at 10180 with SoC 49%; SoC change 35%
2026-08-16 13:35:39.475057:   Power added over 81 samples is 6.1kWh
2026-08-16 13:35:39.475084:   Battery size sample accepted raw 17.47kWh adjusted 16.27kWh from 35% SoC over 81 minutes
2026-08-16 13:35:39.475110: Charge start 10145 soc 53.0 end 10132 soc 55.75
2026-08-16 13:35:39.475142: Charge start 10115 soc 59.0 end 10093 soc 65.842
2026-08-16 13:35:39.475168: Charging clipped start at 10105 with SoC 61%, end at 10095 with SoC 65%; SoC change 4%
2026-08-16 13:35:39.475200: Charge start 10085 soc 69.0 end 10009 soc 99.65
2026-08-16 13:35:39.475228: Charging clipped start at 10085 with SoC 69%, end at 10035 with SoC 89%; SoC change 20%
2026-08-16 13:35:39.475261:   Power added over 51 samples is 3.9kWh
2026-08-16 13:35:39.475282:   Battery size sample accepted raw 19.33kWh adjusted 18.0kWh from 20% SoC over 51 minutes
2026-08-16 13:35:39.475503: Charge start 8855 soc 25.1 end 8841 soc 28.421
2026-08-16 13:35:39.475531: Charging clipped start at 8855 with SoC 25%, end at 8845 with SoC 28%; SoC change 3%
2026-08-16 13:35:39.475564: Charge start 8765 soc 31.0 end 8750 soc 35.75
2026-08-16 13:35:39.475590: Charging clipped start at 8755 with SoC 33%, end at 8750 with SoC 35%; SoC change 2%
2026-08-16 13:35:39.475635: Charge start 8675 soc 37.95 end 8577 soc 77.8
2026-08-16 13:35:39.475662: Charging clipped start at 8675 with SoC 37%, end at 8580 with SoC 77%; SoC change 40%
2026-08-16 13:35:39.475697:   Power added over 96 samples is 7.3kWh
2026-08-16 13:35:39.475722:   Battery size sample accepted raw 18.13kWh adjusted 16.88kWh from 40% SoC over 96 minutes
2026-08-16 13:35:39.475979: Charge start 7235 soc 10.85 end 7082 soc 74.55
2026-08-16 13:35:39.476004: Charging clipped start at 7235 with SoC 10%, end at 7085 with SoC 74%; SoC change 64%
2026-08-16 13:35:39.476047:   Power added over 151 samples is 11.4kWh
2026-08-16 13:35:39.476073:   Battery size sample accepted raw 17.86kWh adjusted 16.63kWh from 64% SoC over 151 minutes
2026-08-16 13:35:39.476252: Charge start 6085 soc 9.0 end 6076 soc 9.25
2026-08-16 13:35:39.476296: Charge start 5986 soc 9.0 end 5977 soc 9.75
2026-08-16 13:35:39.476350: Charge start 5915 soc 13.0 end 5845 soc 41.95
2026-08-16 13:35:39.476378: Charging clipped start at 5905 with SoC 15%, end at 5845 with SoC 41%; SoC change 26%
2026-08-16 13:35:39.476408:   Power added over 61 samples is 4.6kWh
2026-08-16 13:35:39.476447:   Battery size sample accepted raw 17.73kWh adjusted 16.51kWh from 26% SoC over 61 minutes
2026-08-16 13:35:39.476493: Charge start 5825 soc 44.0 end 5683 soc 100.0
2026-08-16 13:35:39.476545: Charging clipped start at 5815 with SoC 46%, end at 5715 with SoC 90%; SoC change 44%
2026-08-16 13:35:39.476594:   Power added over 101 samples is 7.7kWh
2026-08-16 13:35:39.476628:   Battery size sample accepted raw 17.44kWh adjusted 16.24kWh from 44% SoC over 101 minutes
2026-08-16 13:35:39.476739: Charge start 5105 soc 45.65 end 5102 soc 45.65
2026-08-16 13:35:39.476778: Charge start 5015 soc 42.0 end 5011 soc 42.0
2026-08-16 13:35:39.476894: Charge start 4430 soc 19.0 end 4418 soc 22.05
2026-08-16 13:35:39.476958: Charge start 4325 soc 22.0 end 4307 soc 27.55
2026-08-16 13:35:39.476986: Charging clipped start at 4320 with SoC 23%, end at 4310 with SoC 27%; SoC change 4%
2026-08-16 13:35:39.477039: Charge start 4295 soc 31.0 end 4202 soc 68.55
2026-08-16 13:35:39.477074: Charging clipped start at 4285 with SoC 33%, end at 4205 with SoC 68%; SoC change 35%
2026-08-16 13:35:39.477106:   Power added over 81 samples is 6.2kWh
2026-08-16 13:35:39.477131:   Battery size sample accepted raw 17.58kWh adjusted 16.37kWh from 35% SoC over 81 minutes
2026-08-16 13:35:39.477243: Charge start 3661 soc 9.8 end 3652 soc 9.65
2026-08-16 13:35:39.477276: Charge start 3627 soc 9.45 end 3619 soc 10.3
2026-08-16 13:35:39.477304: Charge start 3591 soc 9.65 end 3582 soc 9.8
2026-08-16 13:35:39.477344: Charge start 3555 soc 9.0 end 3546 soc 9.3
2026-08-16 13:35:39.477377: Charge start 3544 soc 11.55 end 3525 soc 19.9
2026-08-16 13:35:39.477397: Charging clipped start at 3540 with SoC 13%, end at 3525 with SoC 19%; SoC change 6%
2026-08-16 13:35:39.477479: Charge start 3145 soc 8.9 end 3137 soc 9.6
2026-08-16 13:35:39.477515: Charge start 3102 soc 9.05 end 3093 soc 10.05
2026-08-16 13:35:39.477548: Charge start 3057 soc 9.0 end 3049 soc 10.3
2026-08-16 13:35:39.477577: Charge start 3019 soc 9.05 end 3010 soc 11.05
2026-08-16 13:35:39.477611: Charge start 2967 soc 9.0 end 2959 soc 10.211
2026-08-16 13:35:39.477634: Charge start 2949 soc 12.1 end 2948 soc 12.1
2026-08-16 13:35:39.477683: Charge start 2915 soc 13.0 end 2796 soc 61.65
2026-08-16 13:35:39.477713: Charging clipped start at 2905 with SoC 15%, end at 2800 with SoC 61%; SoC change 46%
2026-08-16 13:35:39.477750:   Power added over 106 samples is 8.0kWh
2026-08-16 13:35:39.477772:   Battery size sample accepted raw 17.48kWh adjusted 16.27kWh from 46% SoC over 106 minutes
2026-08-16 13:35:39.477800: Charge start 2765 soc 63.0 end 2737 soc 72.85
2026-08-16 13:35:39.477826: Charging clipped start at 2760 with SoC 64%, end at 2740 with SoC 72%; SoC change 8%
2026-08-16 13:35:39.477937: Charge start 2247 soc 9.5 end 2239 soc 10.25
2026-08-16 13:35:39.477971: Charge start 2208 soc 9.0 end 2199 soc 10.7
2026-08-16 13:35:39.478004: Charge start 2164 soc 9.0 end 2155 soc 10.9
2026-08-16 13:35:39.478039: Charge start 2106 soc 10.3 end 2097 soc 9.7
2026-08-16 13:35:39.478078: Charge start 2017 soc 9.0 end 2008 soc 10.1
2026-08-16 13:35:39.478115: Charge start 1961 soc 9.0 end 1952 soc 9.7
2026-08-16 13:35:39.478154: Charge start 1861 soc 9.0 end 1853 soc 10.0
2026-08-16 13:35:39.478202: Charge start 1726 soc 9.0 end 1717 soc 9.75
2026-08-16 13:35:39.478263: Charge start 1619 soc 9.0 end 1610 soc 11.1
2026-08-16 13:35:39.478301: Charge start 1565 soc 13.0 end 1541 soc 20.15
2026-08-16 13:35:39.478354: Charging clipped start at 1555 with SoC 15%, end at 1545 with SoC 20%; SoC change 5%
2026-08-16 13:35:39.478390: Charge start 1505 soc 22.7 end 1501 soc 22.7
2026-08-16 13:35:39.478466: Charge start 1475 soc 25.0 end 1296 soc 99.45
2026-08-16 13:35:39.478496: Charging clipped start at 1465 with SoC 27%, end at 1320 with SoC 90%; SoC change 63%
2026-08-16 13:35:39.478539:   Power added over 146 samples is 11.1kWh
2026-08-16 13:35:39.478560:   Battery size sample accepted raw 17.55kWh adjusted 16.34kWh from 63% SoC over 146 minutes
2026-08-16 13:35:39.478791: Charge start 155 soc 44.0 end 96 soc 66.5
2026-08-16 13:35:39.478831: Charging clipped start at 145 with SoC 46%, end at 100 with SoC 66%; SoC change 20%
2026-08-16 13:35:39.478859:   Power added over 46 samples is 3.5kWh
2026-08-16 13:35:39.478884:   Battery size sample accepted raw 17.29kWh adjusted 16.1kWh from 20% SoC over 46 minutes
2026-08-16 13:35:39.478908: Charge start 65 soc 68.8 end 52 soc 71.45
2026-08-16 13:35:39.478930: Charging clipped start at 65 with SoC 68%, end at 55 with SoC 71%; SoC change 3%
2026-08-16 13:35:39.479022: Estimated battery size is 16.39kWh from 11 selected samples, 15 accepted samples, 12 rejected samples, median 16.34kWh (assumed charging loss factor 0.9, rejects {'soc_change_too_small': 12})
2026-08-16 13:35:39.491537: Inverter 0 battery size tracking: found_size 16.39 kWh, history {'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, '2026-08-10': 16.37}, trimmed_mean 16.43 kWh, degradation -2.69%, configured battery_scaling 100% (configured degradation 0%)
2026-08-16 13:35:39.499722: Reserve min: 7%, battery_min: 7%
2026-08-16 13:35:39.499834: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:35:39.499893: **** Creating dummy entity sensor.predbat_SK_0_scheduled_charge_enable with value on and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.506772: **** Creating dummy entity sensor.predbat_SK_0_scheduled_discharge_enable with value on and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.513257: **** 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-16 13:35:39.521922: **** 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-16 13:35:39.529146: **** 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-16 13:35:39.535160: **** Creating dummy entity sensor.predbat_SK_0_inverter_mode with value Eco and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.541316: **** Creating dummy entity sensor.predbat_SK_0_charge_start_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.547310: **** Creating dummy entity sensor.predbat_SK_0_charge_end_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.553214: **** Creating dummy entity sensor.predbat_SK_0_discharge_start_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.559545: **** Creating dummy entity sensor.predbat_SK_0_discharge_end_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.565424: **** Creating dummy entity sensor.predbat_SK_0_idle_start_time with value 00:00:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.571083: **** Creating dummy entity sensor.predbat_SK_0_idle_end_time with value 00:00:00 and attributes {'state_class': 'measurement'}
2026-08-16 13:35:39.576915: Inverter 0 SoC: 11.7kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 259W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-16 13:35:44.582819: Inverter 0 Wrote scheduled_charge_enable to False successfully and got off
2026-08-16 13:35:44.583092: Inverter 0 scheduled charge enable is False
2026-08-16 13:35:44.583159: Inverter 0 charge windows currently []
2026-08-16 13:35:44.583226: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:35:49.592359: Inverter 0 Wrote scheduled_discharge_enable to False successfully and got off
2026-08-16 13:35:49.592492: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:35:49.592572: Inverter 0 scheduled discharge enable is False
2026-08-16 13:35:49.592850: Inverter 0 idle time is 08-17 00:00:00-08-17 00:00:00
2026-08-16 13:35:49.592906: Inverter 0 discharge windows currently []
2026-08-16 13:35:49.593029: 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-16 13:35:50.156863: Looking for discharge curve, have found 15.0 days of history data, max days 15
2026-08-16 13:35:50.241465: 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-16 13:35:50.255080: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:35:50.255222: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:35:50.255277: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:35:50.339068: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:35:50.339161: Will recompute the plan as it is invalid
2026-08-16 13:35:50.339271: Recompute is saving previous plan...
2026-08-16 13:35:50.340508: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:35:50.340574: Best export window [  ]
2026-08-16 13:35:50.341536: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:35:50.345376: Load divergence over 8.0 hours mean 412.38W, min 261.0W, max 799.8W, std dev 105.89W, divergence 12.84%
2026-08-16 13:35:50.363323: Calculating data from yesterday for savings calculation
2026-08-16 13:35:50.373110: 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-16 13:35:50.490376: 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-16 13:35:50.513032: predict yesterday end_record 08-17 00:00:00, final soc 10.66kWh, metric 247.22p, metric_keep 0kWh, min_soc 0.39kWh @ 08-16 00:00:00, load 12.53kWh, PV 0.0kWh
2026-08-16 13:35:50.529295: predict yesterday10 end_record 08-17 00:00:00, final soc 10.27kWh, metric 243.89p, metric_keep 0kWh, min_soc 0.32kWh @ 08-16 00:00:00, load 12.53kWh, PV 0.0kWh
2026-08-16 13:35:50.550520: predict yesterday end_record 08-17 00:00:00, final soc 10.66kWh, metric 247.22p, metric_keep 0kWh, min_soc 0.39kWh @ 08-16 00:00:00, load 12.53kWh, PV 0.0kWh
2026-08-16 13:35:50.591256: Yesterday: Predbat disabled was £2.47 (adjusted £1.74) vs £5.77 (adjusted £4.93), saving £-3.29 (adjusted £-3.19) with import 25.07kWh, export 0.0kWh, battery_cycle 26.34kWh, start_soc 0.0kWh,  final_soc 10.66kWh and battery_value 73.24kWh
2026-08-16 13:35:50.684770: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 330.86p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.53kWh, PV 0.0kWh
2026-08-16 13:35:50.684918: Yesterday: No Battery/PV system cost predicted was £3.31 (adjusted £3.31) vs £5.77 (adjusted £4.93), saving £-2.46 (adjusted £-1.62) with import 12.53kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 13:35:50.696879: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:35:50.697020: LoadML is_calculating False
2026-08-16 13:35:50.697101: Creating pool of 12 processes to match your CPU count
2026-08-16 13:35:50.855144: 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(0.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-16 13:35:50.856519: Optimise levels pass started at 2026-08-16 13:35:50
2026-08-16 13:35:50.856600: Optimise all windows, total charge 30 export 1
2026-08-16 13:35:51.658091: >> Region optimisation pass width 960 gives best_metric 456.07p, best_cost 460.2p, best_cycle 34.65kWh, best_import 23.08kWh
2026-08-16 13:35:51.853967: >> Region optimisation pass width 480 gives best_metric 456.07p, best_cost 460.2p, best_cycle 34.65kWh, best_import 23.08kWh
2026-08-16 13:35:52.206839: >> Region optimisation pass width 240 gives best_metric 456.07p, best_cost 460.2p, best_cycle 34.65kWh, best_import 23.08kWh
2026-08-16 13:35:52.977492: >> Region optimisation pass width 120 gives best_metric 456.07p, best_cost 460.2p, best_cycle 34.65kWh, best_import 23.08kWh
2026-08-16 13:35:52.977741: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 18
2026-08-16 13:35:52.977840: Optimise levels pass ended at 2026-08-16 13:35:52, duration 2.1 seconds tried 69 combinations
2026-08-16 13:35:52.978130: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 456.07p, best_keep 0kWh, best_cycle 34.65kWh, best_carbon 0kg, best_import 23.08kWh
2026-08-16 13:35:52.997545: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:35:57.074894: Tweak plan optimisation started metric 372.96p, cost 379.94p
2026-08-16 13:35:57.440543: Tweak optimisation finished metric 372.96p, cost 379.94p, metric_keep 0kWh, cycle 23.57kWh, carbon 0kg, import 13.05kWh, changed 8 window(s)
2026-08-16 13:35:57.464879: Swap charge optimisation started metric 372.96p, cost 379.94p, min_improvement_swap 0.1p
2026-08-16 13:35:58.409266: Swap charge optimisation finished metric 372.96p, cost 379.94p
2026-08-16 13:35:58.564620: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 368.17p -> 367.9p, plan now metric 374.42p, cost 376.46p, cycle 24.02kWh, import 12.61kWh
2026-08-16 13:35:58.575991: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:35:58.576430: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:35:58.576790: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:35:58.577036: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:35:58.620539: Previous plan best metric is 372.97 (cost 379.98) and new plan best metric is 372.96 (cost 379.94)
2026-08-16 13:35:58.620785: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:35:58.621008: Plan valid is now true after recompute was False
2026-08-16 13:35:58.652435: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 680.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 28.36kWh, PV 0.0kWh
2026-08-16 13:35:58.811971: Battery has 17.17 hours left - now at 11.7kWh
2026-08-16 13:35:58.870580: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 742.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:45:00, load 29.38kWh, PV 0.0kWh
2026-08-16 13:35:58.987914: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 464.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.38kWh, PV 0.0kWh
2026-08-16 13:35:59.115928: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 423.47p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 13:35:59.116022: Saving plan best values to HA entities
2026-08-16 13:35:59.401756: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:35:59.410057: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:35:59.417913: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.7kWh, house 0.96kWh, export 0.0kWh, metric 423.47p, metric10 464.53p
2026-08-16 13:35:59.518587: Marginal costs baseline metric (no standing charge): 376.8375
2026-08-16 13:35:59.782235: Marginal energy costs matrix computed: min=8.0 max=21.05
2026-08-16 13:35:59.880717: Rate array import [{'start': 815, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 815, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:35:59.881452: - Your estimated bill for today is £3.07 and tomorrow is £1.41
2026-08-16 13:35:59.881503: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:35:59.881524: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:35:59.881539: - For the next 48 hours there will be no solar generation.
2026-08-16 13:35:59.881554: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:35:59.881568: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:35:59.881581: 
2026-08-16 13:35:59.929704: Plan calculation took 9.59 seconds
2026-08-16 13:35:59.934985: Saved plan to storage
2026-08-16 13:35:59.938424: No high rate period found
2026-08-16 13:36:00.043989: Import threshold used for optimisation was 8.0p
2026-08-16 13:36:00.127746: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 5: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 6: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 7: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 8: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 9: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 10: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 11: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 12: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 13: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 14: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 15: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 16: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 17: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:36:00.139853: Inverter 0: Type SK Sunsynk
2026-08-16 13:36:00.139973: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:36:00.140366: Reserve min: 7%, battery_min: 7%
2026-08-16 13:36:00.140475: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:36:00.141049: Inverter 0 SoC: 11.7kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 259W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-16 13:36:00.141356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:36:00.141518: Inverter 0 scheduled charge enable is False
2026-08-16 13:36:00.141597: Inverter 0 charge windows currently []
2026-08-16 13:36:00.141669: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:36:00.141892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:36:00.141958: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:36:00.142084: Inverter 0 scheduled discharge enable is False
2026-08-16 13:36:00.142368: Inverter 0 idle time is 08-17 00:00:00-08-17 00:00:00
2026-08-16 13:36:00.142428: Inverter 0 discharge windows currently []
2026-08-16 13:36:00.142494: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:36:00.142549: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:36:00.142592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:36:00.230539: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:36:00.230732: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:36:00.230845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:36:00.231077: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:36:00.231162: Inverter 0 set new demand (idle) start time to 13:35:00 was 00:00:00
2026-08-16 13:36:05.240406: Inverter 0 write_and_poll_value: Wrote 13:35:00 to idle_start_time, successfully now 13:35:00
2026-08-16 13:36:05.240553: Inverter 0 set new demand (idle) end time to 23:59:00 was 00:00:00
2026-08-16 13:36:10.249932: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-16 13:36:10.250109: No export window planned
2026-08-16 13:36:10.250401: 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-16 13:36:10.250477: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:36:10.250841: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:36:10.250974: Inverter 0 set new export start time to 00:00:00
2026-08-16 13:36:15.261576: Inverter 0 write_and_poll_value: Wrote 00:00:00 to discharge_start_time, successfully now 00:00:00
2026-08-16 13:36:15.261730: Inverter 0 Set new export end time to 00:00:00 was 23:59:00
2026-08-16 13:36:20.270218: Inverter 0 write_and_poll_value: Wrote 00:00:00 to discharge_end_time, successfully now 00:00:00
2026-08-16 13:36:20.270595: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:36:20.270666: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:36:20.270730: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:36:20.270850: 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-16 13:36:20.277328: 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-16 13:36:20.381561: 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-16 13:36:20.485883: 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-16 13:36:20.591796: 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-16 13:36:20.649554: 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-16 13:36:20.754255: 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-16 13:36:20.851823: 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-16 13:36:20.955443: 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-16 13:36:21.059444: 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-16 13:36:21.163121: 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-16 13:36:21.168809: 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-16 13:36:21.240286: 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-16 13:36:21.288931: 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-16 13:36:21.369215: Inverter 0 count register writes 0
2026-08-16 13:36:21.447703: Total inverter register writes now 836
2026-08-16 13:36:21.577789: Info: Completed run status Demand
2026-08-16 13:36:21.862444: Info: record_status Demand
2026-08-16 13:36:21.874200: Saved current settings to /config/predbat_config.json
2026-08-16 13:36:21.874852: Compare, best tariff: current metric 318.25p
2026-08-16 13:36:21.956177: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 13:36:30.994263: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 13:36:32.023625: Processing 1297 30-minute periods for power integration
2026-08-16 13:36:32.124191: ML Component: Car charging hold False, car energy reported load False
2026-08-16 13:36:32.219996: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:36:32.315455: ML Temperature data points: 48146
2026-08-16 13:36:32.588046: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 13:36:32.614315: ML Component: Data fetch completed, load data age 58.0 days, 16715 data points
2026-08-16 13:36:32.614447: ML Component: Starting fine-tune training (2h interval), model age is 3.5034325841666667 hours
2026-08-16 13:36:32.614488: ML Component: Doing training...
2026-08-16 13:36:32.627039: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 13:36:32.627197: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.0 days)
2026-08-16 13:36:32.661167: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 13:36:32.661337: ML Predictor: Starting initial training with 30 epochs
2026-08-16 13:36:33.221132: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 13:36:37.469690: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 13:36:37.519102: ML Predictor: Normalization stats [fit] target(mean=0.0586 std=0.0468) load(mean=0.0588 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.5946 std=4.4768) import_rate(mean=17.2664 std=8.3944) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-16 13:37:03.731102: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:37:03.731412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:37:03.731467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:37:03.732304: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:37:03.732361: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:37:03.732390: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:37:03.732414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:37:04.662678: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0336 val_mae=0.0063 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0038 kWh ema_combined=0.0038 kWh
2026-08-16 13:37:36.336550: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0377 val_mae=0.0093 kWh val_bias=+0.0045 kWh (+6.4%) combined=0.0069 kWh ema_combined=0.0047 kWh
2026-08-16 13:38:08.216012: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0282 val_mae=0.0069 kWh val_bias=+0.0011 kWh (+1.5%) combined=0.0036 kWh ema_combined=0.0044 kWh
2026-08-16 13:38:42.131911: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0226 val_mae=0.0054 kWh val_bias=+0.0009 kWh (+1.2%) combined=0.0038 kWh ema_combined=0.0042 kWh
2026-08-16 13:39:18.339979: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:39:18.340537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:39:18.340610: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:39:18.340843: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:39:18.341097: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:39:18.341258: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:39:18.341422: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:39:25.143739: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0181 val_mae=0.0062 kWh val_bias=-0.0023 kWh (-3.3%) combined=0.0034 kWh ema_combined=0.0039 kWh
2026-08-16 13:39:59.182559: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0178 val_mae=0.0049 kWh val_bias=+0.0015 kWh (+2.2%) combined=0.0029 kWh ema_combined=0.0036 kWh
2026-08-16 13:40:00.808746: --------------- PredBat - update at 2026-08-16 13:40:00+01:00 with clock skew 0 minutes, minutes now 820
2026-08-16 13:40:00.811276: Saved current settings to /config/predbat_config.json
2026-08-16 13:40:00.811717: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 47.0 minutes
2026-08-16 13:40:00.812284: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:40:00.812719: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:40:00.864066: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:40:00.864382: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:40:00.864750: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:40:00.865514: Cars 1 charging from battery False 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-16 13:40:00.865792: Predbat mode is set to Control charge & discharge
2026-08-16 13:40:01.264806: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:40:01.278124: Using load_power data to fill gaps in load_today data
2026-08-16 13:40:02.620784: Processing 721 30-minute periods for power integration
2026-08-16 13:40:03.049862: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:40:03.050539: Car charging hold False, threshold 6.0kWh
2026-08-16 13:40:03.050627: Current data so far today: load 7.0kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:40:03.070662: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:40:03.071884: Standing charge is set to 46.63p
2026-08-16 13:40:03.172869: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.173147: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.173327: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.173475: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.173789: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174083: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174237: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174379: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174522: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174660: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.174798: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.175025: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.175320: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:40:03.175414: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:40:03.183907: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:40:03.184335: Import rates: min 8.0p, max 33.75p, average 25.7p
2026-08-16 13:40:03.255548: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:40:03.255747: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:40:03.257609: High export rate found rates in range 99p to -99p
2026-08-16 13:40:03.343444: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:40:03.343826: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:40:03.344611: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:40:03.382214: Battery level now 11.7kWh, -1hr ago 11.08kWh, at midnight 12.21kWh, battery value change in the last hour 4.29p, change today -3.46p, rate_forward 6.87p
2026-08-16 13:40:03.382648: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 7.95p, import 7.95p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:40:03.482714: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:40:03.483044: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:40:03.615936: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:40:03.665833: Today's load divergence 88.55%, in-day adjustment 86.47%, damping 0.95x, yesterday 82.97% today 89.12% blend 43.06%
2026-08-16 13:40:03.666610: Today's predicted so far 8.64kWh with 0.0kWh car/iBoost excluded, 6.06kWh import ignored, and 8.64kWh forecast extra.
2026-08-16 13:40:03.666669: Today's actual load so far 7.05kWh with 0.0kWh car/iBoost excluded, and 6.06kWh import ignored.
2026-08-16 13:40:03.727718: Inverter 0: Type SK Sunsynk
2026-08-16 13:40:03.727819: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:40:03.728025: Reserve min: 7%, battery_min: 7%
2026-08-16 13:40:03.728104: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:40:03.737382: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 285W, current battery voltage 51.2V, grid power -55W, load power 351W, PV Power 0W
2026-08-16 13:40:03.737654: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:40:03.737818: Inverter 0 scheduled charge enable is False
2026-08-16 13:40:03.737880: Inverter 0 charge windows currently []
2026-08-16 13:40:03.738023: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:40:03.738227: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:40:03.738341: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:40:03.738491: Inverter 0 scheduled discharge enable is False
2026-08-16 13:40:03.738724: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:40:03.738847: Inverter 0 discharge windows currently []
2026-08-16 13:40:03.738967: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:40:03.739031: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:40:03.739088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:40:03.871042: Dynamic load last period 0.05kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:40:03.871223: Plan was last updated on 2026-08-16 13:35:00+01:00 and is now 5.0 minutes old
2026-08-16 13:40:03.871724: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:40:03.871797: Best export window [  ]
2026-08-16 13:40:03.873195: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:40:03.878215: Load divergence over 8.0 hours mean 413.77W, min 250.2W, max 797.4W, std dev 107.06W, divergence 12.94%
2026-08-16 13:40:03.914272: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:40:03.914431: LoadML is_calculating True
2026-08-16 13:40:03.914529: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:40:04.029045: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 680.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 28.41kWh, PV 0.0kWh
2026-08-16 13:40:04.264728: Battery has 17.17 hours left - now at 11.68kWh
2026-08-16 13:40:04.359221: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 741.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:50:00, load 29.43kWh, PV 0.0kWh
2026-08-16 13:40:04.541147: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 466.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.43kWh, PV 0.0kWh
2026-08-16 13:40:04.826448: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 427.21p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.41kWh, PV 0.0kWh
2026-08-16 13:40:04.826680: Saving plan best values to HA entities
2026-08-16 13:40:05.208583: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:40:05.216516: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:40:05.224387: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.18kWh, house 0.95kWh, export 0.0kWh, metric 427.21p, metric10 466.96p
2026-08-16 13:40:05.443533: Marginal costs baseline metric (no standing charge): 380.5781
2026-08-16 13:40:05.891114: Marginal energy costs matrix computed: min=8.0 max=21.15
2026-08-16 13:40:06.040762: Rate array import [{'start': 820, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 820, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:40:06.042162: - Your estimated bill for today is £3.07 and tomorrow is £1.40
2026-08-16 13:40:06.042257: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:40:06.042288: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:40:06.042427: - For the next 48 hours there will be no solar generation.
2026-08-16 13:40:06.042469: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:40:06.042540: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:40:06.042578: 
2026-08-16 13:40:06.114050: Plan calculation took 2.24 seconds
2026-08-16 13:40:06.120015: No high rate period found
2026-08-16 13:40:06.446739: Import threshold used for optimisation was 8.0p
2026-08-16 13:40:06.592587: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 5: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 6: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 7: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 8: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 9: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 10: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 11: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 12: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 13: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 14: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 15: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 16: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 17: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:40:06.637342: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:40:06.637542: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:40:06.637656: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:40:06.637899: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:40:06.638015: No export window planned
2026-08-16 13:40:06.638168: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:40:06.638215: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:40:06.638390: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:40:06.638612: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:40:06.638679: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:40:06.638751: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:40:06.638858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.638910: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.638947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.639832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.640756: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.641219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.641377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.641614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.641749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:40:06.641967: Inverter 0 count register writes 0
2026-08-16 13:40:06.690115: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 13:40:06.705732: Total inverter register writes now 836
2026-08-16 13:40:06.791598: Info: Completed run status Demand
2026-08-16 13:40:06.825248: Info: record_status Demand
2026-08-16 13:40:06.847724: Saved current settings to /config/predbat_config.json
2026-08-16 13:40:06.848058: Compare, best tariff: current metric 318.25p
2026-08-16 13:40:39.101082: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0142 val_mae=0.0046 kWh val_bias=-0.0019 kWh (-2.7%) combined=0.0039 kWh ema_combined=0.0037 kWh
2026-08-16 13:40:48.117387: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:40:48.117758: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:40:48.117823: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:40:48.118035: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:40:48.118091: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:40:48.118122: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:40:48.118148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:41:13.476266: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0151 val_mae=0.0042 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0029 kWh ema_combined=0.0035 kWh
2026-08-16 13:41:51.623651: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0123 val_mae=0.0048 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 13:42:27.740878: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0134 val_mae=0.0041 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0029 kWh ema_combined=0.0031 kWh
2026-08-16 13:42:48.748788: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:42:48.749341: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:42:48.749404: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:42:48.749649: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:42:48.749700: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:42:48.749764: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:42:48.749785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:43:03.324534: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0131 val_mae=0.0041 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0029 kWh
2026-08-16 13:43:37.267888: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0108 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-16 13:44:08.236346: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0110 val_mae=0.0036 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 13:44:41.231387: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0093 val_mae=0.0035 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 13:45:00.210052: --------------- PredBat - update at 2026-08-16 13:45:00+01:00 with clock skew 0 minutes, minutes now 825
2026-08-16 13:45:00.211438: Saved current settings to /config/predbat_config.json
2026-08-16 13:45:00.211749: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 52.0 minutes
2026-08-16 13:45:00.212013: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:45:00.212324: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:45:00.247062: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:45:00.247477: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:45:00.247992: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:45:00.249014: Cars 1 charging from battery False 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-16 13:45:00.250205: Predbat mode is set to Control charge & discharge
2026-08-16 13:45:00.627636: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:45:00.630983: Using load_power data to fill gaps in load_today data
2026-08-16 13:45:02.121545: Processing 721 30-minute periods for power integration
2026-08-16 13:45:02.430049: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:45:02.445052: Car charging hold False, threshold 6.0kWh
2026-08-16 13:45:02.445159: Current data so far today: load 7.01kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:45:02.484462: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:45:02.485804: Standing charge is set to 46.63p
2026-08-16 13:45:02.683020: 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-16 13:45:02.683313: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.683556: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.683699: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.683895: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684172: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684428: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684575: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684715: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684834: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.684993: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.685262: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.685376: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.685597: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:45:02.685664: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:45:02.691787: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:45:02.692101: Import rates: min 8.0p, max 33.75p, average 25.7p
2026-08-16 13:45:02.740401: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:45:02.740573: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:45:02.742287: High export rate found rates in range 99p to -99p
2026-08-16 13:45:02.773183: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:45:02.773493: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:45:02.774020: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:45:02.794314: Battery level now 11.68kWh, -1hr ago 11.77kWh, at midnight 12.21kWh, battery value change in the last hour -0.64p, change today -3.63p, rate_forward 6.87p
2026-08-16 13:45:02.794814: Last hour: net energy 0.3kWh, import 0.3kWh, export 0.0kWh, car 0kWh, load 0.41kWh, net cost 3.95p, import 3.95p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:45:02.968418: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:45:02.968812: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:45:03.145636: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:45:03.173609: Today's load divergence 87.82%, in-day adjustment 86.1%, damping 0.95x, yesterday 82.97% today 88.43% blend 42.71%
2026-08-16 13:45:03.173873: Today's predicted so far 8.66kWh with 0.0kWh car/iBoost excluded, 6.08kWh import ignored, and 8.66kWh forecast extra.
2026-08-16 13:45:03.173967: Today's actual load so far 6.98kWh with 0.0kWh car/iBoost excluded, and 6.08kWh import ignored.
2026-08-16 13:45:03.247597: Octopus slots changed from [[{'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, '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-16T16:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, 'source': 'SMART'}]]
2026-08-16 13:45:03.249231: Sensor changes require a replan, will recompute the plan
2026-08-16 13:45:03.249463: Inverter 0: Type SK Sunsynk
2026-08-16 13:45:03.249517: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:45:03.249772: Reserve min: 7%, battery_min: 7%
2026-08-16 13:45:03.249865: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:45:03.250200: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 268W, current battery voltage 51.2V, grid power -55W, load power 335W, PV Power 0W
2026-08-16 13:45:03.250410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:45:03.250523: Inverter 0 scheduled charge enable is False
2026-08-16 13:45:03.250563: Inverter 0 charge windows currently []
2026-08-16 13:45:03.250599: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:45:03.250755: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:45:03.250811: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:45:03.250863: Inverter 0 scheduled discharge enable is False
2026-08-16 13:45:03.251029: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:45:03.251077: Inverter 0 discharge windows currently []
2026-08-16 13:45:03.251102: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:45:03.251120: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:45:03.251138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:45:03.421377: Dynamic load last period 0.06kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:45:03.421665: Will recompute the plan as it is invalid
2026-08-16 13:45:03.421949: Recompute is saving previous plan...
2026-08-16 13:45:03.423648: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:45:03.423869: Best export window [  ]
2026-08-16 13:45:03.425300: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:45:03.430273: Load divergence over 8.0 hours mean 415.4W, min 247.2W, max 816.0W, std dev 110.16W, divergence 13.26%
2026-08-16 13:45:03.507746: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:45:03.508019: LoadML is_calculating True
2026-08-16 13:45:03.508203: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:45:03.523981: 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(0.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-16 13:45:03.533877: Optimise levels pass started at 2026-08-16 13:45:03
2026-08-16 13:45:03.534081: Optimise all windows, total charge 30 export 1
2026-08-16 13:45:08.124154: >> Region optimisation pass width 960 gives best_metric 455.92p, best_cost 461.12p, best_cycle 34.82kWh, best_import 23.2kWh
2026-08-16 13:45:08.524081: >> Region optimisation pass width 480 gives best_metric 455.92p, best_cost 461.12p, best_cycle 34.82kWh, best_import 23.2kWh
2026-08-16 13:45:09.260205: >> Region optimisation pass width 240 gives best_metric 455.92p, best_cost 461.12p, best_cycle 34.82kWh, best_import 23.2kWh
2026-08-16 13:45:10.987634: >> Region optimisation pass width 120 gives best_metric 455.92p, best_cost 461.12p, best_cycle 34.82kWh, best_import 23.2kWh
2026-08-16 13:45:10.988028: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 18
2026-08-16 13:45:10.988273: Optimise levels pass ended at 2026-08-16 13:45:10, duration 7.5 seconds tried 84 combinations
2026-08-16 13:45:10.988516: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 455.92p, best_keep 0kWh, best_cycle 34.82kWh, best_carbon 0kg, best_import 23.2kWh
2026-08-16 13:45:11.032938: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:45:28.160235: Tweak plan optimisation started metric 371.57p, cost 378.71p
2026-08-16 13:45:29.337623: Tweak optimisation finished metric 371.57p, cost 378.71p, metric_keep 0kWh, cycle 23.36kWh, carbon 0kg, import 12.89kWh, changed 8 window(s)
2026-08-16 13:45:29.355164: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0087 val_mae=0.0039 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 13:45:29.420759: Swap charge optimisation started metric 371.57p, cost 378.71p, min_improvement_swap 0.1p
2026-08-16 13:45:31.185852: Swap charge optimisation finished metric 371.57p, cost 378.71p
2026-08-16 13:45:31.507925: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 367.09p -> 366.83p, plan now metric 373.09p, cost 375.25p, cycle 23.81kWh, import 12.46kWh
2026-08-16 13:45:31.540760: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:45:31.547790: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:45:31.548432: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:45:31.548836: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:45:31.667914: Previous plan best metric is 371.57 (cost 378.7) and new plan best metric is 371.57 (cost 378.71)
2026-08-16 13:45:31.668446: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:45:31.669084: Plan valid is now true after recompute was False
2026-08-16 13:45:31.710056: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 677.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 28.23kWh, PV 0.0kWh
2026-08-16 13:45:32.004731: Battery has 17.25 hours left - now at 11.68kWh
2026-08-16 13:45:32.163418: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 736.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:00:00, load 29.24kWh, PV 0.0kWh
2026-08-16 13:45:32.283961: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 461.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.24kWh, PV 0.0kWh
2026-08-16 13:45:32.429318: predict best end_record 08-17 23:30:00, final soc 1.27kWh, metric 422.26p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.23kWh, PV 0.0kWh
2026-08-16 13:45:32.429429: Saving plan best values to HA entities
2026-08-16 13:45:32.901552: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:45:32.921279: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:45:32.934470: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.57kWh, house 0.94kWh, export 0.0kWh, metric 422.26p, metric10 461.68p
2026-08-16 13:45:33.175447: Marginal costs baseline metric (no standing charge): 375.628
2026-08-16 13:45:33.788330: Marginal energy costs matrix computed: min=8.0 max=21.24
2026-08-16 13:45:34.073544: Rate array import [{'start': 825, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 825, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:45:34.074837: - Your estimated bill for today is £3.07 and tomorrow is £1.40
2026-08-16 13:45:34.085015: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:45:34.085292: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:45:34.085506: - For the next 48 hours there will be no solar generation.
2026-08-16 13:45:34.085741: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:45:34.085958: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:45:34.086091: 
2026-08-16 13:45:34.185837: Plan calculation took 30.76 seconds
2026-08-16 13:45:34.198925: Saved plan to storage
2026-08-16 13:45:34.204154: No high rate period found
2026-08-16 13:45:34.337245: Import threshold used for optimisation was 8.0p
2026-08-16 13:45:34.476277: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 5: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 6: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 7: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 8: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 9: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 10: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 11: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 12: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 13: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 14: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 15: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 16: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 17: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:45:34.516289: Inverter 0: Type SK Sunsynk
2026-08-16 13:45:34.516404: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:45:34.516637: Reserve min: 7%, battery_min: 7%
2026-08-16 13:45:34.516746: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:45:34.517138: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -54W, load power 338W, PV Power 0W
2026-08-16 13:45:34.517363: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:45:34.517477: Inverter 0 scheduled charge enable is False
2026-08-16 13:45:34.517548: Inverter 0 charge windows currently []
2026-08-16 13:45:34.517585: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:45:34.517743: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:45:34.517793: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:45:34.517842: Inverter 0 scheduled discharge enable is False
2026-08-16 13:45:34.517995: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:45:34.518056: Inverter 0 discharge windows currently []
2026-08-16 13:45:34.518088: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:45:34.518114: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:45:34.518138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:45:34.649659: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:45:34.650083: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:45:34.650358: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:45:34.650839: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:45:34.651117: No export window planned
2026-08-16 13:45:34.651442: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:45:34.651606: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:45:34.651975: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:45:34.652353: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:45:34.652540: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:45:34.652817: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:45:34.653080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.653254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.653448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.653635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.653841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.654055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.654285: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.654628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.654858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.655199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.655400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.655587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.655793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.656055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:45:34.656286: Inverter 0 count register writes 0
2026-08-16 13:45:34.721284: Total inverter register writes now 836
2026-08-16 13:45:34.797307: Info: Completed run status Demand
2026-08-16 13:45:34.806913: Info: record_status Demand
2026-08-16 13:45:34.817588: Saved current settings to /config/predbat_config.json
2026-08-16 13:45:34.817922: Compare, best tariff: current metric 318.25p
2026-08-16 13:46:08.120918: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0106 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-16 13:46:19.004646: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:46:19.004908: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:46:19.004980: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:46:19.005133: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:46:19.005176: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:46:19.005197: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:46:19.005215: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:46:44.303453: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0081 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-16 13:47:19.350970: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0079 val_mae=0.0033 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-16 13:47:53.955668: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0082 val_mae=0.0034 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-16 13:48:28.777981: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0081 val_mae=0.0029 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 13:48:33.644734: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:48:33.645471: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:48:33.645637: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:48:33.646085: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:48:33.646412: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:48:33.646467: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:48:33.646559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:49:05.843635: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0083 val_mae=0.0034 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 13:49:40.507760: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0072 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 13:50:00.068606: --------------- PredBat - update at 2026-08-16 13:50:00+01:00 with clock skew 0 minutes, minutes now 830
2026-08-16 13:50:00.069584: Saved current settings to /config/predbat_config.json
2026-08-16 13:50:00.069731: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 57.0 minutes
2026-08-16 13:50:00.069820: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:50:00.069949: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:50:00.118152: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:50:00.118300: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:50:00.118503: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:50:00.119067: Cars 1 charging from battery False 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-16 13:50:00.119190: Predbat mode is set to Control charge & discharge
2026-08-16 13:50:00.518222: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:50:00.518779: Using load_power data to fill gaps in load_today data
2026-08-16 13:50:01.954091: Processing 721 30-minute periods for power integration
2026-08-16 13:50:02.187845: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:50:02.188372: Car charging hold False, threshold 6.0kWh
2026-08-16 13:50:02.188676: Current data so far today: load 7.15kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:50:02.205635: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:50:02.206882: Standing charge is set to 46.63p
2026-08-16 13:50:02.531790: 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-16 13:50:02.532302: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.532471: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.532691: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.532980: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.533334: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.533768: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.534011: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.534234: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.534513: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.534681: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.534877: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.535025: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.535314: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:50:02.535420: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:50:02.541609: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:50:02.542202: Import rates: min 8.0p, max 33.75p, average 25.7p
2026-08-16 13:50:02.592156: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:50:02.593074: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:50:02.594311: High export rate found rates in range 99p to -99p
2026-08-16 13:50:02.630716: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:50:02.631085: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:50:02.631934: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:50:02.655189: Battery level now 11.68kWh, -1hr ago 11.77kWh, at midnight 12.21kWh, battery value change in the last hour -0.64p, change today -3.63p, rate_forward 6.87p
2026-08-16 13:50:02.655594: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.15p, import 3.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:50:02.730468: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:50:02.730643: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:50:02.932046: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:50:03.045441: Today's load divergence 88.66%, in-day adjustment 86.57%, damping 0.95x, yesterday 82.97% today 89.22% blend 42.36%
2026-08-16 13:50:03.045598: Today's predicted so far 8.69kWh with 0.0kWh car/iBoost excluded, 6.08kWh import ignored, and 8.69kWh forecast extra.
2026-08-16 13:50:03.045699: Today's actual load so far 7.11kWh with 0.0kWh car/iBoost excluded, and 6.08kWh import ignored.
2026-08-16 13:50:03.158176: Inverter 0: Type SK Sunsynk
2026-08-16 13:50:03.160338: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:50:03.160716: Reserve min: 7%, battery_min: 7%
2026-08-16 13:50:03.160933: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:50:03.161381: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 344W, PV Power 0W
2026-08-16 13:50:03.161741: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:50:03.161914: Inverter 0 scheduled charge enable is False
2026-08-16 13:50:03.161970: Inverter 0 charge windows currently []
2026-08-16 13:50:03.162083: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:50:03.162304: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:50:03.162361: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:50:03.162498: Inverter 0 scheduled discharge enable is False
2026-08-16 13:50:03.162752: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:50:03.162808: Inverter 0 discharge windows currently []
2026-08-16 13:50:03.162913: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:50:03.162958: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:50:03.163122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:50:03.271540: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:50:03.271693: Plan was last updated on 2026-08-16 13:45:00+01:00 and is now 5.0 minutes old
2026-08-16 13:50:03.271958: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:50:03.272015: Best export window [  ]
2026-08-16 13:50:03.273115: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:50:03.277050: Load divergence over 8.0 hours mean 416.89W, min 244.2W, max 845.4W, std dev 104.47W, divergence 12.53%
2026-08-16 13:50:03.300615: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:50:03.300745: LoadML is_calculating True
2026-08-16 13:50:03.300779: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:50:03.348894: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 676.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 28.44kWh, PV 0.0kWh
2026-08-16 13:50:03.609920: Battery has 17.17 hours left - now at 11.68kWh
2026-08-16 13:50:03.700498: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 735.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:05:00, load 29.46kWh, PV 0.0kWh
2026-08-16 13:50:03.852983: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 463.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.46kWh, PV 0.0kWh
2026-08-16 13:50:04.022416: predict best end_record 08-17 23:35:00, final soc 1.68kWh, metric 426.27p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.44kWh, PV 0.0kWh
2026-08-16 13:50:04.022562: Saving plan best values to HA entities
2026-08-16 13:50:04.436915: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:50:04.448004: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:50:04.457760: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.06kWh, house 0.95kWh, export 0.0kWh, metric 426.27p, metric10 463.58p
2026-08-16 13:50:04.562330: Marginal costs baseline metric (no standing charge): 379.6374
2026-08-16 13:50:05.029027: Marginal energy costs matrix computed: min=8.0 max=21.38
2026-08-16 13:50:05.181898: Rate array import [{'start': 830, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 830, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:50:05.182998: - Your estimated bill for today is £3.07 and tomorrow is £1.40
2026-08-16 13:50:05.183061: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:50:05.183095: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:50:05.183141: - For the next 48 hours there will be no solar generation.
2026-08-16 13:50:05.183178: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:50:05.183209: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:50:05.183247: 
2026-08-16 13:50:05.262049: Plan calculation took 1.99 seconds
2026-08-16 13:50:05.267055: No high rate period found
2026-08-16 13:50:05.416671: Import threshold used for optimisation was 8.0p
2026-08-16 13:50:05.512313: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 5: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 6: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 7: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 8: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 9: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 10: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 11: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 12: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 13: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 14: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 15: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 16: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 17: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:50:05.520818: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:50:05.520996: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:50:05.521077: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:50:05.521364: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:50:05.521500: No export window planned
2026-08-16 13:50:05.521758: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:50:05.521884: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:50:05.522193: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:50:05.522506: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:50:05.522723: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:50:05.522916: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:50:05.523138: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.523335: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.523492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.523682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.523899: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.524112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.524319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.524602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.524819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.525078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.525293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.525540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.525705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.526009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:50:05.526131: Inverter 0 count register writes 0
2026-08-16 13:50:05.554489: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 13:50:05.562449: Total inverter register writes now 836
2026-08-16 13:50:05.636126: Info: Completed run status Demand
2026-08-16 13:50:05.645619: Info: record_status Demand
2026-08-16 13:50:05.657206: Saved current settings to /config/predbat_config.json
2026-08-16 13:50:05.657492: Compare, best tariff: current metric 318.25p
2026-08-16 13:50:16.952158: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0069 val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 13:50:48.883726: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:50:48.884040: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:50:48.884313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:50:48.884538: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:50:48.884879: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:50:48.884921: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:50:48.884976: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:50:51.912468: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0076 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 13:51:26.212397: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0071 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 13:51:58.503904: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0072 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 13:52:32.294328: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0064 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 13:53:03.489521: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:53:03.489768: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:53:03.489813: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:53:03.489950: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:53:03.490009: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:53:03.490141: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:53:03.490182: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:53:07.340039: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0070 val_mae=0.0027 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-16 13:53:44.307684: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0067 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-16 13:54:17.853251: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0074 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 13:54:17.854496: ML Predictor: Restored best weights from epoch with val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-16 13:54:17.854785: ML Predictor: Training complete, final val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-16 13:54:23.751677: ML Predictor: AR rollout over holdout: ar_mae=0.0030 kWh ar_bias=+0.0001 kWh (+0.1%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 13:54:23.766950: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0027 kWh
2026-08-16 13:54:23.828035: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-16 13:54:23.828278: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 13:54:24.533619: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 13:54:30.192595: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 13:54:30.255052: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0588 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6075 std=4.4874) import_rate(mean=17.2495 std=8.3959) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1891 std=0.5259)
2026-08-16 13:54:30.346674: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 13:54:30.365965: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 13:54:30.439985: ML Predictor: Baseline (pre-finetune) val_mae=0.0065 kWh val_bias=-0.0004 kWh
2026-08-16 13:55:00.132884: --------------- PredBat - update at 2026-08-16 13:55:00+01:00 with clock skew 0 minutes, minutes now 835
2026-08-16 13:55:00.134216: Saved current settings to /config/predbat_config.json
2026-08-16 13:55:00.134457: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 62.0 minutes
2026-08-16 13:55:00.134652: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 13:55:00.134828: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 13:55:00.177241: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 13:55:00.177392: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 13:55:00.177570: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 13:55:00.178137: Cars 1 charging from battery False 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-16 13:55:00.178292: Predbat mode is set to Control charge & discharge
2026-08-16 13:55:00.587568: Found 21602 load_today datapoints going back 28 days
2026-08-16 13:55:00.587720: Using load_power data to fill gaps in load_today data
2026-08-16 13:55:01.955608: Processing 721 30-minute periods for power integration
2026-08-16 13:55:02.384734: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 13:55:02.384998: Car charging hold False, threshold 6.0kWh
2026-08-16 13:55:02.385092: Current data so far today: load 7.2kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 13:55:02.409320: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 13:55:02.410288: Standing charge is set to 46.63p
2026-08-16 13:55:02.542799: 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-16 13:55:02.557418: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.557673: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.557888: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.558082: Octopus: Intelligent slot at 08-16 14:00:00-08-16 16:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.558412: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.558728: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.558944: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.559142: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.559336: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.559544: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.559798: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.559994: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.560263: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 13:55:02.560335: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 13:55:02.566238: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 13:55:02.566638: Import rates: min 8.0p, max 33.75p, average 25.7p
2026-08-16 13:55:02.651960: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 13:55:02.652087: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 13:55:02.666235: High export rate found rates in range 99p to -99p
2026-08-16 13:55:02.714503: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 13:55:02.730117: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 13:55:02.730846: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 13:55:02.763122: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -3.63p, rate_forward 6.87p
2026-08-16 13:55:02.763683: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.35p, import 2.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 13:55:02.872148: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 13:55:02.872334: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 13:55:03.138872: Using weighted-bucket historical load forecast over 14 days
2026-08-16 13:55:03.208260: Today's load divergence 88.88%, in-day adjustment 86.72%, damping 0.95x, yesterday 82.97% today 89.43% blend 42.01%
2026-08-16 13:55:03.211120: Today's predicted so far 8.71kWh with 0.0kWh car/iBoost excluded, 6.04kWh import ignored, and 8.71kWh forecast extra.
2026-08-16 13:55:03.211251: Today's actual load so far 7.16kWh with 0.0kWh car/iBoost excluded, and 6.04kWh import ignored.
2026-08-16 13:55:03.263648: Inverter 0: Type SK Sunsynk
2026-08-16 13:55:03.263789: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:55:03.264095: Reserve min: 7%, battery_min: 7%
2026-08-16 13:55:03.264223: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:55:03.264743: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 333W, PV Power 0W
2026-08-16 13:55:03.265029: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:55:03.265179: Inverter 0 scheduled charge enable is False
2026-08-16 13:55:03.265241: Inverter 0 charge windows currently []
2026-08-16 13:55:03.265288: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:55:03.265512: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:55:03.274681: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:55:03.274962: Inverter 0 scheduled discharge enable is False
2026-08-16 13:55:03.275478: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:55:03.275973: Inverter 0 discharge windows currently []
2026-08-16 13:55:03.276194: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:55:03.276257: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:55:03.276292: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:55:03.460123: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 13:55:03.460463: Plan was last updated on 2026-08-16 13:45:00+01:00 and is now 10.0 minutes old
2026-08-16 13:55:03.460808: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 13:55:03.461012: Best export window [  ]
2026-08-16 13:55:03.461932: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:55:03.465426: Load divergence over 8.0 hours mean 418.55W, min 240.6W, max 850.2W, std dev 101.92W, divergence 12.18%
2026-08-16 13:55:03.501006: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:55:03.501123: LoadML is_calculating True
2026-08-16 13:55:03.501198: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:55:03.633701: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 676.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 28.57kWh, PV 0.0kWh
2026-08-16 13:55:03.927819: Battery has 17.17 hours left - now at 11.68kWh
2026-08-16 13:55:04.020386: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 734.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.59kWh, PV 0.0kWh
2026-08-16 13:55:04.210700: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 466.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.59kWh, PV 0.0kWh
2026-08-16 13:55:04.361077: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 430.17p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.57kWh, PV 0.0kWh
2026-08-16 13:55:04.361273: Saving plan best values to HA entities
2026-08-16 13:55:04.724289: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:55:04.734969: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:55:04.744151: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.55kWh, house 0.95kWh, export 0.0kWh, metric 430.17p, metric10 466.17p
2026-08-16 13:55:04.883379: Marginal costs baseline metric (no standing charge): 383.5314
2026-08-16 13:55:05.443076: Marginal energy costs matrix computed: min=8.0 max=21.48
2026-08-16 13:55:05.625313: Rate array import [{'start': 835, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 835, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:55:05.626420: - Your estimated bill for today is £3.08 and tomorrow is £1.39
2026-08-16 13:55:05.626503: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:55:05.626534: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:55:05.641042: - For the next 48 hours there will be no solar generation.
2026-08-16 13:55:05.641153: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:55:05.641183: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:55:05.641207: 
2026-08-16 13:55:05.706889: Plan calculation took 2.25 seconds
2026-08-16 13:55:05.710800: No high rate period found
2026-08-16 13:55:05.799202: Import threshold used for optimisation was 8.0p
2026-08-16 13:55:05.895933: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 5: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 6: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 7: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 8: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 9: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 10: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 11: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 12: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 13: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 14: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 15: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 16: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 17: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 13:55:05.918197: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:55:05.918371: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:55:05.918594: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:55:05.918830: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:55:05.919039: No export window planned
2026-08-16 13:55:05.919204: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:55:05.919245: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:55:05.930104: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:55:05.930336: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:55:05.930413: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:55:05.930476: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:55:05.930559: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930631: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.930980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.931015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.931042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:05.931072: Inverter 0 count register writes 0
2026-08-16 13:55:05.983422: 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-16 13:55:05.983766: Recompute is saving previous plan...
2026-08-16 13:55:05.985438: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 13:55:05.989484: Best export window [  ]
2026-08-16 13:55:05.990763: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 13:55:05.995957: Load divergence over 8.0 hours mean 418.55W, min 240.6W, max 850.2W, std dev 101.92W, divergence 12.18%
2026-08-16 13:55:06.035889: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 13:55:06.036580: LoadML is_calculating True
2026-08-16 13:55:06.036893: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 13:55:06.055684: 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(0.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-16 13:55:06.056583: Optimise levels pass started at 2026-08-16 13:55:06
2026-08-16 13:55:06.056650: Optimise all windows, total charge 30 export 1
2026-08-16 13:55:10.838851: >> Region optimisation pass width 960 gives best_metric 455.81p, best_cost 460.59p, best_cycle 34.79kWh, best_import 23.13kWh
2026-08-16 13:55:11.170420: >> Region optimisation pass width 480 gives best_metric 455.81p, best_cost 460.59p, best_cycle 34.79kWh, best_import 23.13kWh
2026-08-16 13:55:11.832666: >> Region optimisation pass width 240 gives best_metric 455.81p, best_cost 460.59p, best_cycle 34.79kWh, best_import 23.13kWh
2026-08-16 13:55:13.156685: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0143 val_mae=0.0062 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0038 kWh ema_combined=0.0038 kWh
2026-08-16 13:55:13.779019: >> Region optimisation pass width 120 gives best_metric 455.81p, best_cost 460.59p, best_cycle 34.79kWh, best_import 23.13kWh
2026-08-16 13:55:13.779633: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 18
2026-08-16 13:55:13.779776: Optimise levels pass ended at 2026-08-16 13:55:13, duration 7.7 seconds tried 84 combinations
2026-08-16 13:55:13.779908: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 455.81p, best_keep 0kWh, best_cycle 34.79kWh, best_carbon 0kg, best_import 23.13kWh
2026-08-16 13:55:13.848156: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 13:55:29.506660: Tweak plan optimisation started metric 370.66p, cost 378.14p
2026-08-16 13:55:30.861521: Tweak optimisation finished metric 370.66p, cost 378.14p, metric_keep 0kWh, cycle 23.23kWh, carbon 0kg, import 12.82kWh, changed 8 window(s)
2026-08-16 13:55:30.916170: Swap charge optimisation started metric 370.66p, cost 378.14p, min_improvement_swap 0.1p
2026-08-16 13:55:32.848545: Swap charge optimisation finished metric 370.66p, cost 378.14p
2026-08-16 13:55:33.192445: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 366.48p -> 366.3p, plan now metric 372.03p, cost 375.12p, cycle 23.74kWh, import 12.45kWh
2026-08-16 13:55:33.238726: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 13:55:33.239556: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:55:33.241738: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:55:33.242768: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 13:55:33.395531: Previous plan best metric is 370.66 (cost 378.14) and new plan best metric is 370.66 (cost 378.14)
2026-08-16 13:55:33.395740: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 13:55:33.395863: Plan valid is now true after recompute was False
2026-08-16 13:55:33.427372: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 674.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 28.35kWh, PV 0.0kWh
2026-08-16 13:55:33.789555: Battery has 17.17 hours left - now at 11.68kWh
2026-08-16 13:55:33.872094: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 732.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.36kWh, PV 0.0kWh
2026-08-16 13:55:34.006077: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 458.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.36kWh, PV 0.0kWh
2026-08-16 13:55:34.144856: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 421.76p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.35kWh, PV 0.0kWh
2026-08-16 13:55:34.145177: Saving plan best values to HA entities
2026-08-16 13:55:34.496066: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 13:55:34.512378: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 13:55:34.520654: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.5kWh, house 0.95kWh, export 0.0kWh, metric 421.76p, metric10 458.79p
2026-08-16 13:55:34.677886: Marginal costs baseline metric (no standing charge): 375.1215
2026-08-16 13:55:35.282809: Marginal energy costs matrix computed: min=8.0 max=21.48
2026-08-16 13:55:35.419631: Rate array import [{'start': 835, 'end': 840, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 840, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 990, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 835, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 13:55:35.420917: - Your estimated bill for today is £3.08 and tomorrow is £1.39
2026-08-16 13:55:35.421031: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 13:55:35.421073: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 13:55:35.421105: - For the next 48 hours there will be no solar generation.
2026-08-16 13:55:35.421135: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 13:55:35.421165: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 13:55:35.421229: 
2026-08-16 13:55:35.520121: Plan calculation took 29.54 seconds
2026-08-16 13:55:35.520486: Inverter 0: Type SK Sunsynk
2026-08-16 13:55:35.520630: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 13:55:35.520919: Reserve min: 7%, battery_min: 7%
2026-08-16 13:55:35.521149: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 13:55:35.521540: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 333W, PV Power 0W
2026-08-16 13:55:35.521816: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:55:35.522044: Inverter 0 scheduled charge enable is False
2026-08-16 13:55:35.522239: Inverter 0 charge windows currently []
2026-08-16 13:55:35.522476: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 13:55:35.522918: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:55:35.523150: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:55:35.523419: Inverter 0 scheduled discharge enable is False
2026-08-16 13:55:35.523764: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:55:35.523912: Inverter 0 discharge windows currently []
2026-08-16 13:55:35.524054: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:55:35.524163: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:55:35.524257: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:55:35.622170: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 13:55:35.622482: Inverter 0 disabled charge window while waiting for schedule (now 08-16 13:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 13:55:35.622649: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:55:35.622934: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:55:35.623102: No export window planned
2026-08-16 13:55:35.623313: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 13:55:35.623455: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 13:55:35.623706: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 13:55:35.623964: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 13:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 13:55:35.624106: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 13:55:35.624245: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 13:55:35.624435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.624569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.624692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.624811: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.624930: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.625970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.626174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.626315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.626457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 13:55:35.626569: Inverter 0 count register writes 0
2026-08-16 13:55:35.665668: Total inverter register writes now 836
2026-08-16 13:55:35.769084: Info: Completed run status Demand
2026-08-16 13:55:35.782320: Info: record_status Demand
2026-08-16 13:55:35.802903: Saved current settings to /config/predbat_config.json
2026-08-16 13:55:35.803153: Compare, best tariff: current metric 318.25p
2026-08-16 13:56:05.860835: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0139 val_mae=0.0071 kWh val_bias=+0.0005 kWh (+0.5%) combined=0.0040 kWh ema_combined=0.0038 kWh
2026-08-16 13:56:19.101042: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:56:19.101303: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:56:19.101500: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:56:19.101784: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:56:19.101935: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:56:19.102058: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:56:19.102171: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:56:40.917252: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0162 val_mae=0.0058 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0031 kWh ema_combined=0.0036 kWh
2026-08-16 13:57:15.403979: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0142 val_mae=0.0051 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0029 kWh ema_combined=0.0034 kWh
2026-08-16 13:57:52.760076: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0133 val_mae=0.0060 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0035 kWh ema_combined=0.0034 kWh
2026-08-16 13:58:28.959815: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0138 val_mae=0.0052 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0031 kWh ema_combined=0.0033 kWh
2026-08-16 13:58:33.767841: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 13:58:33.768206: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 13:58:33.768296: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 13:58:33.768541: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 13:58:33.768615: Note: Inverter does not support discharge freeze - disabled
2026-08-16 13:58:33.768655: Note: Inverter does not support charge freeze - disabled
2026-08-16 13:58:33.768689: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 13:59:03.681132: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0140 val_mae=0.0054 kWh val_bias=+0.0027 kWh (+3.0%) combined=0.0045 kWh ema_combined=0.0037 kWh
2026-08-16 13:59:40.519235: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0123 val_mae=0.0049 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0029 kWh ema_combined=0.0034 kWh
2026-08-16 14:00:00.174645: --------------- PredBat - update at 2026-08-16 14:00:00+01:00 with clock skew 0 minutes, minutes now 840
2026-08-16 14:00:00.175708: Saved current settings to /config/predbat_config.json
2026-08-16 14:00:00.176005: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 67.0 minutes
2026-08-16 14:00:00.176169: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:00:00.176398: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:00:00.258435: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:00:00.258774: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:00:00.259131: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:00:00.259995: Cars 1 charging from battery False 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-16 14:00:00.260361: Predbat mode is set to Control charge & discharge
2026-08-16 14:00:00.861425: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:00:00.862310: Using load_power data to fill gaps in load_today data
2026-08-16 14:00:02.755647: Processing 721 30-minute periods for power integration
2026-08-16 14:00:03.060501: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:00:03.060689: Car charging hold False, threshold 6.0kWh
2026-08-16 14:00:03.060749: Current data so far today: load 7.1kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:00:03.104362: Cars: SoC: [18.166]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:00:03.105701: Standing charge is set to 46.63p
2026-08-16 14:00:03.361442: 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-16 14:00:03.361946: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.362262: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.363114: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.363406: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.363670: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.363924: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.364313: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.364613: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.364896: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.365172: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.365472: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.365891: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.366276: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:00:03.366523: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:00:03.372843: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:00:03.373615: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 14:00:03.428030: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:00:03.428493: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:00:03.430682: High export rate found rates in range 99p to -99p
2026-08-16 14:00:03.471680: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:00:03.472170: Car 0 plan charging from 18.166kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:00:03.474342: Car 0 charging plan is: [{'start': 840, 'end': 870, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:00:03.496288: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:00:03.496839: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:00:03.626722: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 14:00:03.626899: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:00:04.017477: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:00:04.047107: Today's load divergence 87.68%, in-day adjustment 86.08%, damping 0.95x, yesterday 82.97% today 88.29% blend 41.67%
2026-08-16 14:00:04.048184: Today's predicted so far 8.83kWh with 0.0kWh car/iBoost excluded, 6.02kWh import ignored, and 8.83kWh forecast extra.
2026-08-16 14:00:04.048230: Today's actual load so far 7.13kWh with 0.0kWh car/iBoost excluded, and 6.02kWh import ignored.
2026-08-16 14:00:04.093824: 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-16T16:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, '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-16T17:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, 'source': 'SMART'}]]
2026-08-16 14:00:04.094649: Sensor changes require a replan, will recompute the plan
2026-08-16 14:00:04.094923: Inverter 0: Type SK Sunsynk
2026-08-16 14:00:04.095077: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:00:04.095388: Reserve min: 7%, battery_min: 7%
2026-08-16 14:00:04.095580: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:00:04.095962: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -55W, load power 338W, PV Power 0W
2026-08-16 14:00:04.096265: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:00:04.096475: Inverter 0 scheduled charge enable is False
2026-08-16 14:00:04.096610: Inverter 0 charge windows currently []
2026-08-16 14:00:04.096710: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:00:04.096943: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:00:04.097091: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:00:04.097242: Inverter 0 scheduled discharge enable is False
2026-08-16 14:00:04.097497: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:00:04.097641: Inverter 0 discharge windows currently []
2026-08-16 14:00:04.097736: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:00:04.097834: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:00:04.097910: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:00:04.221577: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:00:04.221811: Will recompute the plan as it is invalid
2026-08-16 14:00:04.221994: Recompute is saving previous plan...
2026-08-16 14:00:04.223202: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:00:04.229763: Best export window [  ]
2026-08-16 14:00:04.230869: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:00:04.234316: Load divergence over 8.0 hours mean 420.52W, min 253.8W, max 766.8W, std dev 98.29W, divergence 11.69%
2026-08-16 14:00:04.276057: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:00:04.281528: LoadML is_calculating True
2026-08-16 14:00:04.281754: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:00:04.305504: 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(0.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-16 14:00:04.306304: Optimise levels pass started at 2026-08-16 14:00:04
2026-08-16 14:00:04.306461: Optimise all windows, total charge 31 export 1
2026-08-16 14:00:09.945118: >> Region optimisation pass width 960 gives best_metric 455.46p, best_cost 460.1p, best_cycle 34.69kWh, best_import 23.07kWh
2026-08-16 14:00:13.043854: >> Region optimisation pass width 480 gives best_metric 455.46p, best_cost 460.1p, best_cycle 34.69kWh, best_import 23.07kWh
2026-08-16 14:00:13.808684: >> Region optimisation pass width 240 gives best_metric 455.46p, best_cost 460.1p, best_cycle 34.69kWh, best_import 23.07kWh
2026-08-16 14:00:18.820078: >> Region optimisation pass width 120 gives best_metric 455.45p, best_cost 460.1p, best_cycle 34.69kWh, best_import 23.07kWh
2026-08-16 14:00:18.820433: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 14:00:18.820507: Optimise levels pass ended at 2026-08-16 14:00:18, duration 14.5 seconds tried 93 combinations
2026-08-16 14:00:18.820562: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 455.45p, best_keep 0kWh, best_cycle 34.69kWh, best_carbon 0kg, best_import 23.07kWh
2026-08-16 14:00:18.847213: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:00:35.371008: Tweak plan optimisation started metric 369.9p, cost 377.62p
2026-08-16 14:00:36.141933: Tweak optimisation finished metric 369.9p, cost 377.62p, metric_keep 0kWh, cycle 23.09kWh, carbon 0kg, import 12.76kWh, changed 8 window(s)
2026-08-16 14:00:36.167254: Swap charge optimisation started metric 369.9p, cost 377.62p, min_improvement_swap 0.1p
2026-08-16 14:00:37.549708: Swap charge optimisation finished metric 369.9p, cost 377.62p
2026-08-16 14:00:37.789111: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 365.91p -> 365.64p, plan now metric 371.41p, cost 374.11p, cycle 23.54kWh, import 12.32kWh
2026-08-16 14:00:37.804744: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:00:37.822974: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:00:37.823451: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:00:37.826576: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:00:37.955827: Previous plan best metric is 369.9 (cost 377.65) and new plan best metric is 369.9 (cost 377.62)
2026-08-16 14:00:37.972353: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:00:37.972571: Plan valid is now true after recompute was False
2026-08-16 14:00:38.029695: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 672.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.19kWh, PV 0.0kWh
2026-08-16 14:00:38.335657: Battery has 17.25 hours left - now at 11.68kWh
2026-08-16 14:00:38.435881: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 729.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:15:00, load 29.2kWh, PV 0.0kWh
2026-08-16 14:00:38.624775: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 457.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.2kWh, PV 0.0kWh
2026-08-16 14:00:38.887830: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 421.15p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.19kWh, PV 0.0kWh
2026-08-16 14:00:38.888197: Saving plan best values to HA entities
2026-08-16 14:00:39.202643: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:00:39.229142: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:00:39.240838: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.43kWh, house 0.94kWh, export 0.0kWh, metric 421.15p, metric10 457.11p
2026-08-16 14:00:39.279979: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0109 val_mae=0.0055 kWh val_bias=+0.0020 kWh (+2.3%) combined=0.0039 kWh ema_combined=0.0036 kWh
2026-08-16 14:00:39.438075: Marginal costs baseline metric (no standing charge): 374.52
2026-08-16 14:00:40.197007: Marginal energy costs matrix computed: min=8.0 max=21.55
2026-08-16 14:00:40.375847: Rate array import [{'start': 840, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 840, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:00:40.376448: - Your estimated bill for today is £3.07 and tomorrow is £1.39
2026-08-16 14:00:40.376517: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:00:40.376536: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:00:40.376761: - For the next 48 hours there will be no solar generation.
2026-08-16 14:00:40.376794: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:00:40.376811: - Your car is currently charging.
2026-08-16 14:00:40.376825: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:00:40.376839: 
2026-08-16 14:00:40.427054: Plan calculation took 36.21 seconds
2026-08-16 14:00:40.491883: Saved plan to storage
2026-08-16 14:00:40.496888: No high rate period found
2026-08-16 14:00:40.621685: Import threshold used for optimisation was 8.0p
2026-08-16 14:00:40.807823: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:00:40.837452: Inverter 0: Type SK Sunsynk
2026-08-16 14:00:40.837660: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:00:40.840194: Reserve min: 7%, battery_min: 7%
2026-08-16 14:00:40.840304: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:00:40.841112: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 277W, current battery voltage 51.2V, grid power -55W, load power 343W, PV Power 0W
2026-08-16 14:00:40.841380: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:00:40.841586: Inverter 0 scheduled charge enable is False
2026-08-16 14:00:40.841811: Inverter 0 charge windows currently []
2026-08-16 14:00:40.841921: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:00:40.842159: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:00:40.842219: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:00:40.842373: Inverter 0 scheduled discharge enable is False
2026-08-16 14:00:40.842686: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:00:40.843084: Inverter 0 discharge windows currently []
2026-08-16 14:00:40.843188: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:00:40.843273: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:00:40.843316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:00:40.989197: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:00:40.989402: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:00:40.989481: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:00:40.989698: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:00:40.989800: No export window planned
2026-08-16 14:00:40.989937: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:00:40.989982: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:00:40.990150: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:00:40.990283: Car charging from battery is off, next slot for car 0 is 08-16 14:00:00 - 08-16 14:30:00
2026-08-16 14:00:40.990365: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-16 14:00:46.017078: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-16 14:00:51.055445: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-16 14:00:51.055626: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:00:51.055809: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:00:51.055880: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:00:51.055941: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:00:51.056084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.056599: 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-16 14:00:51.179848: 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-16 14:00:51.294649: 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-16 14:00:51.406918: 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-16 14:00:51.512606: 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-16 14:00:51.625681: 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-16 14:00:51.732275: 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-16 14:00:51.844530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.844890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.845174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.845351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.845618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.845821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.846020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:00:51.846212: Inverter 0 count register writes 1
2026-08-16 14:00:51.914134: Total inverter register writes now 837
2026-08-16 14:00:52.077452: Info: Completed run status Hold for car
2026-08-16 14:00:52.354443: Info: record_status Hold for car
2026-08-16 14:00:52.367104: Saved current settings to /config/predbat_config.json
2026-08-16 14:00:52.367395: Compare, best tariff: current metric 318.25p
2026-08-16 14:01:15.490778: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0109 val_mae=0.0047 kWh val_bias=+0.0011 kWh (+1.2%) combined=0.0035 kWh ema_combined=0.0036 kWh
2026-08-16 14:01:33.632211: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:01:33.632663: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:01:33.632725: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:01:33.632990: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:01:33.633063: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:01:33.633170: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:01:33.633263: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:01:58.160767: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0118 val_mae=0.0052 kWh val_bias=-0.0022 kWh (-2.4%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 14:02:35.283987: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0105 val_mae=0.0046 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0031 kWh ema_combined=0.0034 kWh
2026-08-16 14:03:13.882536: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0109 val_mae=0.0042 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 14:03:48.366778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:03:48.366997: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:03:48.367039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:03:48.367152: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:03:48.367187: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:03:48.367205: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:03:48.367220: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:03:50.080124: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0118 val_mae=0.0047 kWh val_bias=+0.0022 kWh (+2.4%) combined=0.0039 kWh ema_combined=0.0034 kWh
2026-08-16 14:04:24.676885: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0095 val_mae=0.0042 kWh val_bias=-0.0019 kWh (-2.2%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 14:04:57.412927: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0088 val_mae=0.0044 kWh val_bias=-0.0020 kWh (-2.3%) combined=0.0036 kWh ema_combined=0.0035 kWh
2026-08-16 14:05:00.672649: --------------- PredBat - update at 2026-08-16 14:05:00+01:00 with clock skew 0 minutes, minutes now 845
2026-08-16 14:05:00.673881: Saved current settings to /config/predbat_config.json
2026-08-16 14:05:00.674093: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 72.0 minutes
2026-08-16 14:05:00.674247: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:05:00.674376: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:05:00.731593: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:05:00.732082: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:05:00.732599: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:05:00.734016: Cars 1 charging from battery False 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-16 14:05:00.734314: Predbat mode is set to Control charge & discharge
2026-08-16 14:05:01.014349: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:05:01.014586: Using load_power data to fill gaps in load_today data
2026-08-16 14:05:02.363906: Processing 721 30-minute periods for power integration
2026-08-16 14:05:02.614125: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:05:02.614454: Car charging hold False, threshold 6.0kWh
2026-08-16 14:05:02.614519: Current data so far today: load 7.1kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:05:02.635905: Cars: SoC: [18.752]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:05:02.636884: Standing charge is set to 46.63p
2026-08-16 14:05:03.018514: 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-16 14:05:03.019039: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.019292: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.019526: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.019770: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.019971: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.020187: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.020535: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.020788: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.021221: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.021471: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.021677: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.021884: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.022979: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:05:03.023141: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:05:03.031595: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:05:03.035357: Import rates: min 8.0p, max 33.75p, average 25.48p
2026-08-16 14:05:03.092573: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:05:03.093938: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:05:03.095052: High export rate found rates in range 99p to -99p
2026-08-16 14:05:03.132077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:05:03.132429: Car 0 plan charging from 18.752kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:05:03.133983: Car 0 charging plan is: [{'start': 845, 'end': 870, 'kwh': 3.083, 'average': 8.0, 'cost': 24.67, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:05:03.165166: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:05:03.165772: 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-16 14:05:03.290404: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 14:05:03.290599: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:05:03.643170: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:05:03.809674: Today's load divergence 87.46%, in-day adjustment 85.97%, damping 0.95x, yesterday 82.97% today 88.09% blend 41.32%
2026-08-16 14:05:03.809826: Today's predicted so far 8.92kWh with 0.0kWh car/iBoost excluded, 6.03kWh import ignored, and 8.92kWh forecast extra.
2026-08-16 14:05:03.809871: Today's actual load so far 7.19kWh with 0.0kWh car/iBoost excluded, and 6.03kWh import ignored.
2026-08-16 14:05:03.930323: Inverter 0: Type SK Sunsynk
2026-08-16 14:05:03.930461: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:05:03.930646: Reserve min: 7%, battery_min: 7%
2026-08-16 14:05:03.930722: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:05:03.930962: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -339W, load power 339W, PV Power 0W
2026-08-16 14:05:03.931136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:05:03.931228: Inverter 0 scheduled charge enable is False
2026-08-16 14:05:03.931254: Inverter 0 charge windows currently []
2026-08-16 14:05:03.931276: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:05:03.931374: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:05:03.931404: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:05:03.931437: Inverter 0 scheduled discharge enable is False
2026-08-16 14:05:03.931542: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:05:03.931573: Inverter 0 discharge windows currently []
2026-08-16 14:05:03.931592: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:05:03.931607: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:05:03.931621: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:05:04.047112: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:05:04.047236: Plan was last updated on 2026-08-16 14:00:00+01:00 and is now 5.0 minutes old
2026-08-16 14:05:04.047468: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:05:04.047514: Best export window [  ]
2026-08-16 14:05:04.048650: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:05:04.052659: Load divergence over 8.0 hours mean 422.55W, min 261.0W, max 799.8W, std dev 101.15W, divergence 11.97%
2026-08-16 14:05:04.101118: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:05:04.101256: LoadML is_calculating True
2026-08-16 14:05:04.101285: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:05:04.152298: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 673.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.27kWh, PV 0.0kWh
2026-08-16 14:05:04.508028: Battery has 17.17 hours left - now at 11.68kWh
2026-08-16 14:05:04.584574: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 729.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:15:00, load 29.27kWh, PV 0.0kWh
2026-08-16 14:05:04.736033: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 459.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.27kWh, PV 0.0kWh
2026-08-16 14:05:04.921356: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 425.13p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.27kWh, PV 0.0kWh
2026-08-16 14:05:04.921457: Saving plan best values to HA entities
2026-08-16 14:05:05.339677: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:05:05.350568: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:05:05.361047: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.96kWh, house 0.91kWh, export 0.0kWh, metric 425.13p, metric10 459.44p
2026-08-16 14:05:05.703904: Marginal costs baseline metric (no standing charge): 378.4984
2026-08-16 14:05:06.051013: Marginal energy costs matrix computed: min=8.0 max=21.6
2026-08-16 14:05:06.207032: Rate array import [{'start': 845, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:05:06.208098: - Your estimated bill for today is £3.06 and tomorrow is £1.39
2026-08-16 14:05:06.208169: - Import rates are cheap (8.0p) for the next 2  hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:05:06.208201: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:05:06.208316: - For the next 48 hours there will be no solar generation.
2026-08-16 14:05:06.208369: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:05:06.208467: - Your car is currently charging.
2026-08-16 14:05:06.208574: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:05:06.208728: 
2026-08-16 14:05:06.292351: Plan calculation took 2.25 seconds
2026-08-16 14:05:06.298079: No high rate period found
2026-08-16 14:05:06.419927: Import threshold used for optimisation was 8.0p
2026-08-16 14:05:06.522624: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:05:06.532095: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:05:06.532441: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:05:06.532645: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:05:06.533094: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:05:06.533302: No export window planned
2026-08-16 14:05:06.533609: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:05:06.533769: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:05:06.534474: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:05:06.534749: Car charging from battery is off, next slot for car 0 is 08-16 14:05:00 - 08-16 14:30:00
2026-08-16 14:05:06.534983: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:05:06.535222: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:05:06.535367: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:05:06.535508: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:05:06.535768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.535900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536728: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.536863: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537012: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537145: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537267: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537409: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537610: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.537956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:05:06.538670: Inverter 0 count register writes 0
2026-08-16 14:05:06.577539: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 14:05:06.584272: Total inverter register writes now 837
2026-08-16 14:05:06.668621: Info: Completed run status Hold for car
2026-08-16 14:05:06.699899: Info: record_status Hold for car
2026-08-16 14:05:06.714184: Saved current settings to /config/predbat_config.json
2026-08-16 14:05:06.714610: Compare, best tariff: current metric 318.25p
2026-08-16 14:05:42.457769: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0082 val_mae=0.0041 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0029 kWh ema_combined=0.0033 kWh
2026-08-16 14:05:48.983099: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:05:48.983605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:05:48.983680: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:05:48.984041: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:05:48.984108: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:05:48.984331: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:05:48.985220: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:06:22.451228: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0075 val_mae=0.0033 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-16 14:07:13.789539: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0077 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0026 kWh
2026-08-16 14:07:55.958268: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0078 val_mae=0.0033 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 14:08:03.702276: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:08:03.702616: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:08:03.702783: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:08:03.703096: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:08:03.703162: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:08:03.703258: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:08:03.703319: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:08:31.184754: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0074 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-16 14:09:07.856189: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0064 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 14:09:46.127664: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0072 val_mae=0.0032 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 14:10:00.315017: --------------- PredBat - update at 2026-08-16 14:10:00+01:00 with clock skew 0 minutes, minutes now 850
2026-08-16 14:10:00.317205: Saved current settings to /config/predbat_config.json
2026-08-16 14:10:00.317567: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 77.0 minutes
2026-08-16 14:10:00.317800: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:10:00.318058: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:10:00.354327: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:10:00.354642: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:10:00.354922: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:10:00.355531: Cars 1 charging from battery False 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-16 14:10:00.355752: Predbat mode is set to Control charge & discharge
2026-08-16 14:10:00.704824: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:10:00.705155: Using load_power data to fill gaps in load_today data
2026-08-16 14:10:02.356299: Processing 721 30-minute periods for power integration
2026-08-16 14:10:02.582332: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:10:02.582556: Car charging hold False, threshold 6.0kWh
2026-08-16 14:10:02.582611: Current data so far today: load 7.22kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:10:02.610997: Cars: SoC: [18.752]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:10:02.612448: Standing charge is set to 46.63p
2026-08-16 14:10:02.948610: 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-16 14:10:02.961439: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.961569: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.961671: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.961759: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.961844: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.961955: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962159: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962327: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962431: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962521: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962676: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962766: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.962977: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:10:02.963042: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:10:03.007542: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:10:03.007984: Import rates: min 8.0p, max 33.75p, average 25.53p
2026-08-16 14:10:03.109931: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:10:03.110446: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:10:03.111865: High export rate found rates in range 99p to -99p
2026-08-16 14:10:03.156413: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:10:03.157961: Car 0 plan charging from 18.752kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:10:03.158712: Car 0 charging plan is: [{'start': 850, 'end': 870, 'kwh': 2.467, 'average': 8.0, 'cost': 19.73, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:10:03.178926: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:10:03.179420: 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-16 14:10:03.271116: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 14:10:03.271469: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:10:03.523305: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:10:03.617110: Today's load divergence 88.14%, in-day adjustment 86.37%, damping 0.95x, yesterday 82.97% today 88.74% blend 40.97%
2026-08-16 14:10:03.617322: Today's predicted so far 8.91kWh with 0.0kWh car/iBoost excluded, 6.06kWh import ignored, and 8.91kWh forecast extra.
2026-08-16 14:10:03.617363: Today's actual load so far 7.26kWh with 0.0kWh car/iBoost excluded, and 6.06kWh import ignored.
2026-08-16 14:10:03.706749: Inverter 0: Type SK Sunsynk
2026-08-16 14:10:03.707030: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:10:03.707433: Reserve min: 7%, battery_min: 7%
2026-08-16 14:10:03.707650: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:10:03.708147: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -333W, load power 332W, PV Power 0W
2026-08-16 14:10:03.708494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:10:03.708721: Inverter 0 scheduled charge enable is False
2026-08-16 14:10:03.708865: Inverter 0 charge windows currently []
2026-08-16 14:10:03.709054: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:10:03.709337: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:10:03.709484: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:10:03.709640: Inverter 0 scheduled discharge enable is False
2026-08-16 14:10:03.709960: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:10:03.710115: Inverter 0 discharge windows currently []
2026-08-16 14:10:03.710242: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:10:03.710363: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:10:03.710480: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:10:03.887296: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:10:03.887631: Plan was last updated on 2026-08-16 14:00:00+01:00 and is now 10.0 minutes old
2026-08-16 14:10:03.888119: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:10:03.888338: Best export window [  ]
2026-08-16 14:10:03.889792: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:10:03.895091: Load divergence over 8.0 hours mean 424.58W, min 285.0W, max 797.4W, std dev 101.36W, divergence 11.94%
2026-08-16 14:10:03.961605: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:10:03.977403: LoadML is_calculating True
2026-08-16 14:10:03.977653: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:10:04.086285: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 674.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:10:00, load 28.5kWh, PV 0.0kWh
2026-08-16 14:10:04.327804: Battery has 17.0 hours left - now at 11.68kWh
2026-08-16 14:10:04.412530: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 729.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.51kWh, PV 0.0kWh
2026-08-16 14:10:04.594069: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 462.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.51kWh, PV 0.0kWh
2026-08-16 14:10:04.789023: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 429.28p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 14:10:04.789159: Saving plan best values to HA entities
2026-08-16 14:10:05.198149: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:10:05.210070: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:10:05.229321: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.51kWh, house 0.88kWh, export 0.0kWh, metric 429.28p, metric10 462.23p
2026-08-16 14:10:05.366148: Marginal costs baseline metric (no standing charge): 382.6496
2026-08-16 14:10:05.947777: Marginal energy costs matrix computed: min=8.0 max=21.65
2026-08-16 14:10:06.024692: Rate array import [{'start': 850, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:10:06.025626: - Your estimated bill for today is £3.06 and tomorrow is £1.39
2026-08-16 14:10:06.025700: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:10:06.025722: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:10:06.025738: - For the next 48 hours there will be no solar generation.
2026-08-16 14:10:06.025760: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:10:06.025811: - Your car is currently charging.
2026-08-16 14:10:06.025853: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:10:06.025905: 
2026-08-16 14:10:06.099817: Plan calculation took 2.21 seconds
2026-08-16 14:10:06.118161: No high rate period found
2026-08-16 14:10:06.234431: Import threshold used for optimisation was 8.0p
2026-08-16 14:10:06.359340: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:10:06.370238: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:10:06.370608: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:10:06.370792: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:10:06.371859: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:10:06.373409: No export window planned
2026-08-16 14:10:06.374575: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:10:06.374738: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:10:06.375047: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:10:06.375292: Car charging from battery is off, next slot for car 0 is 08-16 14:10:00 - 08-16 14:30:00
2026-08-16 14:10:06.375460: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:10:06.375699: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:10:06.375851: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:10:06.376035: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:10:06.376244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.376378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.376528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.376690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.376817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.376997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.377150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.377304: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.377459: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.377618: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.377766: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.378980: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379136: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379258: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379557: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.379838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.380017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.380166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.380322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:06.380456: Inverter 0 count register writes 0
2026-08-16 14:10:06.418290: 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-16 14:10:06.418480: Recompute is saving previous plan...
2026-08-16 14:10:06.420544: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:10:06.420913: Best export window [  ]
2026-08-16 14:10:06.422063: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:10:06.426032: Load divergence over 8.0 hours mean 424.58W, min 285.0W, max 797.4W, std dev 101.36W, divergence 11.94%
2026-08-16 14:10:06.447293: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:10:06.447620: LoadML is_calculating True
2026-08-16 14:10:06.447680: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:10:06.464656: 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(0.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-16 14:10:06.465669: Optimise levels pass started at 2026-08-16 14:10:06
2026-08-16 14:10:06.465719: Optimise all windows, total charge 31 export 1
2026-08-16 14:10:11.727396: >> Region optimisation pass width 960 gives best_metric 455.67p, best_cost 461.86p, best_cycle 35.06kWh, best_import 23.29kWh
2026-08-16 14:10:14.349261: >> Region optimisation pass width 480 gives best_metric 455.66p, best_cost 461.86p, best_cycle 35.06kWh, best_import 23.29kWh
2026-08-16 14:10:14.848679: >> Region optimisation pass width 240 gives best_metric 455.67p, best_cost 461.86p, best_cycle 35.06kWh, best_import 23.29kWh
2026-08-16 14:10:16.615232: >> Region optimisation pass width 120 gives best_metric 455.67p, best_cost 461.86p, best_cycle 35.06kWh, best_import 23.29kWh
2026-08-16 14:10:16.615453: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 14:10:16.615515: Optimise levels pass ended at 2026-08-16 14:10:16, duration 10.1 seconds tried 83 combinations
2026-08-16 14:10:16.615560: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 455.67p, best_keep 0kWh, best_cycle 35.06kWh, best_carbon 0kg, best_import 23.29kWh
2026-08-16 14:10:16.640547: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:10:34.187450: Tweak plan optimisation started metric 369.3p, cost 377.32p
2026-08-16 14:10:35.150682: Tweak optimisation finished metric 369.3p, cost 377.32p, metric_keep 0kWh, cycle 23.12kWh, carbon 0kg, import 12.72kWh, changed 8 window(s)
2026-08-16 14:10:35.172702: Swap charge optimisation started metric 369.3p, cost 377.32p, min_improvement_swap 0.1p
2026-08-16 14:10:36.456612: Swap charge optimisation finished metric 369.3p, cost 377.32p
2026-08-16 14:10:36.606682: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 365.61p -> 365.35p, plan now metric 370.78p, cost 373.87p, cycle 23.57kWh, import 12.29kWh
2026-08-16 14:10:36.618629: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:10:36.619038: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:10:36.619337: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:10:36.619549: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:10:36.663529: Previous plan best metric is 369.3 (cost 377.34) and new plan best metric is 369.3 (cost 377.32)
2026-08-16 14:10:36.663831: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:10:36.664066: Plan valid is now true after recompute was False
2026-08-16 14:10:36.696587: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 672.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:10:00, load 28.28kWh, PV 0.0kWh
2026-08-16 14:10:36.997682: Battery has 17.0 hours left - now at 11.68kWh
2026-08-16 14:10:37.044145: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 727.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:10:00, load 29.28kWh, PV 0.0kWh
2026-08-16 14:10:37.192544: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 454.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.28kWh, PV 0.0kWh
2026-08-16 14:10:37.333225: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 420.86p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.28kWh, PV 0.0kWh
2026-08-16 14:10:37.333354: Saving plan best values to HA entities
2026-08-16 14:10:37.636106: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:10:37.645059: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:10:37.653879: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.45kWh, house 0.88kWh, export 0.0kWh, metric 420.86p, metric10 454.83p
2026-08-16 14:10:37.768356: Marginal costs baseline metric (no standing charge): 374.2277
2026-08-16 14:10:38.230809: Marginal energy costs matrix computed: min=8.0 max=21.65
2026-08-16 14:10:38.370881: Rate array import [{'start': 850, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 850, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:10:38.372217: - Your estimated bill for today is £3.06 and tomorrow is £1.39
2026-08-16 14:10:38.372283: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:10:38.372372: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:10:38.372521: - For the next 48 hours there will be no solar generation.
2026-08-16 14:10:38.372648: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:10:38.372769: - Your car is currently charging.
2026-08-16 14:10:38.372904: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:10:38.373081: 
2026-08-16 14:10:38.437398: Plan calculation took 32.02 seconds
2026-08-16 14:10:38.437627: Inverter 0: Type SK Sunsynk
2026-08-16 14:10:38.437679: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:10:38.437864: Reserve min: 7%, battery_min: 7%
2026-08-16 14:10:38.437962: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:10:38.438240: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -329W, load power 329W, PV Power 0W
2026-08-16 14:10:38.438418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:10:38.438513: Inverter 0 scheduled charge enable is False
2026-08-16 14:10:38.438551: Inverter 0 charge windows currently []
2026-08-16 14:10:38.438578: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:10:38.438797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:10:38.438846: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:10:38.439023: Inverter 0 scheduled discharge enable is False
2026-08-16 14:10:38.439266: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:10:38.439314: Inverter 0 discharge windows currently []
2026-08-16 14:10:38.439387: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:10:38.439430: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:10:38.439450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:10:38.541649: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:10:38.542045: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:10:38.542503: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:10:38.542804: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:10:38.542994: No export window planned
2026-08-16 14:10:38.543212: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:10:38.543334: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:10:38.543583: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:10:38.543792: Car charging from battery is off, next slot for car 0 is 08-16 14:10:00 - 08-16 14:30:00
2026-08-16 14:10:38.543967: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:10:38.544163: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:10:38.544304: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:10:38.544447: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:10:38.544644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.544777: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.544917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545579: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545702: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545823: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.545959: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546080: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546198: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546361: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.546951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.547112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.547277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.547441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.547608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:10:38.547716: Inverter 0 count register writes 0
2026-08-16 14:10:38.601190: Total inverter register writes now 837
2026-08-16 14:10:38.682826: Info: Completed run status Hold for car
2026-08-16 14:10:38.693203: Info: record_status Hold for car
2026-08-16 14:10:38.723116: Saved current settings to /config/predbat_config.json
2026-08-16 14:10:38.723503: Compare, best tariff: current metric 318.25p
2026-08-16 14:10:40.968575: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-16 14:11:16.702123: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0072 val_mae=0.0029 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 14:11:18.911165: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:11:18.911624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:11:18.911795: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:11:18.912348: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:11:18.912594: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:11:18.912830: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:11:18.913111: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:11:57.579898: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0072 val_mae=0.0032 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0025 kWh ema_combined=0.0021 kWh
2026-08-16 14:12:34.699894: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-16 14:13:08.493368: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 14:13:33.474288: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:13:33.474625: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:13:33.474679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:13:33.474852: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:13:33.474903: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:13:33.475166: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:13:33.475238: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:13:42.298958: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0059 val_mae=0.0032 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0025 kWh ema_combined=0.0020 kWh
2026-08-16 14:14:15.599673: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0063 val_mae=0.0026 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-16 14:14:15.600629: ML Predictor: Restored best weights from epoch with val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-16 14:14:15.600764: ML Predictor: Training complete, final val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-16 14:14:22.795886: ML Predictor: AR rollout over holdout: ar_mae=0.0030 kWh ar_bias=+0.0004 kWh (+0.4%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 14:14:22.817624: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0027 kWh
2026-08-16 14:14:22.907669: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-16 14:14:22.907813: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 14:14:23.710977: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 14:14:30.073872: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 14:14:30.135144: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0589 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.6216 std=4.4960) import_rate(mean=17.2202 std=8.3994) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-16 14:14:30.229059: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 14:14:30.246347: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 14:14:30.368899: ML Predictor: Baseline (pre-finetune) val_mae=0.0072 kWh val_bias=+0.0030 kWh
2026-08-16 14:15:00.018971: --------------- PredBat - update at 2026-08-16 14:15:00+01:00 with clock skew 0 minutes, minutes now 855
2026-08-16 14:15:00.020037: Saved current settings to /config/predbat_config.json
2026-08-16 14:15:00.020190: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 82.0 minutes
2026-08-16 14:15:00.020369: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:15:00.020521: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:15:00.097354: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:15:00.097656: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:15:00.098029: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:15:00.098868: Cars 1 charging from battery False 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-16 14:15:00.099158: Predbat mode is set to Control charge & discharge
2026-08-16 14:15:00.523818: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:15:00.524135: Using load_power data to fill gaps in load_today data
2026-08-16 14:15:01.746751: Processing 721 30-minute periods for power integration
2026-08-16 14:15:02.120312: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:15:02.121000: Car charging hold False, threshold 6.0kWh
2026-08-16 14:15:02.121078: Current data so far today: load 7.25kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:15:02.146451: Cars: SoC: [18.752]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:15:02.147998: Standing charge is set to 46.63p
2026-08-16 14:15:02.276238: 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-16 14:15:02.276581: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.276742: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.276867: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277109: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277244: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277360: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277626: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277751: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.277863: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.278076: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.278237: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.278332: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.278587: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:15:02.278659: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:15:02.287004: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:15:02.287991: Import rates: min 8.0p, max 33.75p, average 25.57p
2026-08-16 14:15:02.366395: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:15:02.366554: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:15:02.370420: High export rate found rates in range 99p to -99p
2026-08-16 14:15:02.428547: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:15:02.428798: Car 0 plan charging from 18.752kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:15:02.429334: Car 0 charging plan is: [{'start': 855, 'end': 870, 'kwh': 1.85, 'average': 8.0, 'cost': 14.8, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:15:02.469260: Battery level now 11.68kWh, -1hr ago 11.84kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:15:02.469577: 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-16 14:15:02.550888: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 275.55p, import 228.92p, export 0.0p, carbon 0.0kg
2026-08-16 14:15:02.551198: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:15:02.694527: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:15:02.750685: Today's load divergence 87.66%, in-day adjustment 86.12%, damping 0.95x, yesterday 82.97% today 88.28% blend 40.62%
2026-08-16 14:15:02.750943: Today's predicted so far 8.9kWh with 0.0kWh car/iBoost excluded, 6.08kWh import ignored, and 8.9kWh forecast extra.
2026-08-16 14:15:02.752092: Today's actual load so far 7.2kWh with 0.0kWh car/iBoost excluded, and 6.08kWh import ignored.
2026-08-16 14:15:02.792862: Inverter 0: Type SK Sunsynk
2026-08-16 14:15:02.793136: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:15:02.793414: Reserve min: 7%, battery_min: 7%
2026-08-16 14:15:02.793928: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:15:02.794311: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -712W, load power 711W, PV Power 0W
2026-08-16 14:15:02.794564: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:15:02.794719: Inverter 0 scheduled charge enable is False
2026-08-16 14:15:02.794825: Inverter 0 charge windows currently []
2026-08-16 14:15:02.794910: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:15:02.795141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:15:02.795245: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:15:02.795350: Inverter 0 scheduled discharge enable is False
2026-08-16 14:15:02.795551: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:15:02.795659: Inverter 0 discharge windows currently []
2026-08-16 14:15:02.795730: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:15:02.795807: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:15:02.795876: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:15:02.927151: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:15:02.927289: Plan was last updated on 2026-08-16 14:10:00+01:00 and is now 5.0 minutes old
2026-08-16 14:15:02.927563: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:15:02.927612: Best export window [  ]
2026-08-16 14:15:02.929054: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:15:02.934558: Load divergence over 8.0 hours mean 426.6W, min 283.8W, max 816.0W, std dev 103.48W, divergence 12.13%
2026-08-16 14:15:02.969051: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:15:02.969210: LoadML is_calculating True
2026-08-16 14:15:02.972217: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:15:03.094473: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 673.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.37kWh, PV 0.0kWh
2026-08-16 14:15:03.368042: Battery has 17.0 hours left - now at 11.68kWh
2026-08-16 14:15:03.482132: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 726.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:15:00, load 29.37kWh, PV 0.0kWh
2026-08-16 14:15:03.671921: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 457.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.37kWh, PV 0.0kWh
2026-08-16 14:15:03.795844: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 424.63p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.37kWh, PV 0.0kWh
2026-08-16 14:15:03.796066: Saving plan best values to HA entities
2026-08-16 14:15:04.230378: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:15:04.240619: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:15:04.250777: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.96kWh, house 0.84kWh, export 0.0kWh, metric 424.63p, metric10 457.14p
2026-08-16 14:15:04.398221: Marginal costs baseline metric (no standing charge): 377.9933
2026-08-16 14:15:05.013117: Marginal energy costs matrix computed: min=8.0 max=21.72
2026-08-16 14:15:05.152072: Rate array import [{'start': 855, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:15:05.153405: - Your estimated bill for today is £3.06 and tomorrow is £1.39
2026-08-16 14:15:05.153630: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:15:05.153791: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:15:05.160921: - For the next 48 hours there will be no solar generation.
2026-08-16 14:15:05.161154: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:15:05.161294: - Your car is currently charging.
2026-08-16 14:15:05.161420: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:15:05.161543: 
2026-08-16 14:15:05.242077: Plan calculation took 2.31 seconds
2026-08-16 14:15:05.249068: No high rate period found
2026-08-16 14:15:05.418627: Import threshold used for optimisation was 8.0p
2026-08-16 14:15:05.571050: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:15:05.587215: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:15:05.587360: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:15:05.587596: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:15:05.587813: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:15:05.587892: No export window planned
2026-08-16 14:15:05.588021: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:15:05.588064: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:15:05.588203: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:15:05.588307: Car charging from battery is off, next slot for car 0 is 08-16 14:15:00 - 08-16 14:30:00
2026-08-16 14:15:05.588374: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:15:05.588571: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:15:05.588767: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:15:05.588919: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:15:05.589164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589633: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.589854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590007: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590130: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590244: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590355: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590493: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590606: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590725: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.590887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:15:05.591726: Inverter 0 count register writes 0
2026-08-16 14:15:05.617408: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 14:15:05.631480: Total inverter register writes now 837
2026-08-16 14:15:05.698642: Info: Completed run status Hold for car
2026-08-16 14:15:05.709905: Info: record_status Hold for car
2026-08-16 14:15:05.735817: Saved current settings to /config/predbat_config.json
2026-08-16 14:15:05.736135: Compare, best tariff: current metric 318.25p
2026-08-16 14:15:06.771638: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0115 val_mae=0.0057 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0041 kWh ema_combined=0.0041 kWh
2026-08-16 14:15:42.700053: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0138 val_mae=0.0058 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0031 kWh ema_combined=0.0038 kWh
2026-08-16 14:15:48.944016: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:15:48.944633: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:15:48.944839: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:15:48.945338: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:15:48.945535: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:15:48.945708: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:15:48.945875: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:16:20.242274: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0168 val_mae=0.0073 kWh val_bias=-0.0042 kWh (-5.3%) combined=0.0061 kWh ema_combined=0.0045 kWh
2026-08-16 14:16:55.530647: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0150 val_mae=0.0057 kWh val_bias=+0.0016 kWh (+2.0%) combined=0.0038 kWh ema_combined=0.0043 kWh
2026-08-16 14:17:30.729772: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0121 val_mae=0.0055 kWh val_bias=-0.0017 kWh (-2.1%) combined=0.0041 kWh ema_combined=0.0042 kWh
2026-08-16 14:18:03.580593: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:18:03.581087: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:18:03.581253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:18:03.581582: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:18:03.581755: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:18:03.581880: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:18:03.582009: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:18:04.782124: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0124 val_mae=0.0065 kWh val_bias=-0.0033 kWh (-4.1%) combined=0.0052 kWh ema_combined=0.0045 kWh
2026-08-16 14:18:40.507908: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0130 val_mae=0.0054 kWh val_bias=-0.0026 kWh (-3.2%) combined=0.0040 kWh ema_combined=0.0044 kWh
2026-08-16 14:19:14.085482: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0124 val_mae=0.0044 kWh val_bias=+0.0022 kWh (+2.8%) combined=0.0042 kWh ema_combined=0.0043 kWh
2026-08-16 14:19:47.838526: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0121 val_mae=0.0042 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0025 kWh ema_combined=0.0038 kWh
2026-08-16 14:20:00.038742: --------------- PredBat - update at 2026-08-16 14:20:00+01:00 with clock skew 0 minutes, minutes now 860
2026-08-16 14:20:00.040892: Saved current settings to /config/predbat_config.json
2026-08-16 14:20:00.042888: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 87.0 minutes
2026-08-16 14:20:00.043134: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:20:00.043337: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:20:00.119951: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:20:00.120132: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:20:00.120514: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:20:00.121346: Cars 1 charging from battery False 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-16 14:20:00.121590: Predbat mode is set to Control charge & discharge
2026-08-16 14:20:00.773607: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:20:00.774251: Using load_power data to fill gaps in load_today data
2026-08-16 14:20:02.486723: Processing 721 30-minute periods for power integration
2026-08-16 14:20:02.726049: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:20:02.726394: Car charging hold False, threshold 6.0kWh
2026-08-16 14:20:02.726609: Current data so far today: load 7.35kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:20:02.776068: Cars: SoC: [19.924]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:20:02.777567: Standing charge is set to 46.63p
2026-08-16 14:20:03.102830: 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-16 14:20:03.103228: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.103339: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.103426: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.103626: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.103865: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.104087: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.104463: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.104761: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.105066: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.105987: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.106559: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.108101: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.108467: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:20:03.108618: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:20:03.118423: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:20:03.118926: Import rates: min 8.0p, max 33.75p, average 25.61p
2026-08-16 14:20:03.170492: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:20:03.170768: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:20:03.172771: High export rate found rates in range 99p to -99p
2026-08-16 14:20:03.216148: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:20:03.216502: Car 0 plan charging from 19.924kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:20:03.217213: Car 0 charging plan is: [{'start': 860, 'end': 870, 'kwh': 1.233, 'average': 8.0, 'cost': 9.87, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:20:03.242159: Battery level now 11.68kWh, -1hr ago 11.84kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:20:03.242777: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.35p, import 2.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:20:03.351188: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 277.96p, import 231.33p, export 0.0p, carbon 0.0kg
2026-08-16 14:20:03.351371: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:20:03.484834: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:20:03.529130: Today's load divergence 88.24%, in-day adjustment 86.47%, damping 0.95x, yesterday 82.97% today 88.83% blend 40.28%
2026-08-16 14:20:03.529403: Today's predicted so far 8.91kWh with 0.0kWh car/iBoost excluded, 6.08kWh import ignored, and 8.91kWh forecast extra.
2026-08-16 14:20:03.529470: Today's actual load so far 7.28kWh with 0.0kWh car/iBoost excluded, and 6.08kWh import ignored.
2026-08-16 14:20:03.625524: Inverter 0: Type SK Sunsynk
2026-08-16 14:20:03.625636: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:20:03.625938: Reserve min: 7%, battery_min: 7%
2026-08-16 14:20:03.626157: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:20:03.626584: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -745W, load power 745W, PV Power 0W
2026-08-16 14:20:03.626851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:20:03.627046: Inverter 0 scheduled charge enable is False
2026-08-16 14:20:03.627104: Inverter 0 charge windows currently []
2026-08-16 14:20:03.627235: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:20:03.627464: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:20:03.627520: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:20:03.627670: Inverter 0 scheduled discharge enable is False
2026-08-16 14:20:03.627993: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:20:03.628052: Inverter 0 discharge windows currently []
2026-08-16 14:20:03.628174: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:20:03.628219: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:20:03.628295: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:20:03.778570: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:20:03.779610: Plan was last updated on 2026-08-16 14:10:00+01:00 and is now 10.0 minutes old
2026-08-16 14:20:03.780538: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:20:03.780600: Best export window [  ]
2026-08-16 14:20:03.781984: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:20:03.797565: Load divergence over 8.0 hours mean 430.22W, min 289.8W, max 845.4W, std dev 97.01W, divergence 11.28%
2026-08-16 14:20:03.839355: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:20:03.839784: LoadML is_calculating True
2026-08-16 14:20:03.839877: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:20:03.896538: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 676.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.54kWh, PV 0.0kWh
2026-08-16 14:20:04.368550: Battery has 16.92 hours left - now at 11.68kWh
2026-08-16 14:20:04.446096: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 728.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:15:00, load 29.55kWh, PV 0.0kWh
2026-08-16 14:20:04.601960: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 461.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.55kWh, PV 0.0kWh
2026-08-16 14:20:04.759304: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 431.09p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.54kWh, PV 0.0kWh
2026-08-16 14:20:04.759570: Saving plan best values to HA entities
2026-08-16 14:20:05.036604: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:20:05.044474: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:20:05.070195: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.5kWh, house 0.81kWh, export 0.0kWh, metric 431.09p, metric10 461.5p
2026-08-16 14:20:05.215681: Marginal costs baseline metric (no standing charge): 384.4562
2026-08-16 14:20:05.781614: Marginal energy costs matrix computed: min=8.0 max=21.77
2026-08-16 14:20:05.890490: Rate array import [{'start': 860, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:20:05.891651: - Your estimated bill for today is £3.09 and tomorrow is £1.39
2026-08-16 14:20:05.891716: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:20:05.891744: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:20:05.891768: - For the next 48 hours there will be no solar generation.
2026-08-16 14:20:05.891881: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:20:05.891927: - Your car is currently charging.
2026-08-16 14:20:05.891952: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:20:05.892060: 
2026-08-16 14:20:05.949742: Plan calculation took 2.17 seconds
2026-08-16 14:20:05.954929: No high rate period found
2026-08-16 14:20:06.061157: Import threshold used for optimisation was 8.0p
2026-08-16 14:20:06.212725: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:20:06.223667: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 73%, target 100%
2026-08-16 14:20:06.224011: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:20:06.224227: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:20:06.224582: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:20:06.224788: No export window planned
2026-08-16 14:20:06.225121: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:20:06.225293: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:20:06.225607: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:20:06.225861: Car charging from battery is off, next slot for car 0 is 08-16 14:20:00 - 08-16 14:30:00
2026-08-16 14:20:06.226071: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:20:06.226310: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:20:06.226479: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:20:06.226652: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:20:06.226881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227057: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.227933: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228100: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228246: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228390: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228531: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228673: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.228811: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.229951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:06.230983: Inverter 0 count register writes 0
2026-08-16 14:20:06.270275: 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-16 14:20:06.270664: Recompute is saving previous plan...
2026-08-16 14:20:06.273447: Best charge window [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:20:06.273837: Best export window [  ]
2026-08-16 14:20:06.275482: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:20:06.280449: Load divergence over 8.0 hours mean 430.22W, min 289.8W, max 845.4W, std dev 97.01W, divergence 11.28%
2026-08-16 14:20:06.308674: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:20:06.308919: LoadML is_calculating True
2026-08-16 14:20:06.308997: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:20:06.324685: 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(0.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-16 14:20:06.325705: Optimise levels pass started at 2026-08-16 14:20:06
2026-08-16 14:20:06.325814: Optimise all windows, total charge 31 export 1
2026-08-16 14:20:11.696523: >> Region optimisation pass width 960 gives best_metric 457.66p, best_cost 463.55p, best_cycle 35.15kWh, best_import 23.2kWh
2026-08-16 14:20:12.097758: >> Region optimisation pass width 480 gives best_metric 457.66p, best_cost 463.55p, best_cycle 35.15kWh, best_import 23.2kWh
2026-08-16 14:20:12.661531: >> Region optimisation pass width 240 gives best_metric 457.66p, best_cost 463.55p, best_cycle 35.15kWh, best_import 23.2kWh
2026-08-16 14:20:16.691013: >> Region optimisation pass width 120 gives best_metric 457.64p, best_cost 463.55p, best_cycle 35.15kWh, best_import 23.2kWh
2026-08-16 14:20:16.691522: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 14:20:16.691735: Optimise levels pass ended at 2026-08-16 14:20:16, duration 10.4 seconds tried 110 combinations
2026-08-16 14:20:16.691923: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 457.64p, best_keep 0kWh, best_cycle 35.15kWh, best_carbon 0kg, best_import 23.2kWh
2026-08-16 14:20:16.716454: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:20:32.580023: Tweak plan optimisation started metric 370.71p, cost 379.07p
2026-08-16 14:20:33.642580: Tweak optimisation finished metric 370.71p, cost 379.07p, metric_keep 0kWh, cycle 23.12kWh, carbon 0kg, import 12.64kWh, changed 8 window(s)
2026-08-16 14:20:33.661803: Swap charge optimisation started metric 370.71p, cost 379.07p, min_improvement_swap 0.1p
2026-08-16 14:20:35.152352: Swap charge optimisation finished metric 370.71p, cost 379.07p
2026-08-16 14:20:35.345392: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 367.35p -> 367.18p, plan now metric 372.07p, cost 376.03p, cycle 23.66kWh, import 12.26kWh
2026-08-16 14:20:35.358687: Raw charge windows [ 16-08 14:00:00 - 16-08 14:30:00 @ 8.0p 0%, 16-08 14:30:00 - 16-08 15:00:00 @ 8.0p 0%, 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 86%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:20:35.360371: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:20:35.360692: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:20:35.360941: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:20:35.432371: Previous plan best metric is 370.71 (cost 379.07) and new plan best metric is 370.71 (cost 379.07)
2026-08-16 14:20:35.432611: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:20:35.432754: Plan valid is now true after recompute was False
2026-08-16 14:20:35.515131: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 674.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.32kWh, PV 0.0kWh
2026-08-16 14:20:35.677986: Battery has 16.92 hours left - now at 11.68kWh
2026-08-16 14:20:35.811032: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 726.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:15:00, load 29.32kWh, PV 0.0kWh
2026-08-16 14:20:35.977470: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 454.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.32kWh, PV 0.0kWh
2026-08-16 14:20:36.217938: predict best end_record 08-17 23:30:00, final soc 1.29kWh, metric 422.66p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.32kWh, PV 0.0kWh
2026-08-16 14:20:36.218073: Saving plan best values to HA entities
2026-08-16 14:20:36.531777: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:20:36.539341: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:20:36.556229: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.45kWh, house 0.81kWh, export 0.0kWh, metric 422.66p, metric10 454.1p
2026-08-16 14:20:36.717375: Marginal costs baseline metric (no standing charge): 376.0304
2026-08-16 14:20:37.200270: Marginal energy costs matrix computed: min=8.0 max=21.77
2026-08-16 14:20:37.315446: Rate array import [{'start': 860, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 860, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:20:37.316545: - Your estimated bill for today is £3.09 and tomorrow is £1.39
2026-08-16 14:20:37.316699: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:20:37.316757: - The battery is currently at 73% and is in eco mode for the next 9 hours.
2026-08-16 14:20:37.316869: - For the next 48 hours there will be no solar generation.
2026-08-16 14:20:37.316916: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:20:37.317137: - Your car is currently charging.
2026-08-16 14:20:37.317274: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:20:37.317403: 
2026-08-16 14:20:37.368719: Plan calculation took 31.10 seconds
2026-08-16 14:20:37.368924: Inverter 0: Type SK Sunsynk
2026-08-16 14:20:37.369016: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:20:37.369199: Reserve min: 7%, battery_min: 7%
2026-08-16 14:20:37.369264: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:20:37.369487: Inverter 0 SoC: 11.54kW 72%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -731W, load power 731W, PV Power 0W
2026-08-16 14:20:37.369652: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:20:37.369733: Inverter 0 scheduled charge enable is False
2026-08-16 14:20:37.369847: Inverter 0 charge windows currently []
2026-08-16 14:20:37.369961: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:20:37.370174: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:20:37.370291: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:20:37.370896: Inverter 0 scheduled discharge enable is False
2026-08-16 14:20:37.371156: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:20:37.371279: Inverter 0 discharge windows currently []
2026-08-16 14:20:37.371380: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:20:37.371467: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:20:37.371550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:20:37.477090: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:20:37.477391: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:20:37.477639: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:20:37.478065: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:20:37.478361: No export window planned
2026-08-16 14:20:37.478731: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:20:37.478988: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:20:37.479415: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:20:37.479748: Car charging from battery is off, next slot for car 0 is 08-16 14:20:00 - 08-16 14:30:00
2026-08-16 14:20:37.480062: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:20:37.480414: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:20:37.480666: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:20:37.480990: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:20:37.481366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.481600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.481764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.481962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.482223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.482492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.482678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:37.482950: 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-16 14:20:37.548344: 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-16 14:20:37.659717: 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-16 14:20:37.759365: 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-16 14:20:37.866990: 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-16 14:20:37.894829: 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-16 14:20:37.918663: 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-16 14:20:38.001329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.001858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:20:38.002023: Inverter 0 count register writes 0
2026-08-16 14:20:38.038305: Total inverter register writes now 837
2026-08-16 14:20:38.113991: Info: Completed run status Hold for car
2026-08-16 14:20:38.131435: Info: record_status Hold for car
2026-08-16 14:20:38.156332: Saved current settings to /config/predbat_config.json
2026-08-16 14:20:38.156714: Compare, best tariff: current metric 318.25p
2026-08-16 14:20:42.320803: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0112 val_mae=0.0039 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0026 kWh ema_combined=0.0034 kWh
2026-08-16 14:21:18.096104: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0096 val_mae=0.0040 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0030 kWh ema_combined=0.0033 kWh
2026-08-16 14:21:18.359687: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:21:18.360196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:21:18.360374: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:21:18.360690: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:21:18.360852: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:21:18.361032: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:21:18.361217: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:21:51.571452: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0093 val_mae=0.0042 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0030 kWh ema_combined=0.0032 kWh
2026-08-16 14:22:28.742346: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0088 val_mae=0.0037 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-16 14:23:02.536067: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0072 val_mae=0.0033 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 14:23:18.944693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:23:18.945100: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:23:18.945293: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:23:18.945519: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:23:18.945564: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:23:18.945588: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:23:18.945610: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:23:34.149357: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-16 14:24:09.331585: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 14:24:41.631657: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0080 val_mae=0.0041 kWh val_bias=-0.0021 kWh (-2.6%) combined=0.0032 kWh ema_combined=0.0026 kWh
2026-08-16 14:25:00.360689: --------------- PredBat - update at 2026-08-16 14:25:00+01:00 with clock skew 0 minutes, minutes now 865
2026-08-16 14:25:00.361886: Saved current settings to /config/predbat_config.json
2026-08-16 14:25:00.362299: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 92.0 minutes
2026-08-16 14:25:00.362562: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:25:00.362760: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:25:00.402269: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:25:00.402441: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:25:00.402675: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:25:00.403376: Cars 1 charging from battery False 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-16 14:25:00.403547: Predbat mode is set to Control charge & discharge
2026-08-16 14:25:00.894810: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:25:00.895112: Using load_power data to fill gaps in load_today data
2026-08-16 14:25:02.291250: Processing 721 30-minute periods for power integration
2026-08-16 14:25:02.569966: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:25:02.570141: Car charging hold False, threshold 6.0kWh
2026-08-16 14:25:02.570199: Current data so far today: load 7.4kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:25:02.600871: Cars: SoC: [19.924]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:25:02.602203: Standing charge is set to 46.63p
2026-08-16 14:25:02.957481: 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-16 14:25:02.958407: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.958710: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.959010: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.959233: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.959465: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.959680: Octopus: Intelligent slot at 08-16 14:00:00-08-16 17:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.960113: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.960353: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.960656: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.960878: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.961213: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.961449: Octopus: Intelligent slot at 08-17 01:30:00-08-17 04:30:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.961815: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.33, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:25:02.961967: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:25:02.971025: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:25:02.971827: Import rates: min 8.0p, max 33.75p, average 25.66p
2026-08-16 14:25:03.024070: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:25:03.024323: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:25:03.025709: High export rate found rates in range 99p to -99p
2026-08-16 14:25:03.062433: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:25:03.062923: Car 0 plan charging from 19.924kWh to 100.0% (58.6kWh), with slots [{'start': 840, 'end': 870, 'average': 8.0}, {'start': 870, 'end': 900, 'average': 8.0}, {'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:25:03.063496: Car 0 charging plan is: [{'start': 865, 'end': 870, 'kwh': 0.617, 'average': 8.0, 'cost': 4.93, 'octopus': False}, {'start': 870, 'end': 900, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:25:03.101243: Battery level now 11.68kWh, -1hr ago 11.84kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -3.63p, rate_forward 6.87p
2026-08-16 14:25:03.101861: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.35p, import 2.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:25:03.215017: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 277.96p, import 231.33p, export 0.0p, carbon 0.0kg
2026-08-16 14:25:03.215273: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:25:03.375807: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:25:03.448186: Today's load divergence 88.62%, in-day adjustment 86.71%, damping 0.95x, yesterday 82.97% today 89.19% blend 39.93%
2026-08-16 14:25:03.461067: Today's predicted so far 8.94kWh with 0.0kWh car/iBoost excluded, 6.04kWh import ignored, and 8.94kWh forecast extra.
2026-08-16 14:25:03.461381: Today's actual load so far 7.36kWh with 0.0kWh car/iBoost excluded, and 6.04kWh import ignored.
2026-08-16 14:25:03.560992: Inverter 0: Type SK Sunsynk
2026-08-16 14:25:03.561097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:25:03.561293: Reserve min: 7%, battery_min: 7%
2026-08-16 14:25:03.561389: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:25:03.561691: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -459W, load power 459W, PV Power 0W
2026-08-16 14:25:03.561863: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:25:03.561974: Inverter 0 scheduled charge enable is False
2026-08-16 14:25:03.562018: Inverter 0 charge windows currently []
2026-08-16 14:25:03.562047: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:25:03.562164: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:25:03.562203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:25:03.562242: Inverter 0 scheduled discharge enable is False
2026-08-16 14:25:03.562407: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:25:03.562477: Inverter 0 discharge windows currently []
2026-08-16 14:25:03.562516: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:25:03.562545: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:25:03.563507: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:25:03.690685: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:25:03.690814: Plan was last updated on 2026-08-16 14:20:00+01:00 and is now 5.0 minutes old
2026-08-16 14:25:03.691065: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:25:03.691113: Best export window [  ]
2026-08-16 14:25:03.692147: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:25:03.696099: Load divergence over 8.0 hours mean 433.78W, min 291.6W, max 850.2W, std dev 93.8W, divergence 10.81%
2026-08-16 14:25:03.734248: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:25:03.747603: LoadML is_calculating True
2026-08-16 14:25:03.747744: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:25:03.822071: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 680.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 28.45kWh, PV 0.0kWh
2026-08-16 14:25:04.069098: Battery has 16.42 hours left - now at 11.52kWh
2026-08-16 14:25:04.158351: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 731.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:55:00, load 29.45kWh, PV 0.0kWh
2026-08-16 14:25:04.367833: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 458.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.45kWh, PV 0.0kWh
2026-08-16 14:25:04.496443: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 428.0p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.45kWh, PV 0.0kWh
2026-08-16 14:25:04.496565: Saving plan best values to HA entities
2026-08-16 14:25:04.887514: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:25:04.896239: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:25:04.905284: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.15kWh, house 0.77kWh, export 0.0kWh, metric 428.0p, metric10 458.15p
2026-08-16 14:25:05.037833: Marginal costs baseline metric (no standing charge): 381.3678
2026-08-16 14:25:05.677081: Marginal energy costs matrix computed: min=8.0 max=21.85
2026-08-16 14:25:05.786762: Rate array import [{'start': 865, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:25:05.787539: - Your estimated bill for today is £3.09 and tomorrow is £1.40
2026-08-16 14:25:05.787608: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 14:25:05.788192: - The battery is currently at 72% and is in eco mode for the next 9 hours.
2026-08-16 14:25:05.788254: - For the next 48 hours there will be no solar generation.
2026-08-16 14:25:05.788277: - You will reach a minimum of 8% battery in 33 hours.
2026-08-16 14:25:05.788296: - Your car is currently charging.
2026-08-16 14:25:05.788314: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:25:05.788343: 
2026-08-16 14:25:05.846226: Plan calculation took 2.16 seconds
2026-08-16 14:25:05.851846: No high rate period found
2026-08-16 14:25:05.968817: Import threshold used for optimisation was 8.0p
2026-08-16 14:25:06.112368: Low import rate windows [0: 08-16 14:00:00 - 08-16 14:30:00 @ 8.0, 1: 08-16 14:30:00 - 08-16 15:00:00 @ 8.0, 2: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 3: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 4: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 5: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 6: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 7: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 8: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 9: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 10: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 11: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 12: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 13: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 14: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 15: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 16: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 17: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:25:06.121689: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:25:06.121841: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:25:06.121916: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:25:06.122120: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:25:06.122199: No export window planned
2026-08-16 14:25:06.122299: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:25:06.122345: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:25:06.122487: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:25:06.122588: Car charging from battery is off, next slot for car 0 is 08-16 14:25:00 - 08-16 14:30:00
2026-08-16 14:25:06.122646: Disabling battery discharge whilst car 0 is charging
2026-08-16 14:25:06.123183: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:25:06.123478: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:25:06.123561: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:25:06.124185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.128819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129012: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129079: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129209: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129319: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129370: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129496: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129656: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.129917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.130110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.130246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.130374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.130499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:25:06.130615: Inverter 0 count register writes 0
2026-08-16 14:25:06.161578: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 14:25:06.171047: Total inverter register writes now 837
2026-08-16 14:25:06.229468: Info: Completed run status Hold for car
2026-08-16 14:25:06.241758: Info: record_status Hold for car
2026-08-16 14:25:08.442733: Saved current settings to /config/predbat_config.json
2026-08-16 14:25:08.443030: Compare, best tariff: current metric 318.25p
2026-08-16 14:25:21.613472: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0077 val_mae=0.0033 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-16 14:25:48.625704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:25:48.626023: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:25:48.626079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:25:48.626252: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:25:48.626301: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:25:48.626328: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:25:48.626353: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:25:58.431998: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0075 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 14:26:34.236627: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0064 val_mae=0.0032 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 14:27:06.247892: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-16 14:27:40.739242: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0072 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-16 14:27:49.085292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:27:49.085775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:27:49.085927: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:27:49.086289: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:27:49.086428: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:27:49.086575: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:27:49.086700: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:28:19.112589: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 14:28:53.328441: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0067 val_mae=0.0025 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 14:29:30.531347: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0060 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 14:30:00.565957: --------------- PredBat - update at 2026-08-16 14:30:00+01:00 with clock skew 0 minutes, minutes now 870
2026-08-16 14:30:00.567200: Saved current settings to /config/predbat_config.json
2026-08-16 14:30:00.567407: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 97.0 minutes
2026-08-16 14:30:00.567504: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:30:00.567727: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:30:00.604227: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:30:00.605654: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:30:00.609219: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:30:00.610700: Cars 1 charging from battery False 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-16 14:30:00.611037: Predbat mode is set to Control charge & discharge
2026-08-16 14:30:01.106691: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:30:01.106859: Using load_power data to fill gaps in load_today data
2026-08-16 14:30:02.655661: Processing 721 30-minute periods for power integration
2026-08-16 14:30:02.879140: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:30:02.879480: Car charging hold False, threshold 6.0kWh
2026-08-16 14:30:02.879580: Current data so far today: load 7.45kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:30:02.902788: Cars: SoC: [21.096]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:30:02.903950: Standing charge is set to 46.63p
2026-08-16 14:30:03.181480: 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-16 14:30:03.193620: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.205347: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.205641: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.205899: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.206153: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.206674: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.206943: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.207228: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.207461: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.207711: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.207958: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.208209: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.208565: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:30:03.208763: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:30:03.232434: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:30:03.233179: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:30:03.367253: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:30:03.367403: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:30:03.368711: High export rate found rates in range 99p to -99p
2026-08-16 14:30:03.409504: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:30:03.410001: Car 0 plan charging from 21.096kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:30:03.410573: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:30:03.428986: Battery level now 11.52kWh, -1hr ago 11.84kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:30:03.429456: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.15p, import 3.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:30:03.603784: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 278.76p, import 232.13p, export 0.0p, carbon 0.0kg
2026-08-16 14:30:03.603955: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:30:03.772846: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:30:03.881994: Today's load divergence 88.45%, in-day adjustment 86.63%, damping 0.95x, yesterday 82.97% today 89.03% blend 39.58%
2026-08-16 14:30:03.882137: Today's predicted so far 9.06kWh with 0.0kWh car/iBoost excluded, 6.02kWh import ignored, and 9.06kWh forecast extra.
2026-08-16 14:30:03.882172: Today's actual load so far 7.46kWh with 0.0kWh car/iBoost excluded, and 6.02kWh import ignored.
2026-08-16 14:30:03.987890: 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-16T17:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.3335, '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.7, 'source': 'SMART'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.3, 'source': 'SMART'}]]
2026-08-16 14:30:03.988670: Sensor changes require a replan, will recompute the plan
2026-08-16 14:30:03.988853: Inverter 0: Type SK Sunsynk
2026-08-16 14:30:03.988901: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:30:03.989170: Reserve min: 7%, battery_min: 7%
2026-08-16 14:30:03.989269: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:30:03.989597: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -453W, load power 453W, PV Power 0W
2026-08-16 14:30:03.989785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:30:03.989895: Inverter 0 scheduled charge enable is False
2026-08-16 14:30:03.989958: Inverter 0 charge windows currently []
2026-08-16 14:30:03.990004: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:30:03.990551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:30:03.990632: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:30:03.990690: Inverter 0 scheduled discharge enable is False
2026-08-16 14:30:03.990892: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:30:03.990958: Inverter 0 discharge windows currently []
2026-08-16 14:30:03.991000: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:30:03.991033: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:30:03.991056: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:30:04.097343: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:30:04.097434: Will recompute the plan as it is invalid
2026-08-16 14:30:04.097557: Recompute is saving previous plan...
2026-08-16 14:30:04.099591: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:30:04.099681: Best export window [  ]
2026-08-16 14:30:04.101038: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:30:04.104912: Load divergence over 8.0 hours mean 436.16W, min 288.6W, max 1100.4W, std dev 112.53W, divergence 12.9%
2026-08-16 14:30:04.133984: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:30:04.134122: LoadML is_calculating True
2026-08-16 14:30:04.134155: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:30:04.152283: 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(0.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-16 14:30:04.153897: Optimise levels pass started at 2026-08-16 14:30:04
2026-08-16 14:30:04.153986: Optimise all windows, total charge 29 export 1
2026-08-16 14:30:09.228599: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0061 val_mae=0.0027 kWh val_bias=-0.0013 kWh (-1.6%) combined=0.0024 kWh ema_combined=0.0019 kWh
2026-08-16 14:30:09.332207: >> Region optimisation pass width 960 gives best_metric 460.52p, best_cost 465.76p, best_cycle 35.93kWh, best_import 23.37kWh
2026-08-16 14:30:11.986179: >> Region optimisation pass width 480 gives best_metric 460.52p, best_cost 465.76p, best_cycle 35.93kWh, best_import 23.37kWh
2026-08-16 14:30:12.700858: >> Region optimisation pass width 240 gives best_metric 460.52p, best_cost 465.76p, best_cycle 35.93kWh, best_import 23.37kWh
2026-08-16 14:30:17.173248: >> Region optimisation pass width 120 gives best_metric 460.31p, best_cost 465.76p, best_cycle 35.93kWh, best_import 23.37kWh
2026-08-16 14:30:17.173824: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 17
2026-08-16 14:30:17.174112: Optimise levels pass ended at 2026-08-16 14:30:17, duration 13.0 seconds tried 90 combinations
2026-08-16 14:30:17.174293: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 460.31p, best_keep 0kWh, best_cycle 35.93kWh, best_carbon 0kg, best_import 23.37kWh
2026-08-16 14:30:17.206064: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:30:32.391828: Tweak plan optimisation started metric 372.44p, cost 381.13p
2026-08-16 14:30:34.049553: Tweak optimisation finished metric 372.44p, cost 381.13p, metric_keep 0kWh, cycle 23.82kWh, carbon 0kg, import 12.8kWh, changed 8 window(s)
2026-08-16 14:30:34.108589: Swap charge optimisation started metric 372.44p, cost 381.13p, min_improvement_swap 0.1p
2026-08-16 14:30:36.028318: Swap charge optimisation finished metric 372.44p, cost 381.13p
2026-08-16 14:30:36.446993: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.42p -> 369.15p, plan now metric 373.95p, cost 377.63p, cycle 24.27kWh, import 12.36kWh
2026-08-16 14:30:36.459781: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:30:36.460636: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:30:36.461329: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:30:36.461809: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:30:36.513219: Previous plan best metric is 372.44 (cost 381.16) and new plan best metric is 372.44 (cost 381.13)
2026-08-16 14:30:36.513486: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:30:36.513792: Plan valid is now true after recompute was False
2026-08-16 14:30:36.544848: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 686.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:20:00, load 28.37kWh, PV 0.0kWh
2026-08-16 14:30:36.893454: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 14:30:36.970393: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 735.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:20:00, load 29.37kWh, PV 0.0kWh
2026-08-16 14:30:37.126782: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 454.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.37kWh, PV 0.0kWh
2026-08-16 14:30:37.374015: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 424.67p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.37kWh, PV 0.0kWh
2026-08-16 14:30:37.374140: Saving plan best values to HA entities
2026-08-16 14:30:37.624123: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 14:30:37.633519: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 14:30:37.642169: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.91kWh, house 0.5kWh, export 0.0kWh, metric 424.67p, metric10 454.16p
2026-08-16 14:30:37.756872: Marginal costs baseline metric (no standing charge): 378.0336
2026-08-16 14:30:38.240655: Marginal energy costs matrix computed: min=8.0 max=21.95
2026-08-16 14:30:38.372029: Rate array import [{'start': 870, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 870, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:30:38.373170: - Your estimated bill for today is £3.07 and tomorrow is £1.43
2026-08-16 14:30:38.373251: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:30:38.373281: - The battery is currently at 72% and is in eco mode for the next 9 hours.
2026-08-16 14:30:38.373310: - For the next 48 hours there will be no solar generation.
2026-08-16 14:30:38.373341: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:30:38.373378: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 14:30:38.373418: 
2026-08-16 14:30:38.463440: Plan calculation took 34.37 seconds
2026-08-16 14:30:38.507585: Saved plan to storage
2026-08-16 14:30:38.512921: No high rate period found
2026-08-16 14:30:38.645276: Import threshold used for optimisation was 8.0p
2026-08-16 14:30:38.772032: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:30:38.782968: Inverter 0: Type SK Sunsynk
2026-08-16 14:30:38.783287: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:30:38.783724: Reserve min: 7%, battery_min: 7%
2026-08-16 14:30:38.783995: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:30:38.784463: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -448W, load power 448W, PV Power 0W
2026-08-16 14:30:38.784815: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:30:38.785080: Inverter 0 scheduled charge enable is False
2026-08-16 14:30:38.785275: Inverter 0 charge windows currently []
2026-08-16 14:30:38.785408: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:30:38.786545: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:30:38.786707: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:30:38.786878: Inverter 0 scheduled discharge enable is False
2026-08-16 14:30:38.787199: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:30:38.787353: Inverter 0 discharge windows currently []
2026-08-16 14:30:38.787465: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:30:38.787590: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:30:38.787692: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:30:38.937652: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:30:38.937931: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:30:38.938025: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:30:38.938244: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:30:38.938331: No export window planned
2026-08-16 14:30:38.938458: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:30:38.938500: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:30:38.938662: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:30:38.938783: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-16 14:30:43.946206: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-16 14:30:48.965651: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-16 14:30:48.966091: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:30:48.966233: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:30:48.966381: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:30:48.966556: 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-16 14:30:49.001843: 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-16 14:30:49.111737: 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-16 14:30:49.191484: 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-16 14:30:49.298190: 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-16 14:30:49.393332: 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-16 14:30:49.498759: 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-16 14:30:49.604491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.604752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.604822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.604983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.605051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.605180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.605274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:30:49.605353: Inverter 0 count register writes 1
2026-08-16 14:30:49.698332: Total inverter register writes now 838
2026-08-16 14:30:49.766855: Info: Completed run status Demand
2026-08-16 14:30:50.036139: Info: record_status Demand
2026-08-16 14:30:50.045580: Saved current settings to /config/predbat_config.json
2026-08-16 14:30:50.045958: Compare, best tariff: current metric 318.25p
2026-08-16 14:31:00.204038: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0071 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-16 14:31:32.760433: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0058 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 14:31:33.264095: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:31:33.264642: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:31:33.264853: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:31:33.265293: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:31:33.265484: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:31:33.265610: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:31:33.265778: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:32:07.384212: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 14:32:40.420550: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 14:32:40.426747: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 14:32:40.427050: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%)
2026-08-16 14:32:48.777644: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0006 kWh (-0.8%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 14:32:48.783216: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0023 kWh
2026-08-16 14:32:48.852640: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-16 14:32:48.853023: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 14:32:49.594345: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-16 14:32:55.872202: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-16 14:32:55.926062: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0590 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.6293 std=4.5025) import_rate(mean=17.2075 std=8.4169) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5264)
2026-08-16 14:32:56.018406: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 14:32:56.036158: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 14:32:56.090502: ML Predictor: Baseline (pre-finetune) val_mae=0.0075 kWh val_bias=+0.0018 kWh
2026-08-16 14:33:32.628086: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0111 val_mae=0.0049 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 14:33:33.506845: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:33:33.507134: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:33:33.507186: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:33:33.507356: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:33:33.507402: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:33:33.507429: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:33:33.507453: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:34:08.018972: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0124 val_mae=0.0061 kWh val_bias=+0.0018 kWh (+3.2%) combined=0.0045 kWh ema_combined=0.0032 kWh
2026-08-16 14:34:43.659687: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0131 val_mae=0.0049 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-16 14:35:00.938108: --------------- PredBat - update at 2026-08-16 14:35:00+01:00 with clock skew 0 minutes, minutes now 875
2026-08-16 14:35:00.939225: Saved current settings to /config/predbat_config.json
2026-08-16 14:35:00.939457: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 102.0 minutes
2026-08-16 14:35:00.939647: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:35:00.939791: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:35:00.968704: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:35:00.968844: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:35:00.969051: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:35:00.969769: Cars 1 charging from battery False 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-16 14:35:00.970022: Predbat mode is set to Control charge & discharge
2026-08-16 14:35:01.539108: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:35:01.539619: Using load_power data to fill gaps in load_today data
2026-08-16 14:35:02.806001: Processing 721 30-minute periods for power integration
2026-08-16 14:35:03.282119: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:35:03.282276: Car charging hold False, threshold 6.0kWh
2026-08-16 14:35:03.282329: Current data so far today: load 7.5kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:35:03.302192: Cars: SoC: [21.096]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:35:03.303841: Standing charge is set to 46.63p
2026-08-16 14:35:03.395658: 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-16 14:35:03.396054: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.396380: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.396614: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.397019: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.397252: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.397553: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.397800: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398021: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398313: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398576: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398689: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398778: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.398995: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:35:03.399087: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:35:03.403880: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:35:03.404202: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:35:03.462752: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:35:03.463026: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:35:03.464802: High export rate found rates in range 99p to -99p
2026-08-16 14:35:03.512628: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:35:03.513166: Car 0 plan charging from 21.096kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:35:03.515394: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:35:03.556223: Battery level now 11.52kWh, -1hr ago 11.7kWh, at midnight 12.21kWh, battery value change in the last hour -1.26p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:35:03.588435: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.15p, import 3.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:35:03.707279: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 278.76p, import 232.13p, export 0.0p, carbon 0.0kg
2026-08-16 14:35:03.707851: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:35:03.876332: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:35:03.960926: Today's load divergence 88.58%, in-day adjustment 86.72%, damping 0.95x, yesterday 82.97% today 89.15% blend 39.24%
2026-08-16 14:35:03.961221: Today's predicted so far 9.15kWh with 0.0kWh car/iBoost excluded, 6.03kWh import ignored, and 9.15kWh forecast extra.
2026-08-16 14:35:03.961353: Today's actual load so far 7.57kWh with 0.0kWh car/iBoost excluded, and 6.03kWh import ignored.
2026-08-16 14:35:04.033484: Inverter 0: Type SK Sunsynk
2026-08-16 14:35:04.033585: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:35:04.033782: Reserve min: 7%, battery_min: 7%
2026-08-16 14:35:04.034114: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:35:04.034440: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 384W, current battery voltage 51.2V, grid power -55W, load power 450W, PV Power 0W
2026-08-16 14:35:04.034710: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:35:04.034821: Inverter 0 scheduled charge enable is False
2026-08-16 14:35:04.034861: Inverter 0 charge windows currently []
2026-08-16 14:35:04.034891: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:35:04.035003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:35:04.035040: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:35:04.035096: Inverter 0 scheduled discharge enable is False
2026-08-16 14:35:04.035243: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:35:04.035288: Inverter 0 discharge windows currently []
2026-08-16 14:35:04.035312: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:35:04.035333: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:35:04.035352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:35:04.125270: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:35:04.125397: Plan was last updated on 2026-08-16 14:30:00+01:00 and is now 5.0 minutes old
2026-08-16 14:35:04.125627: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:35:04.125671: Best export window [  ]
2026-08-16 14:35:04.126689: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:35:04.130539: Load divergence over 8.0 hours mean 439.5W, min 288.0W, max 948.0W, std dev 115.0W, divergence 13.08%
2026-08-16 14:35:04.161665: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:35:04.161919: LoadML is_calculating True
2026-08-16 14:35:04.162059: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:35:04.221481: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 686.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 14:35:04.445409: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 14:35:04.546334: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 735.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:25:00, load 29.5kWh, PV 0.0kWh
2026-08-16 14:35:04.792940: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 456.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.5kWh, PV 0.0kWh
2026-08-16 14:35:04.918707: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 428.66p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 14:35:04.918966: Saving plan best values to HA entities
2026-08-16 14:35:05.261337: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:35:05.289046: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:35:05.319880: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.4kWh, house 0.51kWh, export 0.0kWh, metric 428.66p, metric10 456.29p
2026-08-16 14:35:05.521845: Marginal costs baseline metric (no standing charge): 382.0234
2026-08-16 14:35:05.985946: Marginal energy costs matrix computed: min=8.0 max=20.82
2026-08-16 14:35:06.168723: Rate array import [{'start': 875, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:35:06.169514: - Your estimated bill for today is £3.06 and tomorrow is £1.42
2026-08-16 14:35:06.169632: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:35:06.169669: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:35:06.169690: - For the next 48 hours there will be no solar generation.
2026-08-16 14:35:06.169709: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:35:06.169726: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:35:06.169757: 
2026-08-16 14:35:06.213314: Plan calculation took 2.09 seconds
2026-08-16 14:35:06.216184: No high rate period found
2026-08-16 14:35:06.277967: Import threshold used for optimisation was 8.0p
2026-08-16 14:35:06.419501: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:35:06.428998: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:35:06.429326: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:35:06.429534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:35:06.429877: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:35:06.430090: No export window planned
2026-08-16 14:35:06.430349: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:35:06.430481: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:35:06.430780: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:35:06.431111: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:35:06.431276: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:35:06.431432: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:35:06.431626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.431766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.431897: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432306: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432432: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.432906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.433100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.433254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.433393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.433531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:35:06.433660: Inverter 0 count register writes 0
2026-08-16 14:35:06.478272: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 14:35:06.486670: Total inverter register writes now 838
2026-08-16 14:35:06.618990: Info: Completed run status Demand
2026-08-16 14:35:06.642267: Info: record_status Demand
2026-08-16 14:35:06.657297: Saved current settings to /config/predbat_config.json
2026-08-16 14:35:06.657597: Compare, best tariff: current metric 318.25p
2026-08-16 14:35:21.301272: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0119 val_mae=0.0044 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-16 14:35:22.565436: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 14:35:22.744082: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 14:35:32.324011: Info: HAHistory: Pruning history data started.
2026-08-16 14:35:32.328630: Info: HAHistory: Pruning history data completed.
2026-08-16 14:35:48.810701: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:35:48.810995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:35:48.811160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:35:48.811511: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:35:48.811676: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:35:48.811816: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:35:48.811950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:35:57.043945: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0131 val_mae=0.0044 kWh val_bias=-0.0006 kWh (-1.0%) combined=0.0025 kWh ema_combined=0.0027 kWh
2026-08-16 14:36:33.561056: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0125 val_mae=0.0045 kWh val_bias=+0.0011 kWh (+1.9%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-16 14:37:08.783574: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0119 val_mae=0.0042 kWh val_bias=+0.0008 kWh (+1.3%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-16 14:37:42.644077: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0134 val_mae=0.0050 kWh val_bias=-0.0023 kWh (-4.1%) combined=0.0039 kWh ema_combined=0.0031 kWh
2026-08-16 14:38:03.369249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:38:03.370079: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:38:03.370140: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:38:03.370412: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:38:03.370467: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:38:03.370489: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:38:03.370507: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:38:18.161764: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0143 val_mae=0.0039 kWh val_bias=-0.0009 kWh (-1.5%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-16 14:38:51.227935: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0113 val_mae=0.0040 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-16 14:39:24.338794: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0099 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 14:39:59.401484: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0095 val_mae=0.0035 kWh val_bias=+0.0006 kWh (+1.0%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-16 14:40:00.893147: --------------- PredBat - update at 2026-08-16 14:40:00+01:00 with clock skew 0 minutes, minutes now 880
2026-08-16 14:40:00.894216: Saved current settings to /config/predbat_config.json
2026-08-16 14:40:00.894532: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 107.0 minutes
2026-08-16 14:40:00.894772: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:40:00.894988: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:40:00.920022: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:40:00.920263: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:40:00.920577: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:40:00.921245: Cars 1 charging from battery False 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-16 14:40:00.921472: Predbat mode is set to Control charge & discharge
2026-08-16 14:40:01.320352: Found 21602 load_today datapoints going back 27 days
2026-08-16 14:40:01.320578: Using load_power data to fill gaps in load_today data
2026-08-16 14:40:02.434437: Processing 721 30-minute periods for power integration
2026-08-16 14:40:02.849909: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:40:02.850176: Car charging hold False, threshold 6.0kWh
2026-08-16 14:40:02.850265: Current data so far today: load 7.4kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:40:02.869929: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:40:02.870711: Standing charge is set to 46.63p
2026-08-16 14:40:03.118448: 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-16 14:40:03.118722: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.118978: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119091: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119178: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119261: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119461: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119561: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119646: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119734: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119822: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119911: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.119994: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.120199: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:40:03.120265: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:40:03.129258: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:40:03.129792: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:40:03.245990: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:40:03.252174: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:40:03.254905: High export rate found rates in range 99p to -99p
2026-08-16 14:40:03.335316: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:40:03.335798: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:40:03.336683: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:40:03.370217: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:40:03.370895: Last hour: net energy 0.29kWh, import 0.29kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 5.07p, import 5.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:40:03.473871: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 14:40:03.474265: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:40:03.664390: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:40:03.750445: Today's load divergence 87.53%, in-day adjustment 86.14%, damping 0.95x, yesterday 82.97% today 88.16% blend 38.89%
2026-08-16 14:40:03.750679: Today's predicted so far 9.16kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 9.16kWh forecast extra.
2026-08-16 14:40:03.750804: Today's actual load so far 7.44kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 14:40:03.810249: Inverter 0: Type SK Sunsynk
2026-08-16 14:40:03.810483: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:40:03.810804: Reserve min: 7%, battery_min: 7%
2026-08-16 14:40:03.810959: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:40:03.811369: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 392W, current battery voltage 51.2V, grid power -55W, load power 456W, PV Power 0W
2026-08-16 14:40:03.811633: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:40:03.811819: Inverter 0 scheduled charge enable is False
2026-08-16 14:40:03.811925: Inverter 0 charge windows currently []
2026-08-16 14:40:03.812030: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:40:03.812240: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:40:03.812365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:40:03.812492: Inverter 0 scheduled discharge enable is False
2026-08-16 14:40:03.812733: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:40:03.812840: Inverter 0 discharge windows currently []
2026-08-16 14:40:03.812971: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:40:03.813070: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:40:03.813163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:40:03.904238: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:40:03.904556: Plan was last updated on 2026-08-16 14:30:00+01:00 and is now 10.0 minutes old
2026-08-16 14:40:03.904915: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:40:03.905100: Best export window [  ]
2026-08-16 14:40:03.906230: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:40:03.910152: Load divergence over 8.0 hours mean 447.26W, min 287.4W, max 995.4W, std dev 128.85W, divergence 14.4%
2026-08-16 14:40:03.940218: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:40:03.953061: LoadML is_calculating True
2026-08-16 14:40:03.953331: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:40:04.020522: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 686.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.43kWh, PV 0.0kWh
2026-08-16 14:40:04.227929: Battery has 15.92 hours left - now at 11.52kWh
2026-08-16 14:40:04.286922: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 734.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.43kWh, PV 0.0kWh
2026-08-16 14:40:04.439609: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 460.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.43kWh, PV 0.0kWh
2026-08-16 14:40:04.634060: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 434.16p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.43kWh, PV 0.0kWh
2026-08-16 14:40:04.635861: Saving plan best values to HA entities
2026-08-16 14:40:04.952159: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 14:40:04.959687: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 14:40:04.983890: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.84kWh, house 0.5kWh, export 0.0kWh, metric 434.16p, metric10 460.01p
2026-08-16 14:40:05.173518: Marginal costs baseline metric (no standing charge): 387.5214
2026-08-16 14:40:05.680674: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 14:40:05.889161: Rate array import [{'start': 880, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 14:40:05.890058: - Your estimated bill for today is £3.09 and tomorrow is £1.42
2026-08-16 14:40:05.890112: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:40:05.890146: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:40:05.890234: - For the next 48 hours there will be no solar generation.
2026-08-16 14:40:05.890374: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:40:05.890481: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:40:05.890521: 
2026-08-16 14:40:05.954154: Plan calculation took 2.05 seconds
2026-08-16 14:40:05.957913: No high rate period found
2026-08-16 14:40:06.075591: Import threshold used for optimisation was 8.0p
2026-08-16 14:40:06.255649: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:40:06.270563: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:40:06.272613: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:40:06.272869: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:40:06.273320: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:40:06.273587: No export window planned
2026-08-16 14:40:06.273862: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:40:06.274040: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:40:06.274440: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:40:06.279655: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:40:06.279920: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:40:06.280138: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:40:06.280383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.280618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.280770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.280939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.281150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.281333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.281518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.281775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.281945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.282134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.282298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.282506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.282760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.282946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:06.283098: Inverter 0 count register writes 0
2026-08-16 14:40:06.331478: 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-16 14:40:06.331845: Recompute is saving previous plan...
2026-08-16 14:40:06.337792: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:40:06.338204: Best export window [  ]
2026-08-16 14:40:06.339176: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:40:06.343090: Load divergence over 8.0 hours mean 447.26W, min 287.4W, max 995.4W, std dev 128.85W, divergence 14.4%
2026-08-16 14:40:06.365968: Calculating data from yesterday for savings calculation
2026-08-16 14:40:06.380575: 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-16 14:40:06.439467: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 14:40:06.464083: predict yesterday10 end_record 08-17 00:00:00, final soc 10.18kWh, metric 233.44p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 14:40:06.486730: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 14:40:06.542457: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.77kWh, export 0.0kWh, battery_cycle 25.27kWh, start_soc 1.12kWh,  final_soc 10.56kWh and battery_value 72.6kWh
2026-08-16 14:40:06.693944: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.95p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 14:40:06.709198: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.52kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 14:40:06.735801: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:40:06.735941: LoadML is_calculating True
2026-08-16 14:40:06.735975: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:40:06.771059: 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(0.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-16 14:40:06.771794: Optimise levels pass started at 2026-08-16 14:40:06
2026-08-16 14:40:06.771858: Optimise all windows, total charge 29 export 1
2026-08-16 14:40:11.856162: >> Region optimisation pass width 960 gives best_metric 462.28p, best_cost 466.73p, best_cycle 35.81kWh, best_import 23.24kWh
2026-08-16 14:40:12.111687: >> Region optimisation pass width 480 gives best_metric 462.28p, best_cost 466.73p, best_cycle 35.81kWh, best_import 23.24kWh
2026-08-16 14:40:12.564858: >> Region optimisation pass width 240 gives best_metric 462.28p, best_cost 466.73p, best_cycle 35.81kWh, best_import 23.24kWh
2026-08-16 14:40:14.267855: >> Region optimisation pass width 120 gives best_metric 462.28p, best_cost 466.73p, best_cycle 35.81kWh, best_import 23.24kWh
2026-08-16 14:40:14.268323: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 17
2026-08-16 14:40:14.268393: Optimise levels pass ended at 2026-08-16 14:40:14, duration 7.5 seconds tried 78 combinations
2026-08-16 14:40:14.268458: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 462.28p, best_keep 0kWh, best_cycle 35.81kWh, best_carbon 0kg, best_import 23.24kWh
2026-08-16 14:40:14.290670: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:40:29.464934: Tweak plan optimisation started metric 373.11p, cost 382.19p
2026-08-16 14:40:31.237135: Tweak optimisation finished metric 373.11p, cost 382.19p, metric_keep 0kWh, cycle 23.59kWh, carbon 0kg, import 12.67kWh, changed 8 window(s)
2026-08-16 14:40:31.267069: Swap charge optimisation started metric 373.11p, cost 382.19p, min_improvement_swap 0.1p
2026-08-16 14:40:32.550303: Swap charge optimisation finished metric 373.11p, cost 382.19p
2026-08-16 14:40:32.751037: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 370.49p -> 370.22p, plan now metric 374.59p, cost 378.75p, cycle 24.04kWh, import 12.24kWh
2026-08-16 14:40:32.772769: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:40:32.785372: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:40:32.785754: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:40:32.786022: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:40:32.854859: Previous plan best metric is 373.11 (cost 382.21) and new plan best metric is 373.11 (cost 382.19)
2026-08-16 14:40:32.869168: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:40:32.869523: Plan valid is now true after recompute was False
2026-08-16 14:40:32.915990: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 684.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.21kWh, PV 0.0kWh
2026-08-16 14:40:33.116879: Battery has 15.92 hours left - now at 11.52kWh
2026-08-16 14:40:33.195224: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 732.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.2kWh, PV 0.0kWh
2026-08-16 14:40:33.376032: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 452.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.2kWh, PV 0.0kWh
2026-08-16 14:40:33.583781: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 425.73p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.21kWh, PV 0.0kWh
2026-08-16 14:40:33.584612: Saving plan best values to HA entities
2026-08-16 14:40:33.846180: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 14:40:33.856380: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 14:40:33.890059: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.79kWh, house 0.5kWh, export 0.0kWh, metric 425.73p, metric10 452.61p
2026-08-16 14:40:34.036353: Marginal costs baseline metric (no standing charge): 379.0995
2026-08-16 14:40:34.664128: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 14:40:34.854175: Rate array import [{'start': 880, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 880, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:40:34.855230: - Your estimated bill for today is £3.09 and tomorrow is £1.42
2026-08-16 14:40:34.866020: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:40:34.866125: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:40:34.866169: - For the next 48 hours there will be no solar generation.
2026-08-16 14:40:34.866218: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:40:34.866252: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:40:34.866290: 
2026-08-16 14:40:34.922209: Plan calculation took 28.59 seconds
2026-08-16 14:40:34.922477: Inverter 0: Type SK Sunsynk
2026-08-16 14:40:34.922521: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:40:34.922711: Reserve min: 7%, battery_min: 7%
2026-08-16 14:40:34.922792: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:40:34.923063: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 389W, current battery voltage 51.2V, grid power -55W, load power 453W, PV Power 0W
2026-08-16 14:40:34.923322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:40:34.923422: Inverter 0 scheduled charge enable is False
2026-08-16 14:40:34.923474: Inverter 0 charge windows currently []
2026-08-16 14:40:34.923509: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:40:34.923619: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:40:34.923655: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:40:34.923691: Inverter 0 scheduled discharge enable is False
2026-08-16 14:40:34.923811: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:40:34.923848: Inverter 0 discharge windows currently []
2026-08-16 14:40:34.923870: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:40:34.923893: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:40:34.923911: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:40:35.013974: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:40:35.014125: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:40:35.014194: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:40:35.014386: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:40:35.014481: No export window planned
2026-08-16 14:40:35.014587: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:40:35.014647: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:40:35.014792: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:40:35.014948: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:40:35.015004: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:40:35.015052: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:40:35.015126: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015168: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015261: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015287: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:40:35.015599: Inverter 0 count register writes 0
2026-08-16 14:40:35.043488: Total inverter register writes now 838
2026-08-16 14:40:35.121527: Info: Completed run status Demand
2026-08-16 14:40:35.130659: Info: record_status Demand
2026-08-16 14:40:35.150714: Saved current settings to /config/predbat_config.json
2026-08-16 14:40:35.150969: Compare, best tariff: current metric 318.25p
2026-08-16 14:40:53.176045: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0086 val_mae=0.0045 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-16 14:41:18.373148: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:41:18.373622: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:41:18.373688: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:41:18.373980: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:41:18.374074: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:41:18.374120: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:41:18.374197: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:41:24.550337: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0104 val_mae=0.0036 kWh val_bias=-0.0013 kWh (-2.2%) combined=0.0029 kWh ema_combined=0.0026 kWh
2026-08-16 14:41:58.451649: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0079 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-16 14:42:34.096087: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0074 val_mae=0.0032 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-16 14:43:07.400261: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0073 val_mae=0.0030 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 14:43:18.884213: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:43:18.884724: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:43:18.884892: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:43:18.885247: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:43:18.885431: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:43:18.885587: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:43:18.885730: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:43:40.180791: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0071 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-16 14:44:15.953513: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0070 val_mae=0.0030 kWh val_bias=+0.0010 kWh (+1.8%) combined=0.0026 kWh ema_combined=0.0022 kWh
2026-08-16 14:44:50.876104: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0073 val_mae=0.0028 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 14:45:00.346845: --------------- PredBat - update at 2026-08-16 14:45:00+01:00 with clock skew 0 minutes, minutes now 885
2026-08-16 14:45:00.347867: Saved current settings to /config/predbat_config.json
2026-08-16 14:45:00.348120: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 112.0 minutes
2026-08-16 14:45:00.348249: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:45:00.348379: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:45:00.419524: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:45:00.419749: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:45:00.420078: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:45:00.421154: Cars 1 charging from battery False 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-16 14:45:00.421371: Predbat mode is set to Control charge & discharge
2026-08-16 14:45:00.760821: Found 21602 load_today datapoints going back 27 days
2026-08-16 14:45:00.769150: Using load_power data to fill gaps in load_today data
2026-08-16 14:45:02.323959: Processing 721 30-minute periods for power integration
2026-08-16 14:45:02.576813: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:45:02.577166: Car charging hold False, threshold 6.0kWh
2026-08-16 14:45:02.577404: Current data so far today: load 7.4kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:45:02.606093: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:45:02.607421: Standing charge is set to 46.63p
2026-08-16 14:45:02.902372: 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-16 14:45:02.902835: 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-16 14:45:02.903109: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903211: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903290: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903373: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903544: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903758: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903894: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.903986: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.904071: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.904166: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.904254: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.904528: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:45:02.904939: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:45:02.913042: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:45:02.913612: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:45:02.964188: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:45:02.964422: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:45:02.966356: High export rate found rates in range 99p to -99p
2026-08-16 14:45:03.005962: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:45:03.006408: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:45:03.006999: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:45:03.031151: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:45:03.031552: Last hour: net energy 0.28kWh, import 0.28kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 4.65p, import 4.65p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:45:03.153447: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 14:45:03.153684: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:45:03.413544: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:45:03.447673: Today's load divergence 86.94%, in-day adjustment 85.81%, damping 0.95x, yesterday 82.97% today 87.59% blend 38.54%
2026-08-16 14:45:03.447856: Today's predicted so far 9.16kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 9.16kWh forecast extra.
2026-08-16 14:45:03.447890: Today's actual load so far 7.37kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 14:45:03.498554: 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.7, 'source': 'SMART'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.3, '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-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.3, 'source': 'SMART'}]]
2026-08-16 14:45:03.499400: Sensor changes require a replan, will recompute the plan
2026-08-16 14:45:03.499611: Inverter 0: Type SK Sunsynk
2026-08-16 14:45:03.499679: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:45:03.499950: Reserve min: 7%, battery_min: 7%
2026-08-16 14:45:03.500092: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:45:03.500490: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 320W, current battery voltage 51.2V, grid power -54W, load power 386W, PV Power 0W
2026-08-16 14:45:03.500789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:45:03.501112: Inverter 0 scheduled charge enable is False
2026-08-16 14:45:03.501292: Inverter 0 charge windows currently []
2026-08-16 14:45:03.501481: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:45:03.501805: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:45:03.501999: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:45:03.502150: Inverter 0 scheduled discharge enable is False
2026-08-16 14:45:03.502393: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:45:03.502454: Inverter 0 discharge windows currently []
2026-08-16 14:45:03.502496: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:45:03.502530: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:45:03.502571: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:45:03.641042: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:45:03.641147: Will recompute the plan as it is invalid
2026-08-16 14:45:03.641275: Recompute is saving previous plan...
2026-08-16 14:45:03.643091: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:45:03.643175: Best export window [  ]
2026-08-16 14:45:03.644499: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:45:03.649586: Load divergence over 8.0 hours mean 455.13W, min 283.8W, max 1039.8W, std dev 145.81W, divergence 16.02%
2026-08-16 14:45:03.694952: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:45:03.695098: LoadML is_calculating True
2026-08-16 14:45:03.695152: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:45:03.733406: 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(0.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-16 14:45:03.733925: Optimise levels pass started at 2026-08-16 14:45:03
2026-08-16 14:45:03.733998: Optimise all windows, total charge 29 export 1
2026-08-16 14:45:08.298043: >> Region optimisation pass width 960 gives best_metric 462.11p, best_cost 466.17p, best_cycle 35.77kWh, best_import 23.17kWh
2026-08-16 14:45:08.721218: >> Region optimisation pass width 480 gives best_metric 462.11p, best_cost 466.17p, best_cycle 35.77kWh, best_import 23.17kWh
2026-08-16 14:45:09.489775: >> Region optimisation pass width 240 gives best_metric 462.11p, best_cost 466.17p, best_cycle 35.77kWh, best_import 23.17kWh
2026-08-16 14:45:11.895916: >> Region optimisation pass width 120 gives best_metric 462.11p, best_cost 466.17p, best_cycle 35.77kWh, best_import 23.17kWh
2026-08-16 14:45:11.896467: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 17
2026-08-16 14:45:11.896740: Optimise levels pass ended at 2026-08-16 14:45:11, duration 8.2 seconds tried 95 combinations
2026-08-16 14:45:11.897005: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 462.11p, best_keep 0kWh, best_cycle 35.77kWh, best_carbon 0kg, best_import 23.17kWh
2026-08-16 14:45:11.931886: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:45:27.100383: Tweak plan optimisation started metric 372.41p, cost 381.61p
2026-08-16 14:45:28.817697: Tweak optimisation finished metric 372.41p, cost 381.61p, metric_keep 0kWh, cycle 23.51kWh, carbon 0kg, import 12.6kWh, changed 8 window(s)
2026-08-16 14:45:28.844734: Swap charge optimisation started metric 372.41p, cost 381.61p, min_improvement_swap 0.1p
2026-08-16 14:45:30.286568: Swap charge optimisation finished metric 372.41p, cost 381.61p
2026-08-16 14:45:30.584138: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.99p -> 369.72p, plan now metric 373.93p, cost 378.15p, cycle 23.96kWh, import 12.16kWh
2026-08-16 14:45:30.599000: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:45:30.600005: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:45:30.600469: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:45:30.600998: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:45:30.648541: Previous plan best metric is 372.41 (cost 381.6) and new plan best metric is 372.41 (cost 381.61)
2026-08-16 14:45:30.648990: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:45:30.650064: Plan valid is now true after recompute was False
2026-08-16 14:45:30.700432: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 683.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.15kWh, PV 0.0kWh
2026-08-16 14:45:30.961517: Battery has 15.92 hours left - now at 11.52kWh
2026-08-16 14:45:31.062688: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 729.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.14kWh, PV 0.0kWh
2026-08-16 14:45:31.275161: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 450.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.14kWh, PV 0.0kWh
2026-08-16 14:45:31.533434: predict best end_record 08-17 23:30:00, final soc 1.27kWh, metric 425.16p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.15kWh, PV 0.0kWh
2026-08-16 14:45:31.533528: Saving plan best values to HA entities
2026-08-16 14:45:31.918890: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:45:31.925538: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:45:31.931846: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.73kWh, house 0.48kWh, export 0.0kWh, metric 425.16p, metric10 450.89p
2026-08-16 14:45:32.083577: Marginal costs baseline metric (no standing charge): 378.5284
2026-08-16 14:45:32.540650: Marginal energy costs matrix computed: min=8.0 max=20.64
2026-08-16 14:45:32.804595: Rate array import [{'start': 885, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 885, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:45:32.805657: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 14:45:32.805738: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:45:32.805776: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:45:32.805804: - For the next 48 hours there will be no solar generation.
2026-08-16 14:45:32.805950: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:45:32.806006: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:45:32.806039: 
2026-08-16 14:45:32.866649: Plan calculation took 29.23 seconds
2026-08-16 14:45:32.871897: Saved plan to storage
2026-08-16 14:45:32.875466: No high rate period found
2026-08-16 14:45:33.005996: Import threshold used for optimisation was 8.0p
2026-08-16 14:45:33.143516: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:45:33.155026: Inverter 0: Type SK Sunsynk
2026-08-16 14:45:33.155142: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:45:33.155415: Reserve min: 7%, battery_min: 7%
2026-08-16 14:45:33.155527: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:45:33.155887: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 308W, current battery voltage 51.2V, grid power -55W, load power 376W, PV Power 0W
2026-08-16 14:45:33.156118: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:45:33.156323: Inverter 0 scheduled charge enable is False
2026-08-16 14:45:33.156376: Inverter 0 charge windows currently []
2026-08-16 14:45:33.156434: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:45:33.156602: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:45:33.156669: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:45:33.156743: Inverter 0 scheduled discharge enable is False
2026-08-16 14:45:33.156986: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:45:33.157045: Inverter 0 discharge windows currently []
2026-08-16 14:45:33.157082: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:45:33.157113: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:45:33.157139: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:45:33.247379: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:45:33.247620: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:45:33.247749: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:45:33.248016: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:45:33.248128: No export window planned
2026-08-16 14:45:33.248306: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:45:33.248363: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:45:33.248717: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:45:33.249142: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:45:33.249263: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:45:33.249367: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:45:33.249555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.249666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.249736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.249831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.249896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.249961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:45:33.250594: Inverter 0 count register writes 0
2026-08-16 14:45:33.287600: Total inverter register writes now 838
2026-08-16 14:45:33.351800: Info: Completed run status Demand
2026-08-16 14:45:33.372908: Info: record_status Demand
2026-08-16 14:45:33.400867: Saved current settings to /config/predbat_config.json
2026-08-16 14:45:33.401179: Compare, best tariff: current metric 318.25p
2026-08-16 14:45:43.160074: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0064 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-16 14:46:03.639741: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:46:03.640036: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:46:03.640090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:46:03.640257: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:46:03.640306: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:46:03.640334: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:46:03.640445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:46:20.682343: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 14:46:55.944046: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0065 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 14:47:32.432174: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 14:48:06.000105: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0063 val_mae=0.0027 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 14:48:18.197906: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:48:18.198846: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:48:18.198974: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:48:18.199273: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:48:18.199385: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:48:18.199467: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:48:18.199585: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:48:42.441826: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 14:49:16.788456: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0056 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-16 14:49:49.085624: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0059 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 14:50:00.628482: --------------- PredBat - update at 2026-08-16 14:50:00+01:00 with clock skew 0 minutes, minutes now 890
2026-08-16 14:50:00.631978: Saved current settings to /config/predbat_config.json
2026-08-16 14:50:00.633398: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 117.0 minutes
2026-08-16 14:50:00.633666: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:50:00.633873: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:50:00.677778: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:50:00.678120: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:50:00.678480: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:50:00.679240: Cars 1 charging from battery False 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-16 14:50:00.679517: Predbat mode is set to Control charge & discharge
2026-08-16 14:50:01.165794: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:50:01.166179: Using load_power data to fill gaps in load_today data
2026-08-16 14:50:02.660760: Processing 721 30-minute periods for power integration
2026-08-16 14:50:02.992387: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:50:02.996115: Car charging hold False, threshold 6.0kWh
2026-08-16 14:50:02.996386: Current data so far today: load 7.53kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:50:03.069055: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:50:03.070582: Standing charge is set to 46.63p
2026-08-16 14:50:03.207548: 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-16 14:50:03.207940: 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-16 14:50:03.208211: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.208311: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.208396: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.208471: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.208679: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.208798: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209250: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209358: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209442: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209522: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209600: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209813: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:50:03.209875: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:50:03.215926: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:50:03.216569: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:50:03.269118: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:50:03.269342: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:50:03.270809: High export rate found rates in range 99p to -99p
2026-08-16 14:50:03.320096: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:50:03.320510: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:50:03.321318: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:50:03.351215: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:50:03.351774: Last hour: net energy 0.26kWh, import 0.26kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 4.22p, import 4.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:50:03.474947: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 14:50:03.475341: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:50:03.662745: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:50:03.707510: Today's load divergence 87.78%, in-day adjustment 86.32%, damping 0.95x, yesterday 82.97% today 88.39% blend 38.19%
2026-08-16 14:50:03.708349: Today's predicted so far 9.17kWh with 0.0kWh car/iBoost excluded, 6.11kWh import ignored, and 9.17kWh forecast extra.
2026-08-16 14:50:03.708402: Today's actual load so far 7.49kWh with 0.0kWh car/iBoost excluded, and 6.11kWh import ignored.
2026-08-16 14:50:03.775545: Inverter 0: Type SK Sunsynk
2026-08-16 14:50:03.775910: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:50:03.776266: Reserve min: 7%, battery_min: 7%
2026-08-16 14:50:03.776402: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:50:03.776833: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -55W, load power 348W, PV Power 0W
2026-08-16 14:50:03.777121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:50:03.777305: Inverter 0 scheduled charge enable is False
2026-08-16 14:50:03.777360: Inverter 0 charge windows currently []
2026-08-16 14:50:03.777481: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:50:03.778340: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:50:03.778399: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:50:03.778545: Inverter 0 scheduled discharge enable is False
2026-08-16 14:50:03.779897: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:50:03.780025: Inverter 0 discharge windows currently []
2026-08-16 14:50:03.780144: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:50:03.780207: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:50:03.780297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:50:03.908882: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:50:03.909039: Plan was last updated on 2026-08-16 14:45:00+01:00 and is now 5.0 minutes old
2026-08-16 14:50:03.909318: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:50:03.909371: Best export window [  ]
2026-08-16 14:50:03.910655: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:50:03.916133: Load divergence over 8.0 hours mean 463.01W, min 289.8W, max 1034.4W, std dev 147.16W, divergence 15.89%
2026-08-16 14:50:03.960127: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:50:03.960286: LoadML is_calculating True
2026-08-16 14:50:03.960321: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:50:04.126070: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 683.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.36kWh, PV 0.0kWh
2026-08-16 14:50:04.373641: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 14:50:04.447323: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 728.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:45:00, load 29.35kWh, PV 0.0kWh
2026-08-16 14:50:04.638539: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 452.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.35kWh, PV 0.0kWh
2026-08-16 14:50:04.812392: predict best end_record 08-17 23:35:00, final soc 1.68kWh, metric 429.27p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 14:50:04.812513: Saving plan best values to HA entities
2026-08-16 14:50:05.178486: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 14:50:05.189017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 14:50:05.221936: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.23kWh, house 0.49kWh, export 0.0kWh, metric 429.27p, metric10 452.87p
2026-08-16 14:50:05.384531: Marginal costs baseline metric (no standing charge): 382.6317
2026-08-16 14:50:05.783667: Marginal energy costs matrix computed: min=8.0 max=20.64
2026-08-16 14:50:05.978995: Rate array import [{'start': 890, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 890, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:50:05.979694: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 14:50:05.979749: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:50:05.979775: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:50:05.979795: - For the next 48 hours there will be no solar generation.
2026-08-16 14:50:05.979813: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:50:05.979831: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:50:05.979849: 
2026-08-16 14:50:06.036447: Plan calculation took 2.13 seconds
2026-08-16 14:50:06.040314: No high rate period found
2026-08-16 14:50:06.128316: Import threshold used for optimisation was 8.0p
2026-08-16 14:50:06.241501: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:50:06.271325: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:50:06.271620: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:50:06.271759: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:50:06.272007: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:50:06.272100: No export window planned
2026-08-16 14:50:06.272245: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:50:06.272292: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:50:06.272463: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:50:06.272648: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:50:06.272746: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:50:06.272822: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:50:06.272925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273188: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:50:06.273912: Inverter 0 count register writes 0
2026-08-16 14:50:06.322440: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 14:50:06.337463: Total inverter register writes now 838
2026-08-16 14:50:06.458257: Info: Completed run status Demand
2026-08-16 14:50:06.470060: Info: record_status Demand
2026-08-16 14:50:06.482221: Saved current settings to /config/predbat_config.json
2026-08-16 14:50:06.482494: Compare, best tariff: current metric 318.25p
2026-08-16 14:50:28.513439: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0025 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-16 14:50:48.746662: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:50:48.746979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:50:48.747023: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:50:48.747162: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:50:48.747199: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:50:48.747220: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:50:48.747237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:51:03.423261: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 14:51:03.430111: ML Predictor: Restored best weights from epoch with val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 14:51:03.430625: ML Predictor: Training complete, final val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 14:51:10.097134: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=+0.0001 kWh (+0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 14:51:10.110033: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0025 kWh
2026-08-16 14:51:10.110145: ML Predictor: Curriculum final pass 5/5: full dataset (58.0 days)
2026-08-16 14:51:10.110216: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 14:51:10.898839: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-16 14:51:17.147534: ML Predictor: Created 16426 training samples, 576 validation samples
2026-08-16 14:51:17.208737: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0591 std=0.0475) pv(mean=0.0000 std=0.0100) temp(mean=19.6359 std=4.5083) import_rate(mean=17.1967 std=8.4332) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1917 std=0.5268)
2026-08-16 14:51:17.305886: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 14:51:17.325737: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 14:51:17.451805: ML Predictor: Baseline (pre-finetune) val_mae=0.0028 kWh val_bias=+0.0002 kWh
2026-08-16 14:51:54.100209: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0043 kWh val_bias=+0.0024 kWh (+4.2%) combined=0.0044 kWh ema_combined=0.0044 kWh
2026-08-16 14:52:25.084234: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0133 val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0037 kWh
2026-08-16 14:53:00.187530: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0121 val_mae=0.0037 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0022 kWh ema_combined=0.0032 kWh
2026-08-16 14:53:03.748395: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:53:03.748746: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:53:03.748846: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:53:03.749191: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:53:03.749275: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:53:03.749314: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:53:03.749349: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:53:37.835835: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0152 val_mae=0.0035 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-16 14:54:13.732274: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0132 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-16 14:54:47.165990: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0110 val_mae=0.0037 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-16 14:55:00.373013: --------------- PredBat - update at 2026-08-16 14:55:00+01:00 with clock skew 0 minutes, minutes now 895
2026-08-16 14:55:00.374204: Saved current settings to /config/predbat_config.json
2026-08-16 14:55:00.734474: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 14:55:00.734828: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 14:55:00.783300: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 14:55:00.783609: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 14:55:00.783942: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 14:55:00.784748: Cars 1 charging from battery False 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-16 14:55:00.785076: Predbat mode is set to Control charge & discharge
2026-08-16 14:55:01.171735: Found 21602 load_today datapoints going back 28 days
2026-08-16 14:55:01.172123: Using load_power data to fill gaps in load_today data
2026-08-16 14:55:02.568578: Processing 721 30-minute periods for power integration
2026-08-16 14:55:02.837366: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 14:55:02.838147: Car charging hold False, threshold 6.0kWh
2026-08-16 14:55:02.838221: Current data so far today: load 7.55kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 14:55:02.905528: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 14:55:02.906947: Standing charge is set to 46.63p
2026-08-16 14:55:03.198847: 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-16 14:55:03.221585: 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-16 14:55:03.222043: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.222372: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.222565: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.222757: Octopus: Intelligent slot at 08-16 15:00:00-08-16 17:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.223144: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.223419: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.223653: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.223918: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.224148: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.224403: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.224660: Octopus: Intelligent slot at 08-17 01:00:00-08-17 04:30:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.225081: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.3, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 14:55:03.225262: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 14:55:03.236678: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 14:55:03.246702: Import rates: min 8.0p, max 33.75p, average 25.97p
2026-08-16 14:55:03.304182: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 14:55:03.304359: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 14:55:03.306883: High export rate found rates in range 99p to -99p
2026-08-16 14:55:03.345696: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 14:55:03.346088: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 14:55:03.346548: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 14:55:03.364431: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 14:55:03.365077: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.8p, import 3.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 14:55:03.466711: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 14:55:03.467011: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 14:55:03.721957: Using weighted-bucket historical load forecast over 14 days
2026-08-16 14:55:03.778893: Today's load divergence 87.93%, in-day adjustment 86.43%, damping 0.95x, yesterday 82.97% today 88.53% blend 37.85%
2026-08-16 14:55:03.779242: Today's predicted so far 9.18kWh with 0.0kWh car/iBoost excluded, 6.07kWh import ignored, and 9.18kWh forecast extra.
2026-08-16 14:55:03.779793: Today's actual load so far 7.52kWh with 0.0kWh car/iBoost excluded, and 6.07kWh import ignored.
2026-08-16 14:55:03.888690: Inverter 0: Type SK Sunsynk
2026-08-16 14:55:03.888817: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:55:03.889087: Reserve min: 7%, battery_min: 7%
2026-08-16 14:55:03.889212: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:55:03.889563: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 346W, PV Power 0W
2026-08-16 14:55:03.889760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:55:03.889887: Inverter 0 scheduled charge enable is False
2026-08-16 14:55:03.889938: Inverter 0 charge windows currently []
2026-08-16 14:55:03.889982: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:55:03.890122: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:55:03.890167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:55:03.890212: Inverter 0 scheduled discharge enable is False
2026-08-16 14:55:03.890371: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:55:03.890418: Inverter 0 discharge windows currently []
2026-08-16 14:55:03.890447: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:55:03.890559: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:55:03.890605: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:55:04.053191: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 14:55:04.053373: Plan was last updated on 2026-08-16 14:45:00+01:00 and is now 10.0 minutes old
2026-08-16 14:55:04.053767: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 14:55:04.053854: Best export window [  ]
2026-08-16 14:55:04.055440: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:55:04.061579: Load divergence over 8.0 hours mean 470.85W, min 291.6W, max 1048.2W, std dev 151.35W, divergence 16.07%
2026-08-16 14:55:04.107520: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:55:04.107680: LoadML is_calculating True
2026-08-16 14:55:04.107713: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:55:04.214241: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 682.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 28.47kWh, PV 0.0kWh
2026-08-16 14:55:04.464930: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 14:55:04.552263: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 727.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:50:00, load 29.47kWh, PV 0.0kWh
2026-08-16 14:55:04.737816: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 455.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.47kWh, PV 0.0kWh
2026-08-16 14:55:04.955640: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 433.22p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.47kWh, PV 0.0kWh
2026-08-16 14:55:04.955985: Saving plan best values to HA entities
2026-08-16 14:55:05.332173: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:55:05.348327: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:55:05.362126: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.71kWh, house 0.5kWh, export 0.0kWh, metric 433.22p, metric10 455.51p
2026-08-16 14:55:05.547837: Marginal costs baseline metric (no standing charge): 386.5827
2026-08-16 14:55:06.081673: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 14:55:06.285736: Rate array import [{'start': 895, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 895, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:55:06.286846: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 14:55:06.286910: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:55:06.286941: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:55:06.286973: - For the next 48 hours there will be no solar generation.
2026-08-16 14:55:06.287013: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:55:06.287047: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:55:06.287080: 
2026-08-16 14:55:06.374576: Plan calculation took 2.32 seconds
2026-08-16 14:55:06.381937: No high rate period found
2026-08-16 14:55:06.494181: Import threshold used for optimisation was 8.0p
2026-08-16 14:55:06.646145: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 14:55:06.671755: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:55:06.671955: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:55:06.672039: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:55:06.672265: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:55:06.672359: No export window planned
2026-08-16 14:55:06.672498: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:55:06.672545: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:55:06.672714: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:55:06.672915: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:55:06.673039: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:55:06.673461: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:55:06.673779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.673953: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674059: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674160: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674920: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.674978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.675064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.675159: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.675214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.675294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:06.675342: Inverter 0 count register writes 0
2026-08-16 14:55:06.706632: 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-16 14:55:06.706937: Recompute is saving previous plan...
2026-08-16 14:55:06.708706: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 14:55:06.710203: Best export window [  ]
2026-08-16 14:55:06.711191: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 14:55:06.714676: Load divergence over 8.0 hours mean 470.85W, min 291.6W, max 1048.2W, std dev 151.35W, divergence 16.07%
2026-08-16 14:55:06.735066: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 14:55:06.735624: LoadML is_calculating True
2026-08-16 14:55:06.735954: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 14:55:06.745854: 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(0.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-16 14:55:06.746488: Optimise levels pass started at 2026-08-16 14:55:06
2026-08-16 14:55:06.746538: Optimise all windows, total charge 29 export 1
2026-08-16 14:55:11.942039: >> Region optimisation pass width 960 gives best_metric 462.58p, best_cost 466.3p, best_cycle 35.71kWh, best_import 23.13kWh
2026-08-16 14:55:12.297571: >> Region optimisation pass width 480 gives best_metric 462.58p, best_cost 466.3p, best_cycle 35.71kWh, best_import 23.13kWh
2026-08-16 14:55:13.070635: >> Region optimisation pass width 240 gives best_metric 462.58p, best_cost 466.3p, best_cycle 35.71kWh, best_import 23.13kWh
2026-08-16 14:55:15.114563: >> Region optimisation pass width 120 gives best_metric 462.58p, best_cost 466.3p, best_cycle 35.71kWh, best_import 23.13kWh
2026-08-16 14:55:15.114900: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 17
2026-08-16 14:55:15.114979: Optimise levels pass ended at 2026-08-16 14:55:15, duration 8.4 seconds tried 95 combinations
2026-08-16 14:55:15.115042: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 462.58p, best_keep 0kWh, best_cycle 35.71kWh, best_carbon 0kg, best_import 23.13kWh
2026-08-16 14:55:15.136653: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 14:55:30.560764: Tweak plan optimisation started metric 371.66p, cost 381.2p
2026-08-16 14:55:31.950903: Tweak optimisation finished metric 371.66p, cost 381.2p, metric_keep 0kWh, cycle 23.39kWh, carbon 0kg, import 12.54kWh, changed 8 window(s)
2026-08-16 14:55:31.973904: Swap charge optimisation started metric 371.66p, cost 381.2p, min_improvement_swap 0.1p
2026-08-16 14:55:33.536700: Swap charge optimisation finished metric 371.66p, cost 381.2p
2026-08-16 14:55:33.792940: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.54p -> 369.36p, plan now metric 373.03p, cost 378.17p, cycle 23.9kWh, import 12.17kWh
2026-08-16 14:55:33.807972: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 72%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 14:55:33.832932: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:30:00 @ 8.0p 72%, 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:55:33.833446: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:30:00 @ 8.0p 72%, 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:55:33.833855: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:30:00 @ 8.0p 72%, 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 14:55:33.931545: Previous plan best metric is 371.66 (cost 381.2) and new plan best metric is 371.66 (cost 381.2)
2026-08-16 14:55:33.937965: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 14:55:33.938365: Plan valid is now true after recompute was False
2026-08-16 14:55:33.991060: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 681.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 28.25kWh, PV 0.0kWh
2026-08-16 14:55:34.231755: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 14:55:34.301246: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 725.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:50:00, load 29.24kWh, PV 0.0kWh
2026-08-16 14:55:34.501222: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 448.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.24kWh, PV 0.0kWh
2026-08-16 14:55:34.688133: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 424.81p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.25kWh, PV 0.0kWh
2026-08-16 14:55:34.688483: Saving plan best values to HA entities
2026-08-16 14:55:34.954212: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 14:55:34.964181: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 14:55:34.973143: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.66kWh, house 0.5kWh, export 0.0kWh, metric 424.81p, metric10 448.13p
2026-08-16 14:55:35.133610: Marginal costs baseline metric (no standing charge): 378.1729
2026-08-16 14:55:35.595886: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 14:55:35.710135: Rate array import [{'start': 895, 'end': 900, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 900, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 895, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 14:55:35.711328: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 14:55:35.711493: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 2 hours.
2026-08-16 14:55:35.711650: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 14:55:35.711778: - For the next 48 hours there will be no solar generation.
2026-08-16 14:55:35.711920: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 14:55:35.712044: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 14:55:35.712176: 
2026-08-16 14:55:35.769694: Plan calculation took 29.06 seconds
2026-08-16 14:55:35.770406: Inverter 0: Type SK Sunsynk
2026-08-16 14:55:35.770469: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 14:55:35.770744: Reserve min: 7%, battery_min: 7%
2026-08-16 14:55:35.778604: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 14:55:35.780232: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -54W, load power 348W, PV Power 0W
2026-08-16 14:55:35.780484: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:55:35.780601: Inverter 0 scheduled charge enable is False
2026-08-16 14:55:35.780643: Inverter 0 charge windows currently []
2026-08-16 14:55:35.780683: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 14:55:35.780845: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:55:35.780889: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:55:35.780936: Inverter 0 scheduled discharge enable is False
2026-08-16 14:55:35.781160: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:55:35.781203: Inverter 0 discharge windows currently []
2026-08-16 14:55:35.781233: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:55:35.781269: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:55:35.781294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:55:35.955768: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 14:55:35.956239: Inverter 0 disabled charge window while waiting for schedule (now 08-16 14:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 14:55:35.956482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:55:35.956891: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:55:35.957177: No export window planned
2026-08-16 14:55:35.957472: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 14:55:35.957634: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 14:55:35.958045: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 14:55:35.958420: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 14:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 14:55:35.958639: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 14:55:35.958872: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 14:55:35.959150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.959318: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.959511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.959730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.959945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.960135: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.960321: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.960599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.960759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.961051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.961220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.961411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.961598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.961784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 14:55:35.962256: Inverter 0 count register writes 0
2026-08-16 14:55:35.998459: Total inverter register writes now 838
2026-08-16 14:55:36.059173: Info: Completed run status Demand
2026-08-16 14:55:36.071509: Info: record_status Demand
2026-08-16 14:55:36.084154: Saved current settings to /config/predbat_config.json
2026-08-16 14:55:36.084643: Compare, best tariff: current metric 318.25p
2026-08-16 14:55:41.668318: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0096 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-16 14:56:16.919666: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0102 val_mae=0.0035 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-16 14:56:18.266358: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:56:18.266621: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:56:18.266668: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:56:18.266809: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:56:18.266867: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:56:18.266890: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:56:18.266908: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 14:56:51.035157: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0099 val_mae=0.0032 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-16 14:57:26.995602: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0031 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 14:57:26.995891: ML Predictor: Early stopping at epoch 10
2026-08-16 14:57:26.996914: ML Predictor: Restored best weights from epoch with val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-16 14:57:26.997172: ML Predictor: Training complete, final val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-16 14:57:33.908374: ML Predictor: AR rollout over holdout: ar_mae=0.0030 kWh ar_bias=+0.0003 kWh (+0.5%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 14:57:33.928514: ML Predictor: Curriculum training complete, final val_mae=0.0028 kWh
2026-08-16 14:57:33.940245: ML Component: Training successful, val_mae=0.0028 kWh
2026-08-16 14:57:34.117023: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 14:57:34.121990: ML Component: Generating predictions load data age 58.0 days, 16715 data points
2026-08-16 14:57:34.275731: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0206 max_dow {0: 0.09934687506537884, 1: 0.10397500054407863, 2: 0.11910624983031304, 3: 0.12115624952744694, 4: 0.16482812489941714, 5: 0.09761944436836574, 6: 0.1026277773262726}
2026-08-16 14:57:41.938659: ML Component: Generated 576 predictions (total 26.35 kWh over 48h)
2026-08-16 14:57:41.975190: ML Component: Prediction cycle completed
2026-08-16 14:57:42.066784: ML Component: Saved 16715 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 14:58:18.772918: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 14:58:18.773252: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 14:58:18.773318: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 14:58:18.773533: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 14:58:18.773581: Note: Inverter does not support discharge freeze - disabled
2026-08-16 14:58:18.773609: Note: Inverter does not support charge freeze - disabled
2026-08-16 14:58:18.773648: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:00:01.002979: --------------- PredBat - update at 2026-08-16 15:00:00+01:00 with clock skew 0 minutes, minutes now 900
2026-08-16 15:00:01.003911: Saved current settings to /config/predbat_config.json
2026-08-16 15:00:01.004130: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 15:00:01.004237: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:00:01.004322: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:00:01.024799: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:00:01.024977: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:00:01.025152: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:00:01.025659: Cars 1 charging from battery False 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-16 15:00:01.025775: Predbat mode is set to Control charge & discharge
2026-08-16 15:00:01.232832: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:00:01.233023: Using load_power data to fill gaps in load_today data
2026-08-16 15:00:01.966534: Processing 721 30-minute periods for power integration
2026-08-16 15:00:02.159583: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:00:02.159748: Car charging hold False, threshold 6.0kWh
2026-08-16 15:00:02.159812: Current data so far today: load 7.65kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:00:02.180197: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:00:02.181208: Standing charge is set to 46.63p
2026-08-16 15:00:02.288053: 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-16 15:00:02.288551: 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-16 15:00:02.289067: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.289283: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.289490: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.289879: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.290082: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.290278: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.290472: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.290722: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.290946: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.291158: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.291355: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.291771: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:00:02.291932: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:00:02.303787: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:00:02.304614: Import rates: min 8.0p, max 33.75p, average 26.24p
2026-08-16 15:00:02.379037: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:00:02.379179: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:00:02.381496: High export rate found rates in range 99p to -99p
2026-08-16 15:00:02.418872: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:00:02.419184: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:00:02.420052: Car 0 charging plan is: [{'start': 900, 'end': 930, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:00:02.438660: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 15:00:02.439064: Last hour: net energy 0.24kWh, import 0.24kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 3.45p, import 3.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:00:02.513600: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 15:00:02.513821: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:00:02.592834: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:00:02.616712: Today's load divergence 88.02%, in-day adjustment 86.5%, damping 0.95x, yesterday 82.97% today 88.62% blend 37.5%
2026-08-16 15:00:02.616803: Today's predicted so far 9.32kWh with 0.0kWh car/iBoost excluded, 6.04kWh import ignored, and 9.32kWh forecast extra.
2026-08-16 15:00:02.616831: Today's actual load so far 7.66kWh with 0.0kWh car/iBoost excluded, and 6.04kWh import ignored.
2026-08-16 15:00:02.653224: 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-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.3, '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-16T16:30:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.6335, 'source': 'SMART'}]]
2026-08-16 15:00:02.653806: Sensor changes require a replan, will recompute the plan
2026-08-16 15:00:02.654006: Inverter 0: Type SK Sunsynk
2026-08-16 15:00:02.654047: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:00:02.654237: Reserve min: 7%, battery_min: 7%
2026-08-16 15:00:02.654307: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:00:02.654576: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 276W, current battery voltage 51.2V, grid power -55W, load power 343W, PV Power 0W
2026-08-16 15:00:02.654740: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:00:02.654831: Inverter 0 scheduled charge enable is False
2026-08-16 15:00:02.654910: Inverter 0 charge windows currently []
2026-08-16 15:00:02.654940: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:00:02.655090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:00:02.655127: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:00:02.655167: Inverter 0 scheduled discharge enable is False
2026-08-16 15:00:02.655301: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:00:02.655339: Inverter 0 discharge windows currently []
2026-08-16 15:00:02.655362: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:00:02.655385: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:00:02.655404: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:00:02.744356: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:00:02.744448: Will recompute the plan as it is invalid
2026-08-16 15:00:02.744595: Recompute is saving previous plan...
2026-08-16 15:00:02.745994: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:00:02.746086: Best export window [  ]
2026-08-16 15:00:02.747519: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:00:02.751400: Load divergence over 8.0 hours mean 478.19W, min 292.2W, max 1100.4W, std dev 177.51W, divergence 18.56%
2026-08-16 15:00:02.774028: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:00:02.774162: LoadML is_calculating False
2026-08-16 15:00:02.774258: Creating pool of 12 processes to match your CPU count
2026-08-16 15:00:02.897403: 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(0.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-16 15:00:02.898657: Optimise levels pass started at 2026-08-16 15:00:02
2026-08-16 15:00:02.898726: Optimise all windows, total charge 28 export 1
2026-08-16 15:00:03.650035: >> Region optimisation pass width 960 gives best_metric 462.82p, best_cost 467.75p, best_cycle 35.95kWh, best_import 23.36kWh
2026-08-16 15:00:04.124449: >> Region optimisation pass width 480 gives best_metric 462.82p, best_cost 467.75p, best_cycle 35.95kWh, best_import 23.36kWh
2026-08-16 15:00:04.968665: >> Region optimisation pass width 240 gives best_metric 462.58p, best_cost 468.57p, best_cycle 37.39kWh, best_import 23.46kWh
2026-08-16 15:00:05.776299: >> Region optimisation pass width 120 gives best_metric 462.58p, best_cost 468.57p, best_cycle 37.39kWh, best_import 23.46kWh
2026-08-16 15:00:05.776645: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 16
2026-08-16 15:00:05.776751: Optimise levels pass ended at 2026-08-16 15:00:05, duration 2.9 seconds tried 87 combinations
2026-08-16 15:00:05.776863: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 462.58p, best_keep 0kWh, best_cycle 37.39kWh, best_carbon 0kg, best_import 23.46kWh
2026-08-16 15:00:05.802669: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 15:00:09.753544: Tweak plan optimisation started metric 371.22p, cost 380.98p
2026-08-16 15:00:10.158379: Tweak optimisation finished metric 371.22p, cost 380.98p, metric_keep 0kWh, cycle 23.3kWh, carbon 0kg, import 12.52kWh, changed 8 window(s)
2026-08-16 15:00:10.181405: Swap charge optimisation started metric 371.22p, cost 380.98p, min_improvement_swap 0.1p
2026-08-16 15:00:11.284155: Swap charge optimisation finished metric 371.22p, cost 380.98p
2026-08-16 15:00:11.439440: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.27p -> 369.0p, plan now metric 372.74p, cost 377.47p, cycle 23.75kWh, import 12.08kWh
2026-08-16 15:00:11.450973: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 72%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 72%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 72%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:00:11.451391: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 72%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:00:11.451641: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 72%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:00:11.451823: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 72%, 17-08 02:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:00:11.492544: Previous plan best metric is 371.22 (cost 381.01) and new plan best metric is 371.22 (cost 380.98)
2026-08-16 15:00:11.492802: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:00:11.493412: Plan valid is now true after recompute was False
2026-08-16 15:00:11.526913: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 680.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:50:00, load 28.32kWh, PV 0.0kWh
2026-08-16 15:00:11.675454: Battery has 15.83 hours left - now at 11.52kWh
2026-08-16 15:00:11.728070: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 723.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:55:00, load 29.31kWh, PV 0.0kWh
2026-08-16 15:00:11.814246: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 446.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.31kWh, PV 0.0kWh
2026-08-16 15:00:11.901013: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 424.51p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.32kWh, PV 0.0kWh
2026-08-16 15:00:11.901102: Saving plan best values to HA entities
2026-08-16 15:00:12.075310: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 15:00:12.081257: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:00:12.087727: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.63kWh, house 0.5kWh, export 0.0kWh, metric 424.51p, metric10 446.93p
2026-08-16 15:00:12.183783: Marginal costs baseline metric (no standing charge): 377.8791
2026-08-16 15:00:12.491204: Marginal energy costs matrix computed: min=8.0 max=20.68
2026-08-16 15:00:12.572722: Rate array import [{'start': 900, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 900, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:00:12.573502: - Your estimated bill for today is £3.09 and tomorrow is £1.40
2026-08-16 15:00:12.573555: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:00:12.573577: - The battery is currently at 72% and is in eco mode for the next 8 hours.
2026-08-16 15:00:12.573596: - For the next 48 hours there will be no solar generation.
2026-08-16 15:00:12.573615: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:00:12.573633: - Your car is currently charging.
2026-08-16 15:00:12.573651: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:00:12.573670: 
2026-08-16 15:00:12.634717: Plan calculation took 9.89 seconds
2026-08-16 15:00:12.639876: Saved plan to storage
2026-08-16 15:00:12.643521: No high rate period found
2026-08-16 15:00:12.702867: Import threshold used for optimisation was 8.0p
2026-08-16 15:00:12.775658: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:00:12.784827: Inverter 0: Type SK Sunsynk
2026-08-16 15:00:12.785019: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:00:12.785334: Reserve min: 7%, battery_min: 7%
2026-08-16 15:00:12.785440: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:00:12.785828: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 276W, current battery voltage 51.2V, grid power -55W, load power 343W, PV Power 0W
2026-08-16 15:00:12.786124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:00:12.786261: Inverter 0 scheduled charge enable is False
2026-08-16 15:00:12.786322: Inverter 0 charge windows currently []
2026-08-16 15:00:12.786369: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:00:12.786542: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:00:12.786586: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:00:12.786636: Inverter 0 scheduled discharge enable is False
2026-08-16 15:00:12.786838: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:00:12.786901: Inverter 0 discharge windows currently []
2026-08-16 15:00:12.786928: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:00:12.786971: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:00:12.787010: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:00:12.847599: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 72%, target 100%
2026-08-16 15:00:12.847755: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:00:12.847912: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:00:12.848221: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:00:12.848333: No export window planned
2026-08-16 15:00:12.848538: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:00:12.848666: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:00:12.849024: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:00:12.849206: Car charging from battery is off, next slot for car 0 is 08-16 15:00:00 - 08-16 15:30:00
2026-08-16 15:00:12.849306: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-16 15:00:17.856525: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-16 15:00:22.949875: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-16 15:00:22.950025: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:00:22.950238: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:00:22.950305: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:00:22.950372: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:00:22.950491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:22.950755: 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-16 15:00:22.988707: 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-16 15:00:23.052210: 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-16 15:00:23.157949: 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-16 15:00:23.162441: 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-16 15:00:23.207175: 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-16 15:00:23.251843: 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-16 15:00:23.295300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:00:23.295576: Inverter 0 count register writes 1
2026-08-16 15:00:23.330608: Total inverter register writes now 839
2026-08-16 15:00:23.377512: Info: Completed run status Hold for car
2026-08-16 15:00:23.709731: Info: record_status Hold for car
2026-08-16 15:00:23.717937: Saved current settings to /config/predbat_config.json
2026-08-16 15:00:23.718245: Compare, best tariff: current metric 318.25p
2026-08-16 15:01:03.836068: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:01:03.836399: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:01:03.836459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:01:03.836654: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:01:03.836696: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:01:03.836717: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:01:03.836735: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:03:04.086486: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:03:04.086748: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:03:04.086791: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:03:04.086955: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:03:04.087004: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:03:04.087027: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:03:04.087046: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:05:00.309346: --------------- PredBat - update at 2026-08-16 15:05:00+01:00 with clock skew 0 minutes, minutes now 905
2026-08-16 15:05:00.310264: Saved current settings to /config/predbat_config.json
2026-08-16 15:05:00.310409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 15:05:00.310521: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:05:00.310606: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:05:00.331270: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:05:00.331435: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:05:00.331626: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:05:00.332188: Cars 1 charging from battery False 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-16 15:05:00.332309: Predbat mode is set to Control charge & discharge
2026-08-16 15:05:00.515492: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:05:00.515660: Using load_power data to fill gaps in load_today data
2026-08-16 15:05:01.238997: Processing 721 30-minute periods for power integration
2026-08-16 15:05:01.401429: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:05:01.401564: Car charging hold False, threshold 6.0kWh
2026-08-16 15:05:01.401605: Current data so far today: load 7.7kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:05:01.420641: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:05:01.421681: Standing charge is set to 46.63p
2026-08-16 15:05:01.549394: 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-16 15:05:01.549646: 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-16 15:05:01.550375: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550478: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550567: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550716: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550796: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550859: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.550948: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551019: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551080: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551145: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551215: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551362: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:05:01.551415: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:05:01.556055: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:05:01.556488: Import rates: min 8.0p, max 33.75p, average 26.29p
2026-08-16 15:05:01.592374: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:05:01.592504: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:05:01.593841: High export rate found rates in range 99p to -99p
2026-08-16 15:05:01.620867: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:05:01.621182: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:05:01.621640: Car 0 charging plan is: [{'start': 905, 'end': 930, 'kwh': 3.083, 'average': 8.0, 'cost': 24.67, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:05:01.635413: Battery level now 11.52kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -4.73p, rate_forward 6.87p
2026-08-16 15:05:01.635740: Last hour: net energy 0.22kWh, import 0.22kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.35p, import 3.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:05:01.690733: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 15:05:01.690915: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:05:01.778668: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:05:01.808063: Today's load divergence 88.09%, in-day adjustment 86.56%, damping 0.95x, yesterday 82.97% today 88.68% blend 37.15%
2026-08-16 15:05:01.808165: Today's predicted so far 9.42kWh with 0.0kWh car/iBoost excluded, 6.05kWh import ignored, and 9.42kWh forecast extra.
2026-08-16 15:05:01.808193: Today's actual load so far 7.77kWh with 0.0kWh car/iBoost excluded, and 6.05kWh import ignored.
2026-08-16 15:05:01.846666: Inverter 0: Type SK Sunsynk
2026-08-16 15:05:01.846760: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:05:01.847002: Reserve min: 7%, battery_min: 7%
2026-08-16 15:05:01.847098: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:05:01.847393: Inverter 0 SoC: 11.4kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -342W, load power 342W, PV Power 0W
2026-08-16 15:05:01.847629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:05:01.847763: Inverter 0 scheduled charge enable is False
2026-08-16 15:05:01.847810: Inverter 0 charge windows currently []
2026-08-16 15:05:01.847866: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:05:01.848004: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:05:01.848036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:05:01.848072: Inverter 0 scheduled discharge enable is False
2026-08-16 15:05:01.848182: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:05:01.848214: Inverter 0 discharge windows currently []
2026-08-16 15:05:01.848234: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:05:01.848249: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:05:01.848270: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:05:01.905737: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:05:01.905833: Plan was last updated on 2026-08-16 15:00:00+01:00 and is now 5.0 minutes old
2026-08-16 15:05:01.906032: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:05:01.906069: Best export window [  ]
2026-08-16 15:05:01.906736: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:05:01.909530: Load divergence over 8.0 hours mean 485.88W, min 288.0W, max 1131.0W, std dev 192.38W, divergence 19.8%
2026-08-16 15:05:01.925125: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:05:01.925256: LoadML is_calculating False
2026-08-16 15:05:01.925320: Creating pool of 12 processes to match your CPU count
2026-08-16 15:05:02.034728: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 684.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.45kWh, PV 0.0kWh
2026-08-16 15:05:02.161936: Battery has 15.5 hours left - now at 11.4kWh
2026-08-16 15:05:02.207984: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 727.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.44kWh, PV 0.0kWh
2026-08-16 15:05:02.294687: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 450.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.44kWh, PV 0.0kWh
2026-08-16 15:05:02.388216: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 429.52p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.45kWh, PV 0.0kWh
2026-08-16 15:05:02.388321: Saving plan best values to HA entities
2026-08-16 15:05:02.572806: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 15:05:02.579067: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:05:02.586655: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.29kWh, house 0.46kWh, export 0.0kWh, metric 429.52p, metric10 450.39p
2026-08-16 15:05:02.671783: Marginal costs baseline metric (no standing charge): 382.8872
2026-08-16 15:05:03.004227: Marginal energy costs matrix computed: min=8.0 max=20.73
2026-08-16 15:05:03.087905: Rate array import [{'start': 905, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:05:03.088736: - Your estimated bill for today is £3.08 and tomorrow is £1.41
2026-08-16 15:05:03.088788: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:05:03.088812: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:05:03.088830: - For the next 48 hours there will be no solar generation.
2026-08-16 15:05:03.088856: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:05:03.088907: - Your car is currently charging.
2026-08-16 15:05:03.088971: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:05:03.089015: 
2026-08-16 15:05:03.151198: Plan calculation took 1.25 seconds
2026-08-16 15:05:03.155386: No high rate period found
2026-08-16 15:05:03.214291: Import threshold used for optimisation was 8.0p
2026-08-16 15:05:03.269410: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:05:03.276320: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:05:03.276510: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:05:03.276624: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:05:03.276898: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:05:03.277003: No export window planned
2026-08-16 15:05:03.277137: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:05:03.277167: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:05:03.277301: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:05:03.277400: Car charging from battery is off, next slot for car 0 is 08-16 15:05:00 - 08-16 15:30:00
2026-08-16 15:05:03.277474: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:05:03.277561: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:05:03.277617: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:05:03.277682: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:05:03.277795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.277978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.278030: 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-16 15:05:03.379816: 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-16 15:05:03.487806: 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-16 15:05:03.498669: 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-16 15:05:03.602459: 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-16 15:05:03.706281: 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-16 15:05:03.809838: 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-16 15:05:03.913538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:05:03.913932: Inverter 0 count register writes 0
2026-08-16 15:05:03.937201: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 15:05:03.952053: Total inverter register writes now 839
2026-08-16 15:05:04.007062: Info: Completed run status Hold for car
2026-08-16 15:05:04.018353: Info: record_status Hold for car
2026-08-16 15:05:04.031090: Saved current settings to /config/predbat_config.json
2026-08-16 15:05:04.031488: Compare, best tariff: current metric 318.25p
2026-08-16 15:05:48.176122: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:05:48.176465: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:05:48.176564: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:05:48.176816: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:05:48.176873: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:05:48.176937: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:05:48.176980: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:07:22.634269: Successfully loaded apps.yaml from apps.yaml
2026-08-16 15:07:48.409545: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:07:48.409872: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:07:48.409922: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:07:48.410083: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:07:48.410149: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:07:48.410174: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:07:48.410192: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:09:48.648502: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:09:48.648772: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:09:48.648810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:09:48.649003: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:09:48.649049: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:09:48.649071: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:09:48.649089: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:10:00.755640: --------------- PredBat - update at 2026-08-16 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-16 15:10:00.756744: Saved current settings to /config/predbat_config.json
2026-08-16 15:10:00.756933: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 15:10:00.757163: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:10:00.757267: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:10:00.786155: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:10:00.786302: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:10:00.786506: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:10:00.787091: Cars 1 charging from battery False 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-16 15:10:00.787214: Predbat mode is set to Control charge & discharge
2026-08-16 15:10:01.088744: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:10:01.089278: Using load_power data to fill gaps in load_today data
2026-08-16 15:10:02.072600: Processing 721 30-minute periods for power integration
2026-08-16 15:10:02.262489: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:10:02.262634: Car charging hold False, threshold 6.0kWh
2026-08-16 15:10:02.262681: Current data so far today: load 7.6kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:10:02.285112: Cars: SoC: [21.682000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:10:02.286001: Standing charge is set to 46.63p
2026-08-16 15:10:02.361482: 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-16 15:10:02.361721: 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-16 15:10:02.361878: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.361960: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362029: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362167: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362243: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362303: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362369: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362427: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362485: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362549: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362610: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362810: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:10:02.362861: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:10:02.367498: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:10:02.367850: Import rates: min 8.0p, max 33.75p, average 26.33p
2026-08-16 15:10:02.404334: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:10:02.404480: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:10:02.405573: High export rate found rates in range 99p to -99p
2026-08-16 15:10:02.433491: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:10:02.433709: Car 0 plan charging from 21.682000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:10:02.434144: Car 0 charging plan is: [{'start': 910, 'end': 930, 'kwh': 2.467, 'average': 8.0, 'cost': 19.73, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:10:02.448472: Battery level now 11.4kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -1.92p, change today -5.55p, rate_forward 6.87p
2026-08-16 15:10:02.449002: Last hour: net energy 0.21kWh, import 0.21kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 3.25p, import 3.25p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:10:02.505032: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 15:10:02.505181: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:10:02.588589: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:10:02.618448: Today's load divergence 86.93%, in-day adjustment 85.89%, damping 0.95x, yesterday 82.97% today 87.59% blend 36.81%
2026-08-16 15:10:02.618550: Today's predicted so far 9.43kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 9.43kWh forecast extra.
2026-08-16 15:10:02.618579: Today's actual load so far 7.65kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 15:10:02.659856: Inverter 0: Type SK Sunsynk
2026-08-16 15:10:02.659956: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:10:02.660191: Reserve min: 7%, battery_min: 7%
2026-08-16 15:10:02.660322: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:10:02.660725: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -342W, load power 342W, PV Power 0W
2026-08-16 15:10:02.660998: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:10:02.661142: Inverter 0 scheduled charge enable is False
2026-08-16 15:10:02.661196: Inverter 0 charge windows currently []
2026-08-16 15:10:02.661271: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:10:02.661473: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:10:02.661537: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:10:02.661598: Inverter 0 scheduled discharge enable is False
2026-08-16 15:10:02.661826: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:10:02.661882: Inverter 0 discharge windows currently []
2026-08-16 15:10:02.661907: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:10:02.661939: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:10:02.661972: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:10:02.729769: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:10:02.729880: Plan was last updated on 2026-08-16 15:00:00+01:00 and is now 10.0 minutes old
2026-08-16 15:10:02.730096: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:10:02.730138: Best export window [  ]
2026-08-16 15:10:02.731048: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:10:02.734450: Load divergence over 8.0 hours mean 492.2W, min 287.4W, max 1105.2W, std dev 195.25W, divergence 19.83%
2026-08-16 15:10:02.754128: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:10:02.754255: LoadML is_calculating False
2026-08-16 15:10:02.754334: Creating pool of 12 processes to match your CPU count
2026-08-16 15:10:02.876711: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 685.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.36kWh, PV 0.0kWh
2026-08-16 15:10:03.022062: Battery has 15.42 hours left - now at 11.36kWh
2026-08-16 15:10:03.070187: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 726.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.35kWh, PV 0.0kWh
2026-08-16 15:10:03.157233: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 452.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.35kWh, PV 0.0kWh
2026-08-16 15:10:03.254603: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 433.23p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 15:10:03.254744: Saving plan best values to HA entities
2026-08-16 15:10:03.443404: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 15:10:03.449379: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:10:03.455534: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.82kWh, house 0.4kWh, export 0.0kWh, metric 433.23p, metric10 452.68p
2026-08-16 15:10:03.541602: Marginal costs baseline metric (no standing charge): 386.598
2026-08-16 15:10:03.869488: Marginal energy costs matrix computed: min=8.0 max=20.72
2026-08-16 15:10:03.953850: Rate array import [{'start': 910, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:10:03.954645: - Your estimated bill for today is £3.08 and tomorrow is £1.41
2026-08-16 15:10:03.954713: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:10:03.954740: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:10:03.954759: - For the next 48 hours there will be no solar generation.
2026-08-16 15:10:03.954776: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:10:03.954794: - Your car is currently charging.
2026-08-16 15:10:03.954811: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:10:03.954830: 
2026-08-16 15:10:04.023573: Plan calculation took 1.29 seconds
2026-08-16 15:10:04.027620: No high rate period found
2026-08-16 15:10:04.094967: Import threshold used for optimisation was 8.0p
2026-08-16 15:10:04.151071: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:10:04.159604: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:10:04.159791: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:10:04.159947: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:10:04.160222: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:10:04.160311: No export window planned
2026-08-16 15:10:04.160431: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:10:04.160469: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:10:04.160609: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:10:04.160770: Car charging from battery is off, next slot for car 0 is 08-16 15:10:00 - 08-16 15:30:00
2026-08-16 15:10:04.160857: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:10:04.160985: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:10:04.161087: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:10:04.161193: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:10:04.161321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161551: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161588: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161615: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161645: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161677: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161719: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161758: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161909: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.161987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.162016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:04.162037: Inverter 0 count register writes 0
2026-08-16 15:10:04.186670: 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-16 15:10:04.186922: Recompute is saving previous plan...
2026-08-16 15:10:04.188021: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:10:04.188098: Best export window [  ]
2026-08-16 15:10:04.188878: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:10:04.191997: Load divergence over 8.0 hours mean 492.2W, min 287.4W, max 1105.2W, std dev 195.25W, divergence 19.83%
2026-08-16 15:10:04.213960: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:10:04.214248: LoadML is_calculating False
2026-08-16 15:10:04.214347: Creating pool of 12 processes to match your CPU count
2026-08-16 15:10:04.304083: 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(0.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-16 15:10:04.305131: Optimise levels pass started at 2026-08-16 15:10:04
2026-08-16 15:10:04.305191: Optimise all windows, total charge 28 export 1
2026-08-16 15:10:04.995007: >> Region optimisation pass width 960 gives best_metric 464.07p, best_cost 467.95p, best_cycle 36.17kWh, best_import 23.39kWh
2026-08-16 15:10:05.398424: >> Region optimisation pass width 480 gives best_metric 464.07p, best_cost 467.95p, best_cycle 36.17kWh, best_import 23.39kWh
2026-08-16 15:10:06.287346: >> Region optimisation pass width 240 gives best_metric 463.36p, best_cost 468.3p, best_cycle 36.78kWh, best_import 23.43kWh
2026-08-16 15:10:06.950247: >> Region optimisation pass width 120 gives best_metric 463.36p, best_cost 468.3p, best_cycle 36.78kWh, best_import 23.43kWh
2026-08-16 15:10:06.950541: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 16
2026-08-16 15:10:06.950653: Optimise levels pass ended at 2026-08-16 15:10:06, duration 2.6 seconds tried 76 combinations
2026-08-16 15:10:06.950781: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 463.36p, best_keep 0kWh, best_cycle 36.78kWh, best_carbon 0kg, best_import 23.43kWh
2026-08-16 15:10:06.973868: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0.0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 15:10:10.604626: Tweak plan optimisation started metric 371.23p, cost 381.26p
2026-08-16 15:10:11.010337: Tweak optimisation finished metric 371.23p, cost 381.26p, metric_keep 0kWh, cycle 23.4kWh, carbon 0kg, import 12.55kWh, changed 8 window(s)
2026-08-16 15:10:11.031535: Swap charge optimisation started metric 371.23p, cost 381.26p, min_improvement_swap 0.1p
2026-08-16 15:10:11.753067: Swap charge optimisation finished metric 371.23p, cost 381.26p
2026-08-16 15:10:11.878680: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.56p -> 369.3p, plan now metric 372.71p, cost 377.82p, cycle 23.85kWh, import 12.12kWh
2026-08-16 15:10:11.889419: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:10:11.889789: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:10:11.889990: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:10:11.890133: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:10:11.929286: Previous plan best metric is 371.23 (cost 381.29) and new plan best metric is 371.23 (cost 381.26)
2026-08-16 15:10:11.929770: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:10:11.929942: Plan valid is now true after recompute was False
2026-08-16 15:10:11.964462: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 683.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.14kWh, PV 0.0kWh
2026-08-16 15:10:12.148627: Battery has 15.42 hours left - now at 11.36kWh
2026-08-16 15:10:12.203730: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 724.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.12kWh, PV 0.0kWh
2026-08-16 15:10:12.294862: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 445.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.12kWh, PV 0.0kWh
2026-08-16 15:10:12.393173: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 424.81p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.14kWh, PV 0.0kWh
2026-08-16 15:10:12.393281: Saving plan best values to HA entities
2026-08-16 15:10:12.584402: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 15:10:12.592042: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:10:12.598696: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.77kWh, house 0.4kWh, export 0.0kWh, metric 424.81p, metric10 445.29p
2026-08-16 15:10:12.692093: Marginal costs baseline metric (no standing charge): 378.1762
2026-08-16 15:10:13.027770: Marginal energy costs matrix computed: min=8.0 max=20.72
2026-08-16 15:10:13.122899: Rate array import [{'start': 910, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 910, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:10:13.124016: - Your estimated bill for today is £3.08 and tomorrow is £1.41
2026-08-16 15:10:13.124108: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:10:13.124155: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:10:13.124193: - For the next 48 hours there will be no solar generation.
2026-08-16 15:10:13.124226: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:10:13.124270: - Your car is currently charging.
2026-08-16 15:10:13.124307: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:10:13.124356: 
2026-08-16 15:10:13.208867: Plan calculation took 9.02 seconds
2026-08-16 15:10:13.209266: Inverter 0: Type SK Sunsynk
2026-08-16 15:10:13.209322: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:10:13.209546: Reserve min: 7%, battery_min: 7%
2026-08-16 15:10:13.209627: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:10:13.209992: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -340W, load power 341W, PV Power 0W
2026-08-16 15:10:13.210295: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:10:13.210449: Inverter 0 scheduled charge enable is False
2026-08-16 15:10:13.210505: Inverter 0 charge windows currently []
2026-08-16 15:10:13.210568: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:10:13.210762: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:10:13.210825: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:10:13.210895: Inverter 0 scheduled discharge enable is False
2026-08-16 15:10:13.211139: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:10:13.211209: Inverter 0 discharge windows currently []
2026-08-16 15:10:13.211238: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:10:13.211276: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:10:13.211311: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:10:13.297204: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:10:13.297558: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:10:13.297790: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:10:13.298110: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:10:13.298332: No export window planned
2026-08-16 15:10:13.298603: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:10:13.298758: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:10:13.299043: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:10:13.299322: Car charging from battery is off, next slot for car 0 is 08-16 15:10:00 - 08-16 15:30:00
2026-08-16 15:10:13.299558: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:10:13.299814: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:10:13.299986: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:10:13.300162: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:10:13.300420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.300581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.300734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.300919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.301146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.301311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.301478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.301667: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.301867: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302033: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302202: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302382: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302543: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302742: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.302966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.303941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:10:13.304059: Inverter 0 count register writes 0
2026-08-16 15:10:13.336860: Total inverter register writes now 839
2026-08-16 15:10:13.385027: Info: Completed run status Hold for car
2026-08-16 15:10:13.395077: Info: record_status Hold for car
2026-08-16 15:10:13.404079: Saved current settings to /config/predbat_config.json
2026-08-16 15:10:13.404451: Compare, best tariff: current metric 318.25p
2026-08-16 15:10:48.529516: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:10:48.529816: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:10:48.529864: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:10:48.530002: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:10:48.530041: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:10:48.530062: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:10:48.530080: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:11:08.069762: Successfully loaded apps.yaml from apps.yaml
2026-08-16 15:12:48.753864: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:12:48.754157: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:12:48.754194: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:12:48.754332: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:12:48.754372: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:12:48.754393: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:12:48.754415: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:13:18.631690: Apps.yaml successfully saved to apps.yaml
2026-08-16 15:13:18.631764: Backup created at apps.yaml.backup
2026-08-16 15:13:18.664109: Successfully loaded apps.yaml from apps.yaml
2026-08-16 15:13:20.875723: Stopping Predbat
2026-08-16 15:13:20.875831: Predbat terminating
2026-08-16 15:13:20.875904: Stopping load_ml interface
2026-08-16 15:13:20.976310: Stopped load_ml interface
2026-08-16 15:13:20.976481: Stopping temperature interface
2026-08-16 15:13:21.076875: Stopped temperature interface
2026-08-16 15:13:21.077044: Stopping mcp interface
2026-08-16 15:13:21.177403: Stopped mcp interface
2026-08-16 15:13:21.177523: Stopping web interface
2026-08-16 15:13:21.277865: Stopped web interface
2026-08-16 15:13:21.277972: Stopping ha_history interface
2026-08-16 15:13:21.378294: Stopped ha_history interface
2026-08-16 15:13:21.378419: Stopping ha interface
2026-08-16 15:13:21.473799: Info: Web socket stopping
2026-08-16 15:13:21.473911: Info: Web Socket stopped
2026-08-16 15:13:21.474088: Info: HA interface stopped
2026-08-16 15:13:21.478833: Stopped ha interface
2026-08-16 15:13:21.478911: Stopping storage interface
2026-08-16 15:13:21.579303: Stopped storage interface
2026-08-16 15:13:21.579431: Info: Components stopped
2026-08-16 15:13:21.579505: Predbat terminated
2026-08-16 15:13:21.701547: HAHistory: Finalizing...
2026-08-16 15:13:21.701668: HAHistory: Stopped
2026-08-16 15:13:21.993342: HTTP MCP Server stopped
2026-08-16 15:13:22.842410: LoadMLComponent: Finalizing...
2026-08-16 15:13:22.842559: LoadMLComponent: Stopped
2026-08-16 15:13:25.705178: TemperatureAPI: Finalizing...
2026-08-16 15:13:25.705315: TemperatureAPI: Stopped
2026-08-16 15:13:26.190329: StorageComponent: Finalizing...
2026-08-16 15:13:26.190454: StorageComponent: Stopped
2026-08-16 15:13:56.010063: Info: No secrets.yaml file found
2026-08-16 15:13:56.010196: Loading apps.yaml
2026-08-16 15:13:56.041051: Predbat: Startup predbat
2026-08-16 15:13:56.091564: --------------- PredBat - update at 2026-08-16 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-16 15:13:56.093671: Config root is /config
2026-08-16 15:13:56.093812: --------------- PredBat - update at 2026-08-16 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-16 15:13:56.093860: Initialising Storage interface
2026-08-16 15:13:56.094084: Initialising Home Assistant Interface interface
2026-08-16 15:13:56.113537: Initialising Home Assistant History interface
2026-08-16 15:13:56.113667: Initialising Web Interface interface
2026-08-16 15:13:56.113734: Initialising plugin system
2026-08-16 15:13:56.113844: Scanning for plugins in: /addon
2026-08-16 15:13:56.114178: Plugin discovery complete. Loaded 0 plugins.
2026-08-16 15:13:56.114220: Starting Storage interface
2026-08-16 15:13:56.114251: Creating task: <coroutine object ComponentBase.start at 0x7fa848ac9d20>
2026-08-16 15:13:56.114839: StorageComponent: Waiting for API to start
2026-08-16 15:13:56.124552: StorageComponent: Started
2026-08-16 15:13:57.115088: Starting Home Assistant Interface interface
2026-08-16 15:13:57.115252: Creating task: <coroutine object HAInterface.start at 0x7fa82afc4660>
2026-08-16 15:13:57.116020: HAInterface: Waiting for API to start
2026-08-16 15:13:57.116278: Info: Starting HA interface
2026-08-16 15:13:57.116827: Info: Start socket for url http://10.0.20.15:8123/api/websocket
2026-08-16 15:13:57.120693: Info: Web Socket active
2026-08-16 15:13:58.116597: Starting Home Assistant History interface
2026-08-16 15:13:58.116752: Creating task: <coroutine object ComponentBase.start at 0x7fa82af097a0>
2026-08-16 15:13:58.117706: HAHistory: Waiting for API to start
2026-08-16 15:13:58.118103: Info: Starting HAHistory
2026-08-16 15:13:58.118211: Info: HAHistory: Pruning history data started.
2026-08-16 15:13:58.118252: Info: HAHistory: Pruning history data completed.
2026-08-16 15:13:58.118335: HAHistory: Started
2026-08-16 15:13:59.117894: Starting Web Interface interface
2026-08-16 15:13:59.118042: Creating task: <coroutine object WebInterface.start at 0x7fa82b19f120>
2026-08-16 15:13:59.118636: WebInterface: Waiting for API to start
2026-08-16 15:14:00.121613: Config root is /config and printable config_root_p is now /config
2026-08-16 15:14:00.212695: 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-16 15:14:00.214036: 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-16 15:14:00.215214: 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-16 15:14:00.218150: 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-16 15:14:00.219364: 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-16 15:14:00.219539: Refreshing Predbat configuration
2026-08-16 15:14:00.219740: Loading current config
2026-08-16 15:14:00.915287: Saved current settings to /config/predbat_config.json
2026-08-16 15:14:01.559871: Compare, best tariff: current metric 318.25p
2026-08-16 15:14:01.574394: Initialising MCP Server interface
2026-08-16 15:14:01.574861: Initialising External Temperature API interface
2026-08-16 15:14:01.575119: Starting MCP Server interface
2026-08-16 15:14:01.575165: Creating task: <coroutine object PredbatMCPServer.start at 0x7fa82af624d0>
2026-08-16 15:14:01.575662: PredbatMCPServer: Waiting for API to start
2026-08-16 15:14:01.575981: Creating HTTP MCP Server with Predbat integration
2026-08-16 15:14:01.576064: HTTP MCP Server started (web interface integration)
2026-08-16 15:14:02.575880: Starting External Temperature API interface
2026-08-16 15:14:02.576031: Creating task: <coroutine object ComponentBase.start at 0x7fa82af09900>
2026-08-16 15:14:02.576582: TemperatureAPI: Waiting for API to start
2026-08-16 15:14:02.690628: TemperatureAPI: Started
2026-08-16 15:14:03.577897: Initialising ML Load Forecaster interface
2026-08-16 15:14:03.664914: ML Predictor: Upgraded 288 feature std values to prevent extreme normalization
2026-08-16 15:14:03.665140: ML Predictor: Model loaded from /config/predbat_ml_model.npz (trained 2026-08-16 13:57, val_mae=0.0028, val_bias=+0.0002)
2026-08-16 15:14:03.665307: ML Component: Loaded existing model
2026-08-16 15:14:03.665401: Starting ML Load Forecaster interface
2026-08-16 15:14:03.665440: Creating task: <coroutine object ComponentBase.start at 0x7fa82af09d20>
2026-08-16 15:14:03.665913: LoadMLComponent: Waiting for API to start
2026-08-16 15:14:03.720543: ML Component: Loaded database history: 16710 load points, 0.2h elapsed since save, age 58.0 days (shift will be applied on next fetch)
2026-08-16 15:14:03.734891: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 15:14:07.676913: Processing 1297 30-minute periods for power integration
2026-08-16 15:14:07.777312: ML Component: Car charging hold False, car energy reported load False
2026-08-16 15:14:07.872320: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:14:07.962576: ML Temperature data points: 48051
2026-08-16 15:14:08.854993: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 15:14:08.875020: ML Component: Data fetch completed, load data age 58.0 days, 16718 data points
2026-08-16 15:14:08.875456: ML Component: No training needed, model age is 0.21 hours
2026-08-16 15:14:08.875583: ML Component: Generating predictions load data age 58.0 days, 16718 data points
2026-08-16 15:14:09.025539: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0201 max_dow {0: 0.08173749977611006, 1: 0.09651874981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 15:14:16.159207: ML Component: Generated 576 predictions (total 26.65 kWh over 48h)
2026-08-16 15:14:16.213453: ML Component: Prediction cycle completed
2026-08-16 15:14:16.325786: ML Component: Saved 16718 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 15:14:16.327644: LoadMLComponent: Started
2026-08-16 15:14:16.694147: Refreshing Predbat configuration
2026-08-16 15:14:17.278788: Watch list []
2026-08-16 15:14:18.336698: Saved current settings to /config/predbat_config.json
2026-08-16 15:14:18.337979: Validation of apps.yaml was successful
2026-08-16 15:14:18.341976: Restored saved plan from 10 minutes ago: 4 charge windows, 0 export windows
2026-08-16 15:14:18.349159: Predbat: Next run time will be 2026-08-16 15:15:00 and then every 300 seconds
2026-08-16 15:14:19.353230: Refreshing Predbat configuration
2026-08-16 15:14:20.019327: Saved current settings to /config/predbat_config.json
2026-08-16 15:14:20.020315: Validation of apps.yaml was successful
2026-08-16 15:14:20.020461: --------------- PredBat - update at 2026-08-16 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-16 15:14:20.021080: Saved current settings to /config/predbat_config.json
2026-08-16 15:14:20.192070: Loaded GitHub URL cache from storage (1 entries)
2026-08-16 15:14:20.192206: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 19.3 minutes
2026-08-16 15:14:20.192275: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:14:20.192341: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:14:20.214682: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:14:20.214823: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:14:20.215026: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:14:20.215911: Cars 1 charging from battery False 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-16 15:14:20.216080: Predbat mode is set to Control charge & discharge
2026-08-16 15:14:20.395034: Found 21602 load_today datapoints going back 27 days
2026-08-16 15:14:20.395191: Using load_power data to fill gaps in load_today data
2026-08-16 15:14:21.111252: Processing 721 30-minute periods for power integration
2026-08-16 15:14:21.407527: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:14:21.407662: Car charging hold False, threshold 6.0kWh
2026-08-16 15:14:21.407706: Current data so far today: load 7.6kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:14:21.454848: Cars: SoC: [22.854]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:14:21.455522: Standing charge is set to 46.63p
2026-08-16 15:14:21.532732: 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-16 15:14:21.532999: 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-16 15:14:21.533208: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533302: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533390: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533617: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533703: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533763: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533842: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533904: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.533989: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.534057: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.534123: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.534280: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:14:21.534331: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:14:21.538646: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:14:21.538735: Import rates: min 8.0p, max 33.75p, average 26.33p
2026-08-16 15:14:21.572273: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:14:21.572407: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:14:21.573433: High export rate found rates in range 99p to -99p
2026-08-16 15:14:21.601333: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:14:21.601528: Car 0 plan charging from 22.854kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:14:21.601929: Car 0 charging plan is: [{'start': 910, 'end': 930, 'kwh': 2.467, 'average': 8.0, 'cost': 19.73, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:14:21.614569: Battery level now 11.36kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:14:21.614957: Last hour: net energy 0.21kWh, import 0.21kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 3.25p, import 3.25p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:14:21.665759: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 15:14:21.665890: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:14:21.737022: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:14:21.793855: Today's load divergence 86.93%, in-day adjustment 85.89%, damping 0.95x, yesterday 82.97% today 87.59% blend 36.81%
2026-08-16 15:14:21.793979: Today's predicted so far 9.43kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 9.43kWh forecast extra.
2026-08-16 15:14:21.794036: Today's actual load so far 7.65kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 15:14:21.823210: 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-16T16:30:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.6335, 'source': 'SMART'}]]
2026-08-16 15:14:21.823438: 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-16 15:14:21.823924: Sensor changes require a replan, will recompute the plan
2026-08-16 15:14:21.824125: Inverter 0: Type SK Sunsynk
2026-08-16 15:14:21.824173: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:14:21.824419: Reserve min: 7%, battery_min: 7%
2026-08-16 15:14:21.824532: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:14:21.824894: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -340W, load power 340W, PV Power 0W
2026-08-16 15:14:21.825217: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:14:21.825358: Inverter 0 scheduled charge enable is False
2026-08-16 15:14:21.825409: Inverter 0 charge windows currently []
2026-08-16 15:14:21.825454: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:14:21.825659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:14:21.825704: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:14:21.825763: Inverter 0 scheduled discharge enable is False
2026-08-16 15:14:21.825958: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:14:21.826001: Inverter 0 discharge windows currently []
2026-08-16 15:14:21.826085: 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-16 15:14:25.267207: Looking for discharge curve, have found 15.0 days of history data, max days 15
2026-08-16 15:14:25.327952: 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-16 15:14:25.345330: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:14:25.345457: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:14:25.345510: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:14:25.404687: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:14:25.404773: Will recompute the plan as it is invalid
2026-08-16 15:14:25.404880: Recompute is saving previous plan...
2026-08-16 15:14:25.405774: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:14:25.405822: Best export window [  ]
2026-08-16 15:14:25.406494: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:14:25.408932: Load divergence over 8.0 hours mean 492.2W, min 287.4W, max 1105.2W, std dev 195.25W, divergence 19.83%
2026-08-16 15:14:25.421931: Calculating data from yesterday for savings calculation
2026-08-16 15:14:25.430901: 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-16 15:14:25.535587: 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-16 15:14:25.551975: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 15:14:25.564476: predict yesterday10 end_record 08-17 00:00:00, final soc 10.18kWh, metric 233.44p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 15:14:25.585806: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 15:14:25.611099: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.77kWh, export 0.0kWh, battery_cycle 25.27kWh, start_soc 1.12kWh,  final_soc 10.56kWh and battery_value 72.6kWh
2026-08-16 15:14:25.695169: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.95p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 15:14:25.695353: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.52kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 15:14:25.709623: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:14:25.709855: LoadML is_calculating False
2026-08-16 15:14:25.709960: Creating pool of 12 processes to match your CPU count
2026-08-16 15:14:25.867742: 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(0.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-16 15:14:25.868402: Optimise levels pass started at 2026-08-16 15:14:25
2026-08-16 15:14:25.868448: Optimise all windows, total charge 28 export 1
2026-08-16 15:14:26.459125: >> Region optimisation pass width 960 gives best_metric 464.07p, best_cost 467.95p, best_cycle 36.17kWh, best_import 23.39kWh
2026-08-16 15:14:26.849928: >> Region optimisation pass width 480 gives best_metric 464.07p, best_cost 467.95p, best_cycle 36.17kWh, best_import 23.39kWh
2026-08-16 15:14:27.569436: >> Region optimisation pass width 240 gives best_metric 463.36p, best_cost 468.3p, best_cycle 36.78kWh, best_import 23.43kWh
2026-08-16 15:14:28.108811: >> Region optimisation pass width 120 gives best_metric 463.36p, best_cost 468.3p, best_cycle 36.78kWh, best_import 23.43kWh
2026-08-16 15:14:28.109048: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 16
2026-08-16 15:14:28.109118: Optimise levels pass ended at 2026-08-16 15:14:28, duration 2.2 seconds tried 76 combinations
2026-08-16 15:14:28.109172: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 463.36p, best_keep 0kWh, best_cycle 36.78kWh, best_carbon 0kg, best_import 23.43kWh
2026-08-16 15:14:28.125372: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0.0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 15:14:31.370178: Tweak plan optimisation started metric 371.23p, cost 381.26p
2026-08-16 15:14:31.704392: Tweak optimisation finished metric 371.23p, cost 381.26p, metric_keep 0kWh, cycle 23.4kWh, carbon 0kg, import 12.55kWh, changed 8 window(s)
2026-08-16 15:14:31.725591: Swap charge optimisation started metric 371.23p, cost 381.26p, min_improvement_swap 0.1p
2026-08-16 15:14:32.347536: Swap charge optimisation finished metric 371.23p, cost 381.26p
2026-08-16 15:14:32.465988: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 369.56p -> 369.3p, plan now metric 372.71p, cost 377.82p, cycle 23.85kWh, import 12.12kWh
2026-08-16 15:14:32.479428: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:14:32.479941: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:14:32.480329: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:14:32.480571: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:14:32.530885: Previous plan best metric is 371.23 (cost 381.29) and new plan best metric is 371.23 (cost 381.26)
2026-08-16 15:14:32.531165: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:14:32.531365: Plan valid is now true after recompute was False
2026-08-16 15:14:32.567021: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 683.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.14kWh, PV 0.0kWh
2026-08-16 15:14:32.672531: Battery has 15.42 hours left - now at 11.36kWh
2026-08-16 15:14:32.737565: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 724.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.12kWh, PV 0.0kWh
2026-08-16 15:14:32.811264: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 445.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.12kWh, PV 0.0kWh
2026-08-16 15:14:32.878719: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 424.81p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.14kWh, PV 0.0kWh
2026-08-16 15:14:32.878809: Saving plan best values to HA entities
2026-08-16 15:14:33.017434: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 15:14:33.022386: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:14:33.027570: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.77kWh, house 0.4kWh, export 0.0kWh, metric 424.81p, metric10 445.29p
2026-08-16 15:14:33.092217: Marginal costs baseline metric (no standing charge): 378.1762
2026-08-16 15:14:33.327862: Marginal energy costs matrix computed: min=8.0 max=20.72
2026-08-16 15:14:33.392640: Rate array import [{'start': 910, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 910, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:14:33.393315: - Your estimated bill for today is £3.08 and tomorrow is £1.41
2026-08-16 15:14:33.393362: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:14:33.393385: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:14:33.393404: - For the next 48 hours there will be no solar generation.
2026-08-16 15:14:33.393418: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:14:33.393432: - Your car is currently charging.
2026-08-16 15:14:33.393445: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:14:33.393475: 
2026-08-16 15:14:33.447322: Plan calculation took 8.04 seconds
2026-08-16 15:14:33.451973: Saved plan to storage
2026-08-16 15:14:33.455848: No high rate period found
2026-08-16 15:14:33.559918: Import threshold used for optimisation was 8.0p
2026-08-16 15:14:33.638291: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:14:33.646085: Inverter 0: Type SK Sunsynk
2026-08-16 15:14:33.646179: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:14:33.646423: Reserve min: 7%, battery_min: 7%
2026-08-16 15:14:33.646535: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:14:33.646859: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -340W, load power 340W, PV Power 0W
2026-08-16 15:14:33.647095: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:14:33.647208: Inverter 0 scheduled charge enable is False
2026-08-16 15:14:33.647242: Inverter 0 charge windows currently []
2026-08-16 15:14:33.647273: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:14:33.647390: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:14:33.647434: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:14:33.647522: Inverter 0 scheduled discharge enable is False
2026-08-16 15:14:33.647681: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:14:33.647714: Inverter 0 discharge windows currently []
2026-08-16 15:14:33.647744: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:14:33.647766: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:14:33.647785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:14:33.712403: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:14:33.712583: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:14:33.712692: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:14:33.712902: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:14:33.713035: No export window planned
2026-08-16 15:14:33.713190: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:14:33.713232: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:14:33.713383: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:14:33.713521: Car charging from battery is off, next slot for car 0 is 08-16 15:10:00 - 08-16 15:30:00
2026-08-16 15:14:33.713601: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:14:33.713707: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:14:33.713788: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:14:33.713845: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:14:33.713974: 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-16 15:14:33.732538: 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-16 15:14:33.738841: 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-16 15:14:33.779115: 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-16 15:14:33.823626: 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-16 15:14:33.867610: 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-16 15:14:33.911130: 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-16 15:14:33.921729: 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-16 15:14:33.955722: 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-16 15:14:33.999569: 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-16 15:14:34.045820: 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-16 15:14:34.087840: 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-16 15:14:34.131152: 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-16 15:14:34.167838: 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-16 15:14:34.174545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:14:34.174833: Inverter 0 count register writes 0
2026-08-16 15:14:34.198395: Total inverter register writes now 839
2026-08-16 15:14:34.233637: Info: Completed run status Hold for car
2026-08-16 15:14:34.240533: Info: record_status Hold for car
2026-08-16 15:14:34.247948: Saved current settings to /config/predbat_config.json
2026-08-16 15:14:34.248397: Compare, best tariff: current metric 318.25p
2026-08-16 15:14:34.317092: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 15:15:00.356025: --------------- PredBat - update at 2026-08-16 15:15:00+01:00 with clock skew 0 minutes, minutes now 915
2026-08-16 15:15:00.356869: Saved current settings to /config/predbat_config.json
2026-08-16 15:15:00.357063: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 15:15:00.357177: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:15:00.357311: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:15:00.375612: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:15:00.375774: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:15:00.376042: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:15:00.376651: Cars 1 charging from battery False 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-16 15:15:00.376857: Predbat mode is set to Control charge & discharge
2026-08-16 15:15:00.537462: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:15:00.537675: Using load_power data to fill gaps in load_today data
2026-08-16 15:15:01.277838: Processing 721 30-minute periods for power integration
2026-08-16 15:15:01.460833: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:15:01.461007: Car charging hold False, threshold 6.0kWh
2026-08-16 15:15:01.461089: Current data so far today: load 7.6kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:15:01.479598: Cars: SoC: [22.854]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:15:01.480575: Standing charge is set to 46.63p
2026-08-16 15:15:01.557769: 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-16 15:15:01.558403: 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-16 15:15:01.558601: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.558717: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.558783: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.558925: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559000: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559068: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559148: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559207: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559285: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559357: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559414: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559566: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:15:01.559617: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:15:01.563979: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:15:01.564258: Import rates: min 8.0p, max 33.75p, average 26.37p
2026-08-16 15:15:01.598055: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:15:01.598186: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:15:01.599197: High export rate found rates in range 99p to -99p
2026-08-16 15:15:01.627562: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:15:01.627761: Car 0 plan charging from 22.854kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:15:01.628209: Car 0 charging plan is: [{'start': 915, 'end': 930, 'kwh': 1.85, 'average': 8.0, 'cost': 14.8, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:15:01.643606: Battery level now 11.36kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:15:01.643983: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 3.15p, import 3.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:15:01.714572: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 280.85p, import 234.21p, export 0.0p, carbon 0.0kg
2026-08-16 15:15:01.714749: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:15:01.799481: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:15:01.825192: Today's load divergence 86.2%, in-day adjustment 85.46%, damping 0.95x, yesterday 82.97% today 86.89% blend 36.46%
2026-08-16 15:15:01.825270: Today's predicted so far 9.44kWh with 0.0kWh car/iBoost excluded, 6.13kWh import ignored, and 9.44kWh forecast extra.
2026-08-16 15:15:01.825297: Today's actual load so far 7.57kWh with 0.0kWh car/iBoost excluded, and 6.13kWh import ignored.
2026-08-16 15:15:01.859157: Inverter 0: Type SK Sunsynk
2026-08-16 15:15:01.859252: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:15:01.859434: Reserve min: 7%, battery_min: 7%
2026-08-16 15:15:01.859524: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:15:01.859775: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -340W, load power 340W, PV Power 0W
2026-08-16 15:15:01.859938: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:15:01.860026: Inverter 0 scheduled charge enable is False
2026-08-16 15:15:01.860055: Inverter 0 charge windows currently []
2026-08-16 15:15:01.860085: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:15:01.860192: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:15:01.860228: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:15:01.860265: Inverter 0 scheduled discharge enable is False
2026-08-16 15:15:01.860388: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:15:01.860424: Inverter 0 discharge windows currently []
2026-08-16 15:15:01.860462: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:15:01.860487: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:15:01.860505: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:15:01.916077: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:15:01.916186: Plan was last updated on 2026-08-16 15:10:00+01:00 and is now 5.0 minutes old
2026-08-16 15:15:01.916366: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:15:01.916432: Best export window [  ]
2026-08-16 15:15:01.917148: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:15:01.919677: Load divergence over 8.0 hours mean 498.51W, min 283.8W, max 1075.2W, std dev 201.21W, divergence 20.18%
2026-08-16 15:15:01.934271: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:15:01.934374: LoadML is_calculating False
2026-08-16 15:15:01.934432: Creating pool of 12 processes to match your CPU count
2026-08-16 15:15:02.083849: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 683.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.19kWh, PV 0.0kWh
2026-08-16 15:15:02.213168: Battery has 15.42 hours left - now at 11.36kWh
2026-08-16 15:15:02.258461: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 723.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.17kWh, PV 0.0kWh
2026-08-16 15:15:02.335301: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.17kWh, PV 0.0kWh
2026-08-16 15:15:02.410856: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 428.37p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.19kWh, PV 0.0kWh
2026-08-16 15:15:02.410956: Saving plan best values to HA entities
2026-08-16 15:15:02.574980: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:15:02.579981: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:15:02.584853: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.27kWh, house 0.35kWh, export 0.0kWh, metric 428.37p, metric10 447.47p
2026-08-16 15:15:02.655025: Marginal costs baseline metric (no standing charge): 381.7355
2026-08-16 15:15:02.920349: Marginal energy costs matrix computed: min=8.0 max=20.73
2026-08-16 15:15:02.993241: Rate array import [{'start': 915, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:15:02.994050: - Your estimated bill for today is £3.08 and tomorrow is £1.41
2026-08-16 15:15:02.994099: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:15:02.994122: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:15:02.994141: - For the next 48 hours there will be no solar generation.
2026-08-16 15:15:02.994158: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:15:02.994175: - Your car is currently charging.
2026-08-16 15:15:02.994193: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:15:02.994210: 
2026-08-16 15:15:03.050491: Plan calculation took 1.13 seconds
2026-08-16 15:15:03.054370: No high rate period found
2026-08-16 15:15:03.106980: Import threshold used for optimisation was 8.0p
2026-08-16 15:15:03.172054: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:15:03.181099: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:15:03.181304: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:15:03.181487: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:15:03.181849: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:15:03.182007: No export window planned
2026-08-16 15:15:03.182214: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:15:03.182269: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:15:03.182547: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:15:03.182733: Car charging from battery is off, next slot for car 0 is 08-16 15:15:00 - 08-16 15:30:00
2026-08-16 15:15:03.182852: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:15:03.183038: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:15:03.183145: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:15:03.183260: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:15:03.183419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183696: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183732: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183761: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183798: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183825: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183852: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183886: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.183962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184099: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:15:03.184206: Inverter 0 count register writes 0
2026-08-16 15:15:03.206584: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 15:15:03.214350: Total inverter register writes now 839
2026-08-16 15:15:03.257138: Info: Completed run status Hold for car
2026-08-16 15:15:03.263650: Info: record_status Hold for car
2026-08-16 15:15:03.269989: Saved current settings to /config/predbat_config.json
2026-08-16 15:15:03.270283: Compare, best tariff: current metric 318.25p
2026-08-16 15:15:33.374905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:15:33.375291: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:15:33.375388: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:15:33.375677: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:15:33.375745: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:15:33.375785: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:15:33.375823: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:17:33.606507: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:17:33.606851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:17:33.606916: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:17:33.607072: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:17:33.607112: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:17:33.607134: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:17:33.607152: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:19:33.848687: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:19:33.849067: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:19:33.849142: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:19:33.849388: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:19:33.849451: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:19:33.849494: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:19:33.849515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:20:00.024792: --------------- PredBat - update at 2026-08-16 15:20:00+01:00 with clock skew 0 minutes, minutes now 920
2026-08-16 15:20:00.027082: Saved current settings to /config/predbat_config.json
2026-08-16 15:20:00.030246: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 15:20:00.030441: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:20:00.030576: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:20:00.074248: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:20:00.075187: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:20:00.076813: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:20:00.077603: Cars 1 charging from battery False 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-16 15:20:00.077874: Predbat mode is set to Control charge & discharge
2026-08-16 15:20:00.275362: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:20:00.275521: Using load_power data to fill gaps in load_today data
2026-08-16 15:20:00.998210: Processing 721 30-minute periods for power integration
2026-08-16 15:20:01.156138: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:20:01.156301: Car charging hold False, threshold 6.0kWh
2026-08-16 15:20:01.156348: Current data so far today: load 7.72kWh, import 8.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:20:01.174335: Cars: SoC: [22.854]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:20:01.175061: Standing charge is set to 46.63p
2026-08-16 15:20:01.251010: 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-16 15:20:01.251235: 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-16 15:20:01.251443: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.251528: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.251589: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.251769: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.251846: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.251915: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252005: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252069: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252130: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252194: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252254: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252411: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:20:01.252461: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:20:01.256859: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:20:01.257162: Import rates: min 8.0p, max 33.75p, average 26.42p
2026-08-16 15:20:01.305513: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:20:01.305659: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:20:01.306835: High export rate found rates in range 99p to -99p
2026-08-16 15:20:01.335975: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:20:01.336191: Car 0 plan charging from 22.854kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:20:01.336628: Car 0 charging plan is: [{'start': 920, 'end': 930, 'kwh': 1.233, 'average': 8.0, 'cost': 9.87, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:20:01.349704: Battery level now 11.36kWh, -1hr ago 11.68kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:20:01.350016: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 5.09p, import 5.09p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:20:01.404687: Today's energy total net 8.4kWh, import 8.4kWh, export 0.0kWh, cost 283.26p, import 236.62p, export 0.0p, carbon 0.0kg
2026-08-16 15:20:01.404819: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:20:01.481015: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:20:01.506342: Today's load divergence 86.93%, in-day adjustment 85.92%, damping 0.95x, yesterday 82.97% today 87.59% blend 36.11%
2026-08-16 15:20:01.506451: Today's predicted so far 9.47kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 9.47kWh forecast extra.
2026-08-16 15:20:01.506480: Today's actual load so far 7.68kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 15:20:01.543833: Inverter 0: Type SK Sunsynk
2026-08-16 15:20:01.543961: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:20:01.544220: Reserve min: 7%, battery_min: 7%
2026-08-16 15:20:01.544349: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:20:01.544719: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -384W, load power 384W, PV Power 0W
2026-08-16 15:20:01.544990: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:20:01.545117: Inverter 0 scheduled charge enable is False
2026-08-16 15:20:01.545164: Inverter 0 charge windows currently []
2026-08-16 15:20:01.545210: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:20:01.545384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:20:01.545434: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:20:01.545485: Inverter 0 scheduled discharge enable is False
2026-08-16 15:20:01.545672: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:20:01.545745: Inverter 0 discharge windows currently []
2026-08-16 15:20:01.545781: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:20:01.545811: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:20:01.545832: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:20:01.615943: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:20:01.616071: Plan was last updated on 2026-08-16 15:10:00+01:00 and is now 10.0 minutes old
2026-08-16 15:20:01.616273: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:20:01.616328: Best export window [  ]
2026-08-16 15:20:01.617003: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:20:01.619643: Load divergence over 8.0 hours mean 503.37W, min 289.8W, max 1034.4W, std dev 192.74W, divergence 19.14%
2026-08-16 15:20:01.635782: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:20:01.635984: LoadML is_calculating False
2026-08-16 15:20:01.636080: Creating pool of 12 processes to match your CPU count
2026-08-16 15:20:01.741160: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 686.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.38kWh, PV 0.0kWh
2026-08-16 15:20:01.887311: Battery has 15.25 hours left - now at 11.36kWh
2026-08-16 15:20:01.940872: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 725.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.36kWh, PV 0.0kWh
2026-08-16 15:20:02.052349: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.36kWh, PV 0.0kWh
2026-08-16 15:20:02.158222: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 434.81p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.38kWh, PV 0.0kWh
2026-08-16 15:20:02.158344: Saving plan best values to HA entities
2026-08-16 15:20:02.334678: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:20:02.340873: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:20:02.346822: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.81kWh, house 0.3kWh, export 0.0kWh, metric 434.81p, metric10 451.62p
2026-08-16 15:20:02.420190: Marginal costs baseline metric (no standing charge): 388.1743
2026-08-16 15:20:02.665178: Marginal energy costs matrix computed: min=8.0 max=20.82
2026-08-16 15:20:02.741972: Rate array import [{'start': 920, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:20:02.742732: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:20:02.742781: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:20:02.742804: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:20:02.742823: - For the next 48 hours there will be no solar generation.
2026-08-16 15:20:02.742844: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:20:02.742890: - Your car is currently charging.
2026-08-16 15:20:02.742910: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:20:02.742928: 
2026-08-16 15:20:02.809296: Plan calculation took 1.19 seconds
2026-08-16 15:20:02.813143: No high rate period found
2026-08-16 15:20:02.869761: Import threshold used for optimisation was 8.0p
2026-08-16 15:20:02.934155: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:20:02.941307: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:20:02.941443: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:20:02.941545: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:20:02.941771: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:20:02.941848: No export window planned
2026-08-16 15:20:02.941948: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:20:02.941972: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:20:02.942083: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:20:02.942171: Car charging from battery is off, next slot for car 0 is 08-16 15:20:00 - 08-16 15:30:00
2026-08-16 15:20:02.942235: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:20:02.942333: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:20:02.942389: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:20:02.942450: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:20:02.942537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942760: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942781: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942802: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942822: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942846: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942866: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.942991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.943013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.943033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.943052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:02.943070: Inverter 0 count register writes 0
2026-08-16 15:20:02.959533: 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-16 15:20:02.959725: Recompute is saving previous plan...
2026-08-16 15:20:02.960622: Best charge window [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:20:02.960665: Best export window [  ]
2026-08-16 15:20:02.961353: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:20:02.963896: Load divergence over 8.0 hours mean 503.37W, min 289.8W, max 1034.4W, std dev 192.74W, divergence 19.14%
2026-08-16 15:20:02.978293: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:20:02.978426: LoadML is_calculating False
2026-08-16 15:20:02.978490: Creating pool of 12 processes to match your CPU count
2026-08-16 15:20:03.051889: 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(0.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-16 15:20:03.052761: Optimise levels pass started at 2026-08-16 15:20:03
2026-08-16 15:20:03.052811: Optimise all windows, total charge 28 export 1
2026-08-16 15:20:03.781016: >> Region optimisation pass width 960 gives best_metric 466.83p, best_cost 471.57p, best_cycle 36.55kWh, best_import 23.54kWh
2026-08-16 15:20:03.921742: >> Region optimisation pass width 480 gives best_metric 466.83p, best_cost 471.57p, best_cycle 36.55kWh, best_import 23.54kWh
2026-08-16 15:20:04.499033: >> Region optimisation pass width 240 gives best_metric 465.26p, best_cost 471.91p, best_cycle 37.15kWh, best_import 23.58kWh
2026-08-16 15:20:05.111361: >> Region optimisation pass width 120 gives best_metric 465.26p, best_cost 471.91p, best_cycle 37.15kWh, best_import 23.58kWh
2026-08-16 15:20:05.111741: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 16
2026-08-16 15:20:05.111833: Optimise levels pass ended at 2026-08-16 15:20:05, duration 2.1 seconds tried 75 combinations
2026-08-16 15:20:05.111911: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 465.26p, best_keep 0kWh, best_cycle 37.15kWh, best_carbon 0kg, best_import 23.58kWh
2026-08-16 15:20:05.135337: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 15:20:09.273798: Tweak plan optimisation started metric 372.39p, cost 382.79p
2026-08-16 15:20:09.613449: Tweak optimisation finished metric 372.39p, cost 382.79p, metric_keep 0kWh, cycle 23.4kWh, carbon 0kg, import 12.44kWh, changed 8 window(s)
2026-08-16 15:20:09.634105: Swap charge optimisation started metric 372.39p, cost 382.79p, min_improvement_swap 0.1p
2026-08-16 15:20:10.740249: Swap charge optimisation finished metric 372.39p, cost 382.79p
2026-08-16 15:20:10.960871: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.07p -> 370.9p, plan now metric 373.75p, cost 379.75p, cycle 23.93kWh, import 12.06kWh
2026-08-16 15:20:10.976418: Raw charge windows [ 16-08 15:00:00 - 16-08 15:30:00 @ 8.0p 0%, 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 16:00:00 - 16-08 16:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:20:10.977035: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:20:10.977369: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:20:10.977557: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:20:11.034588: Previous plan best metric is 372.39 (cost 382.79) and new plan best metric is 372.39 (cost 382.79)
2026-08-16 15:20:11.034974: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:20:11.035315: Plan valid is now true after recompute was False
2026-08-16 15:20:11.073561: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 684.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.16kWh, PV 0.0kWh
2026-08-16 15:20:11.275115: Battery has 15.25 hours left - now at 11.36kWh
2026-08-16 15:20:11.337914: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 723.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.13kWh, PV 0.0kWh
2026-08-16 15:20:11.447183: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.13kWh, PV 0.0kWh
2026-08-16 15:20:11.593920: predict best end_record 08-17 23:30:00, final soc 1.29kWh, metric 426.38p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.16kWh, PV 0.0kWh
2026-08-16 15:20:11.594051: Saving plan best values to HA entities
2026-08-16 15:20:11.842496: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:20:11.853922: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:20:11.865072: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.76kWh, house 0.3kWh, export 0.0kWh, metric 426.38p, metric10 444.22p
2026-08-16 15:20:11.962122: Marginal costs baseline metric (no standing charge): 379.7484
2026-08-16 15:20:12.343568: Marginal energy costs matrix computed: min=8.0 max=20.82
2026-08-16 15:20:12.416841: Rate array import [{'start': 920, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 920, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:20:12.417615: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:20:12.417700: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:20:12.417725: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:20:12.417744: - For the next 48 hours there will be no solar generation.
2026-08-16 15:20:12.417786: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:20:12.417808: - Your car is currently charging.
2026-08-16 15:20:12.417826: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:20:12.417843: 
2026-08-16 15:20:12.477856: Plan calculation took 9.52 seconds
2026-08-16 15:20:12.478181: Inverter 0: Type SK Sunsynk
2026-08-16 15:20:12.478227: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:20:12.478482: Reserve min: 7%, battery_min: 7%
2026-08-16 15:20:12.478566: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:20:12.478877: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -384W, load power 384W, PV Power 0W
2026-08-16 15:20:12.479118: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:20:12.479224: Inverter 0 scheduled charge enable is False
2026-08-16 15:20:12.479260: Inverter 0 charge windows currently []
2026-08-16 15:20:12.479311: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:20:12.479433: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:20:12.479474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:20:12.479512: Inverter 0 scheduled discharge enable is False
2026-08-16 15:20:12.479645: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:20:12.479683: Inverter 0 discharge windows currently []
2026-08-16 15:20:12.479705: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:20:12.479724: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:20:12.479747: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:20:12.541878: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:20:12.542032: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:20:12.542135: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:20:12.542395: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:20:12.542517: No export window planned
2026-08-16 15:20:12.542703: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:20:12.542752: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:20:12.542977: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:20:12.543175: Car charging from battery is off, next slot for car 0 is 08-16 15:20:00 - 08-16 15:30:00
2026-08-16 15:20:12.543269: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:20:12.543407: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:20:12.543463: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:20:12.543524: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:20:12.543628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543922: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543950: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.543975: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544009: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544035: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544060: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544090: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:20:12.544377: Inverter 0 count register writes 0
2026-08-16 15:20:12.569644: Total inverter register writes now 839
2026-08-16 15:20:12.607404: Info: Completed run status Hold for car
2026-08-16 15:20:12.616195: Info: record_status Hold for car
2026-08-16 15:20:12.625108: Saved current settings to /config/predbat_config.json
2026-08-16 15:20:12.625539: Compare, best tariff: current metric 318.25p
2026-08-16 15:20:48.746630: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:20:48.746970: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:20:48.747042: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:20:48.747279: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:20:48.747344: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:20:48.747386: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:20:48.747418: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:22:48.986582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:22:48.986837: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:22:48.986895: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:22:48.987037: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:22:48.987077: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:22:48.987099: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:22:48.987118: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:24:49.237821: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:24:49.238116: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:24:49.238178: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:24:49.238393: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:24:49.238452: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:24:49.238488: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:24:49.238520: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:25:00.326880: --------------- PredBat - update at 2026-08-16 15:25:00+01:00 with clock skew 0 minutes, minutes now 925
2026-08-16 15:25:00.327722: Saved current settings to /config/predbat_config.json
2026-08-16 15:25:00.327851: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 15:25:00.327928: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:25:00.328035: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:25:00.350420: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:25:00.350552: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:25:00.350722: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:25:00.351255: Cars 1 charging from battery False 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-16 15:25:00.351381: Predbat mode is set to Control charge & discharge
2026-08-16 15:25:00.574020: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:25:00.574244: Using load_power data to fill gaps in load_today data
2026-08-16 15:25:01.386190: Processing 721 30-minute periods for power integration
2026-08-16 15:25:01.552122: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:25:01.552305: Car charging hold False, threshold 6.0kWh
2026-08-16 15:25:01.552371: Current data so far today: load 7.75kWh, import 8.4kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:25:01.572226: Cars: SoC: [24.026]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:25:01.573621: Standing charge is set to 46.63p
2026-08-16 15:25:01.674658: 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-16 15:25:01.674975: 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-16 15:25:01.675287: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.675385: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.675763: Octopus: Intelligent slot at 08-16 15:00:00-08-16 16:30:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.675931: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676007: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676067: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676127: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676207: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676267: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676329: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676384: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676521: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:25:01.676570: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:25:01.680858: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:25:01.681338: Import rates: min 8.0p, max 33.75p, average 26.46p
2026-08-16 15:25:01.715922: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:25:01.716049: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:25:01.717320: High export rate found rates in range 99p to -99p
2026-08-16 15:25:01.746027: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:25:01.746398: Car 0 plan charging from 24.026kWh to 100.0% (58.6kWh), with slots [{'start': 900, 'end': 930, 'average': 8.0}, {'start': 930, 'end': 960, 'average': 8.0}, {'start': 960, 'end': 990, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:25:01.746924: Car 0 charging plan is: [{'start': 925, 'end': 930, 'kwh': 0.617, 'average': 8.0, 'cost': 4.93, 'octopus': False}, {'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:25:01.763751: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:25:01.764207: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 4.69p, import 4.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:25:01.835409: Today's energy total net 8.4kWh, import 8.4kWh, export 0.0kWh, cost 283.26p, import 236.62p, export 0.0p, carbon 0.0kg
2026-08-16 15:25:01.835552: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:25:01.911164: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:25:01.934457: Today's load divergence 87.07%, in-day adjustment 86.02%, damping 0.95x, yesterday 82.97% today 87.71% blend 35.76%
2026-08-16 15:25:01.934552: Today's predicted so far 9.49kWh with 0.0kWh car/iBoost excluded, 6.06kWh import ignored, and 9.49kWh forecast extra.
2026-08-16 15:25:01.934582: Today's actual load so far 7.72kWh with 0.0kWh car/iBoost excluded, and 6.06kWh import ignored.
2026-08-16 15:25:01.967239: Inverter 0: Type SK Sunsynk
2026-08-16 15:25:01.967319: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:25:01.967476: Reserve min: 7%, battery_min: 7%
2026-08-16 15:25:01.967533: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:25:01.967742: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -361W, load power 361W, PV Power 0W
2026-08-16 15:25:01.967874: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:25:01.967948: Inverter 0 scheduled charge enable is False
2026-08-16 15:25:01.967971: Inverter 0 charge windows currently []
2026-08-16 15:25:01.967992: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:25:01.968083: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:25:01.968113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:25:01.968142: Inverter 0 scheduled discharge enable is False
2026-08-16 15:25:01.968262: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:25:01.968294: Inverter 0 discharge windows currently []
2026-08-16 15:25:01.968312: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:25:01.968327: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:25:01.968344: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:25:02.024348: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:25:02.024451: Plan was last updated on 2026-08-16 15:20:00+01:00 and is now 5.0 minutes old
2026-08-16 15:25:02.024688: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:25:02.024734: Best export window [  ]
2026-08-16 15:25:02.025544: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:25:02.028060: Load divergence over 8.0 hours mean 508.13W, min 291.6W, max 1048.2W, std dev 186.95W, divergence 18.4%
2026-08-16 15:25:02.043023: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:25:02.043138: LoadML is_calculating False
2026-08-16 15:25:02.043212: Creating pool of 12 processes to match your CPU count
2026-08-16 15:25:02.148657: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 685.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.26kWh, PV 0.0kWh
2026-08-16 15:25:02.267590: Battery has 15.17 hours left - now at 11.36kWh
2026-08-16 15:25:02.313633: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 723.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.23kWh, PV 0.0kWh
2026-08-16 15:25:02.397499: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 446.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.23kWh, PV 0.0kWh
2026-08-16 15:25:02.477284: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 430.28p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 15:25:02.477380: Saving plan best values to HA entities
2026-08-16 15:25:02.645495: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:25:02.651277: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:25:02.656715: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.28kWh, house 0.27kWh, export 0.0kWh, metric 430.28p, metric10 446.64p
2026-08-16 15:25:02.753368: Marginal costs baseline metric (no standing charge): 383.6429
2026-08-16 15:25:02.997720: Marginal energy costs matrix computed: min=8.0 max=20.92
2026-08-16 15:25:03.065409: Rate array import [{'start': 925, 'end': 990, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 990, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:25:03.066002: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:25:03.066042: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 7 hours.
2026-08-16 15:25:03.066061: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:25:03.066076: - For the next 48 hours there will be no solar generation.
2026-08-16 15:25:03.066090: - You will reach a minimum of 8% battery in 32 hours.
2026-08-16 15:25:03.066104: - Your car is currently charging.
2026-08-16 15:25:03.066121: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:25:03.066150: 
2026-08-16 15:25:03.113678: Plan calculation took 1.09 seconds
2026-08-16 15:25:03.116654: No high rate period found
2026-08-16 15:25:03.162113: Import threshold used for optimisation was 8.0p
2026-08-16 15:25:03.206932: Low import rate windows [0: 08-16 15:00:00 - 08-16 15:30:00 @ 8.0, 1: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 2: 08-16 16:00:00 - 08-16 16:30:00 @ 8.0, 3: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 4: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 5: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 6: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 7: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 8: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 9: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 10: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 11: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 12: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 13: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 14: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 15: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:25:03.213205: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:25:03.213329: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:25:03.213445: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:25:03.213696: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:25:03.213770: No export window planned
2026-08-16 15:25:03.213863: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:25:03.213893: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:25:03.214029: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:25:03.214118: Car charging from battery is off, next slot for car 0 is 08-16 15:25:00 - 08-16 15:30:00
2026-08-16 15:25:03.214206: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:25:03.214297: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:25:03.214349: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:25:03.214401: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:25:03.214492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214603: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214748: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214803: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214845: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214887: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.214964: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215005: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215049: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:25:03.215354: Inverter 0 count register writes 0
2026-08-16 15:25:03.230519: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 15:25:03.235219: Total inverter register writes now 839
2026-08-16 15:25:03.264560: Info: Completed run status Hold for car
2026-08-16 15:25:03.270763: Info: record_status Hold for car
2026-08-16 15:25:03.276880: Saved current settings to /config/predbat_config.json
2026-08-16 15:25:03.277227: Compare, best tariff: current metric 318.25p
2026-08-16 15:25:33.375819: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:25:33.376071: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:25:33.376116: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:25:33.376339: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:25:33.376385: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:25:33.376405: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:25:33.376432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:27:33.605485: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:27:33.605766: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:27:33.605852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:27:33.606123: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:27:33.606265: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:27:33.606348: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:27:33.606515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:29:33.884232: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:29:33.884520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:29:33.884580: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:29:33.884806: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:29:33.884854: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:29:33.884877: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:29:33.884898: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:30:00.999525: --------------- PredBat - update at 2026-08-16 15:30:00+01:00 with clock skew 0 minutes, minutes now 930
2026-08-16 15:30:01.000353: Saved current settings to /config/predbat_config.json
2026-08-16 15:30:01.000499: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 15:30:01.000581: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:30:01.000719: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:30:01.023426: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:30:01.023654: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:30:01.023910: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:30:01.024539: Cars 1 charging from battery False 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-16 15:30:01.024727: Predbat mode is set to Control charge & discharge
2026-08-16 15:30:01.249722: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:30:01.249927: Using load_power data to fill gaps in load_today data
2026-08-16 15:30:02.147945: Processing 721 30-minute periods for power integration
2026-08-16 15:30:02.350553: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:30:02.350705: Car charging hold False, threshold 6.0kWh
2026-08-16 15:30:02.350756: Current data so far today: load 7.85kWh, import 8.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:30:02.369961: Cars: SoC: [24.026]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:30:02.370857: Standing charge is set to 46.63p
2026-08-16 15:30:02.480452: 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-16 15:30:02.480741: 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-16 15:30:02.480976: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.481201: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.481398: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.481581: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.481758: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.481942: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482145: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482246: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482420: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482606: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482702: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482865: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:30:02.482925: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:30:02.488655: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:30:02.489084: Import rates: min 8.0p, max 33.75p, average 25.44p
2026-08-16 15:30:02.532848: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:30:02.533024: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:30:02.534344: High export rate found rates in range 99p to -99p
2026-08-16 15:30:02.570749: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:30:02.571001: Car 0 plan charging from 24.026kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:30:02.571501: Car 0 charging plan is: [{'start': 930, 'end': 960, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}]
2026-08-16 15:30:02.588022: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:30:02.588425: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 4.83p, import 4.83p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:30:02.662546: Today's energy total net 8.5kWh, import 8.5kWh, export 0.0kWh, cost 284.06p, import 237.42p, export 0.0p, carbon 0.0kg
2026-08-16 15:30:02.662709: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:30:02.808620: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:30:02.850063: Today's load divergence 87.27%, in-day adjustment 86.16%, damping 0.95x, yesterday 82.97% today 87.9% blend 35.42%
2026-08-16 15:30:02.850231: Today's predicted so far 9.61kWh with 0.0kWh car/iBoost excluded, 6.06kWh import ignored, and 9.61kWh forecast extra.
2026-08-16 15:30:02.850294: Today's actual load so far 7.87kWh with 0.0kWh car/iBoost excluded, and 6.06kWh import ignored.
2026-08-16 15:30:02.902438: 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-16T16:30:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.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.7, 'source': 'SMART'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T19:00:00+01:00', 'end': '2026-08-16T19:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T22:00:00+01:00', 'end': '2026-08-16T22:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -7.4, '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-17T06:00:00+01:00', 'end': '2026-08-17T07: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': -1.9335, 'source': 'SMART'}]]
2026-08-16 15:30:02.903021: Sensor changes require a replan, will recompute the plan
2026-08-16 15:30:02.903211: Inverter 0: Type SK Sunsynk
2026-08-16 15:30:02.903260: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:30:02.903448: Reserve min: 7%, battery_min: 7%
2026-08-16 15:30:02.903528: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:30:02.903803: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -370W, load power 370W, PV Power 0W
2026-08-16 15:30:02.903969: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:30:02.904058: Inverter 0 scheduled charge enable is False
2026-08-16 15:30:02.904093: Inverter 0 charge windows currently []
2026-08-16 15:30:02.904152: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:30:02.904270: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:30:02.904307: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:30:02.904351: Inverter 0 scheduled discharge enable is False
2026-08-16 15:30:02.904489: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:30:02.904527: Inverter 0 discharge windows currently []
2026-08-16 15:30:02.904549: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:30:02.904568: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:30:02.904586: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:30:02.983288: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:30:02.983380: Will recompute the plan as it is invalid
2026-08-16 15:30:02.983484: Recompute is saving previous plan...
2026-08-16 15:30:02.984617: Best charge window [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:30:02.984698: Best export window [  ]
2026-08-16 15:30:02.985546: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:30:02.988641: Load divergence over 8.0 hours mean 517.49W, min 292.2W, max 1100.4W, std dev 211.64W, divergence 20.45%
2026-08-16 15:30:03.009476: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:30:03.009618: LoadML is_calculating False
2026-08-16 15:30:03.009700: Creating pool of 12 processes to match your CPU count
2026-08-16 15:30:03.103529: 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(0.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-16 15:30:03.104764: Optimise levels pass started at 2026-08-16 15:30:03
2026-08-16 15:30:03.104835: Optimise all windows, total charge 31 export 1
2026-08-16 15:30:03.966145: >> Region optimisation pass width 960 gives best_metric 468.2p, best_cost 472.16p, best_cycle 36.66kWh, best_import 23.51kWh
2026-08-16 15:30:04.442960: >> Region optimisation pass width 480 gives best_metric 468.2p, best_cost 472.16p, best_cycle 36.66kWh, best_import 23.51kWh
2026-08-16 15:30:05.167682: >> Region optimisation pass width 240 gives best_metric 466.63p, best_cost 472.5p, best_cycle 37.25kWh, best_import 23.55kWh
2026-08-16 15:30:06.023610: >> Region optimisation pass width 120 gives best_metric 466.63p, best_cost 472.5p, best_cycle 37.25kWh, best_import 23.55kWh
2026-08-16 15:30:06.024050: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 15:30:06.025574: Optimise levels pass ended at 2026-08-16 15:30:06, duration 2.9 seconds tried 95 combinations
2026-08-16 15:30:06.028098: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 466.63p, best_keep 0kWh, best_cycle 37.25kWh, best_carbon 0kg, best_import 23.55kWh
2026-08-16 15:30:06.055082: Starting detailed optimisation end_record 08-17 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, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 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]kWh and export limits []kWh
2026-08-16 15:30:10.137489: Tweak plan optimisation started metric 372.68p, cost 383.23p
2026-08-16 15:30:10.569000: Tweak optimisation finished metric 372.68p, cost 383.23p, metric_keep 0kWh, cycle 23.43kWh, carbon 0kg, import 12.4kWh, changed 8 window(s)
2026-08-16 15:30:10.591601: Swap charge optimisation started metric 372.68p, cost 383.23p, min_improvement_swap 0.1p
2026-08-16 15:30:11.906157: Swap charge optimisation finished metric 372.68p, cost 383.23p
2026-08-16 15:30:12.048623: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.53p -> 371.26p, plan now metric 374.2p, cost 379.73p, cycle 23.88kWh, import 11.96kWh
2026-08-16 15:30:12.059569: Raw charge windows [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:30:12.059925: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:30:12.060169: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:30:12.060344: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:30:12.101044: Previous plan best metric is 372.69 (cost 383.26) and new plan best metric is 372.68 (cost 383.23)
2026-08-16 15:30:12.101307: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:30:12.101463: Plan valid is now true after recompute was False
2026-08-16 15:30:12.131147: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 680.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.24kWh, PV 0.0kWh
2026-08-16 15:30:12.277509: Battery has 15.08 hours left - now at 11.36kWh
2026-08-16 15:30:12.338606: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 723.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.21kWh, PV 0.0kWh
2026-08-16 15:30:12.423539: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 443.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.21kWh, PV 0.0kWh
2026-08-16 15:30:12.503596: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 426.77p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.24kWh, PV 0.0kWh
2026-08-16 15:30:12.503694: Saving plan best values to HA entities
2026-08-16 15:30:12.686823: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:30:12.693163: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:30:12.700779: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.78kWh, house 0.23kWh, export 0.0kWh, metric 426.77p, metric10 443.88p
2026-08-16 15:30:12.789708: Marginal costs baseline metric (no standing charge): 380.1343
2026-08-16 15:30:13.084941: Marginal energy costs matrix computed: min=8.0 max=20.72
2026-08-16 15:30:13.164690: Rate array import [{'start': 930, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 930, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:30:13.165478: - Your estimated bill for today is £3.10 and tomorrow is £1.42
2026-08-16 15:30:13.165540: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:30:13.165564: - The battery is currently at 71% and is in eco mode for the next 8 hours.
2026-08-16 15:30:13.165582: - For the next 48 hours there will be no solar generation.
2026-08-16 15:30:13.165600: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:30:13.165617: - Your car is currently charging.
2026-08-16 15:30:13.165638: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-16 15:30:13.165656: 
2026-08-16 15:30:13.229432: Plan calculation took 10.25 seconds
2026-08-16 15:30:13.234891: Saved plan to storage
2026-08-16 15:30:13.238532: No high rate period found
2026-08-16 15:30:13.305758: Import threshold used for optimisation was 8.0p
2026-08-16 15:30:13.391266: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:30:13.401092: Inverter 0: Type SK Sunsynk
2026-08-16 15:30:13.401235: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:30:13.401579: Reserve min: 7%, battery_min: 7%
2026-08-16 15:30:13.401712: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:30:13.402299: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -361W, load power 361W, PV Power 0W
2026-08-16 15:30:13.402667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:30:13.402812: Inverter 0 scheduled charge enable is False
2026-08-16 15:30:13.402852: Inverter 0 charge windows currently []
2026-08-16 15:30:13.402900: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:30:13.403069: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:30:13.403141: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:30:13.403198: Inverter 0 scheduled discharge enable is False
2026-08-16 15:30:13.403391: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:30:13.403443: Inverter 0 discharge windows currently []
2026-08-16 15:30:13.403476: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:30:13.403503: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:30:13.403529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:30:13.487511: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:30:13.487674: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:30:13.487766: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:30:13.487961: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:30:13.488052: No export window planned
2026-08-16 15:30:13.488222: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:30:13.488264: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:30:13.488414: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:30:13.488522: Car charging from battery is off, next slot for car 0 is 08-16 15:30:00 - 08-16 16:00:00
2026-08-16 15:30:13.488605: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:30:13.488699: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:30:13.488752: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:30:13.488805: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:30:13.488912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.488981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489343: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489375: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489428: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489464: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489491: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489522: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489548: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:30:13.489815: Inverter 0 count register writes 0
2026-08-16 15:30:13.521199: Total inverter register writes now 839
2026-08-16 15:30:13.566271: Info: Completed run status Hold for car
2026-08-16 15:30:13.575273: Info: record_status Hold for car
2026-08-16 15:30:13.584620: Saved current settings to /config/predbat_config.json
2026-08-16 15:30:13.584932: Compare, best tariff: current metric 318.25p
2026-08-16 15:30:48.699723: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:30:48.699969: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:30:48.700011: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:30:48.700222: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:30:48.700265: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:30:48.700286: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:30:48.700304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:32:48.938055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:32:48.938552: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:32:48.938618: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:32:48.938839: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:32:48.938903: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:32:48.938945: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:32:48.938979: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:34:49.186922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:34:49.187215: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:34:49.187268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:34:49.187475: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:34:49.187735: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:34:49.187776: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:34:49.187797: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:35:00.292169: --------------- PredBat - update at 2026-08-16 15:35:00+01:00 with clock skew 0 minutes, minutes now 935
2026-08-16 15:35:00.293022: Saved current settings to /config/predbat_config.json
2026-08-16 15:35:00.293180: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 15:35:00.293249: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:35:00.293374: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:35:00.318622: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:35:00.318756: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:35:00.318928: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:35:00.319605: Cars 1 charging from battery False 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-16 15:35:00.319745: Predbat mode is set to Control charge & discharge
2026-08-16 15:35:00.563806: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:35:00.563961: Using load_power data to fill gaps in load_today data
2026-08-16 15:35:01.385561: Processing 721 30-minute periods for power integration
2026-08-16 15:35:01.605098: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:35:01.605289: Car charging hold False, threshold 6.0kWh
2026-08-16 15:35:01.605355: Current data so far today: load 7.9kWh, import 8.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:35:01.624199: Cars: SoC: [25.198]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:35:01.625024: Standing charge is set to 46.63p
2026-08-16 15:35:01.716775: 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-16 15:35:01.717092: 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-16 15:35:01.717278: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.717465: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.717662: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.717838: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718010: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718213: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718383: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718519: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718682: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718862: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.718954: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.719133: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:35:01.719191: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:35:01.724747: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:35:01.725150: Import rates: min 8.0p, max 33.75p, average 25.48p
2026-08-16 15:35:01.768214: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:35:01.768346: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:35:01.769647: High export rate found rates in range 99p to -99p
2026-08-16 15:35:01.809754: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:35:01.810086: Car 0 plan charging from 25.198kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:35:01.810615: Car 0 charging plan is: [{'start': 935, 'end': 960, 'kwh': 3.083, 'average': 8.0, 'cost': 24.67, 'octopus': False}]
2026-08-16 15:35:01.826182: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:35:01.826550: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.15p, import 3.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:35:01.888018: Today's energy total net 8.5kWh, import 8.5kWh, export 0.0kWh, cost 284.06p, import 237.42p, export 0.0p, carbon 0.0kg
2026-08-16 15:35:01.888188: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:35:01.988614: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:35:02.020235: Today's load divergence 87.43%, in-day adjustment 86.28%, damping 0.95x, yesterday 82.97% today 88.06% blend 35.07%
2026-08-16 15:35:02.020453: Today's predicted so far 9.7kWh with 0.0kWh car/iBoost excluded, 6.07kWh import ignored, and 9.7kWh forecast extra.
2026-08-16 15:35:02.020494: Today's actual load so far 7.98kWh with 0.0kWh car/iBoost excluded, and 6.07kWh import ignored.
2026-08-16 15:35:02.079087: Inverter 0: Type SK Sunsynk
2026-08-16 15:35:02.079192: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:35:02.079456: Reserve min: 7%, battery_min: 7%
2026-08-16 15:35:02.079558: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:35:02.079940: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -350W, load power 350W, PV Power 0W
2026-08-16 15:35:02.080297: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:35:02.080409: Inverter 0 scheduled charge enable is False
2026-08-16 15:35:02.081238: Inverter 0 charge windows currently []
2026-08-16 15:35:02.083624: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:35:02.083822: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:35:02.083940: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:35:02.083999: Inverter 0 scheduled discharge enable is False
2026-08-16 15:35:02.084192: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:35:02.084251: Inverter 0 discharge windows currently []
2026-08-16 15:35:02.084303: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:35:02.084401: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:35:02.084447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:35:02.172577: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:35:02.172688: Plan was last updated on 2026-08-16 15:30:00+01:00 and is now 5.0 minutes old
2026-08-16 15:35:02.172907: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:35:02.173002: Best export window [  ]
2026-08-16 15:35:02.173858: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:35:02.177032: Load divergence over 8.0 hours mean 526.72W, min 288.0W, max 1131.0W, std dev 226.04W, divergence 21.46%
2026-08-16 15:35:02.195247: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:35:02.195386: LoadML is_calculating False
2026-08-16 15:35:02.195452: Creating pool of 12 processes to match your CPU count
2026-08-16 15:35:02.313980: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 681.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.37kWh, PV 0.0kWh
2026-08-16 15:35:02.454080: Battery has 15.0 hours left - now at 11.36kWh
2026-08-16 15:35:02.496919: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 724.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.35kWh, PV 0.0kWh
2026-08-16 15:35:02.573849: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.35kWh, PV 0.0kWh
2026-08-16 15:35:02.665519: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 430.87p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.37kWh, PV 0.0kWh
2026-08-16 15:35:02.665636: Saving plan best values to HA entities
2026-08-16 15:35:02.832600: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:35:02.837437: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:35:02.842292: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.32kWh, house 0.2kWh, export 0.0kWh, metric 430.87p, metric10 447.12p
2026-08-16 15:35:02.912895: Marginal costs baseline metric (no standing charge): 384.2325
2026-08-16 15:35:03.203724: Marginal energy costs matrix computed: min=8.0 max=20.64
2026-08-16 15:35:03.286624: Rate array import [{'start': 935, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:35:03.287369: - Your estimated bill for today is £3.09 and tomorrow is £1.42
2026-08-16 15:35:03.287416: - Import rates are cheap (8.0p) for the next 25 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:35:03.287439: - The battery is currently at 71% and is in eco mode for the next 7  hours.
2026-08-16 15:35:03.287482: - For the next 48 hours there will be no solar generation.
2026-08-16 15:35:03.287507: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:35:03.287523: - Your car is currently charging.
2026-08-16 15:35:03.287541: - Your next charge slot will be in 7  hours where import rates will be cheap (8.0p).
2026-08-16 15:35:03.287575: 
2026-08-16 15:35:03.341568: Plan calculation took 1.17 seconds
2026-08-16 15:35:03.345531: No high rate period found
2026-08-16 15:35:03.395535: Import threshold used for optimisation was 8.0p
2026-08-16 15:35:03.440843: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:35:03.446726: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:35:03.446844: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:35:03.446969: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:35:03.447246: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:35:03.447342: No export window planned
2026-08-16 15:35:03.447483: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:35:03.447521: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:35:03.447674: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:35:03.447803: Car charging from battery is off, next slot for car 0 is 08-16 15:35:00 - 08-16 16:00:00
2026-08-16 15:35:03.447896: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:35:03.448027: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:35:03.448104: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:35:03.448191: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:35:03.448328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448677: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448724: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448747: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448768: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448792: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448838: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448875: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.448999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449141: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:35:03.449159: Inverter 0 count register writes 0
2026-08-16 15:35:03.464662: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 15:35:03.470252: Total inverter register writes now 839
2026-08-16 15:35:03.506017: Info: Completed run status Hold for car
2026-08-16 15:35:03.512136: Info: record_status Hold for car
2026-08-16 15:35:03.519214: Saved current settings to /config/predbat_config.json
2026-08-16 15:35:03.519611: Compare, best tariff: current metric 318.25p
2026-08-16 15:35:33.630171: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:35:33.630488: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:35:33.630544: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:35:33.630694: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:35:33.630735: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:35:33.630757: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:35:33.630776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:37:33.882788: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:37:33.883065: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:37:33.883104: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:37:33.883266: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:37:33.883307: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:37:33.883329: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:37:33.883347: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:39:34.127396: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:39:34.127641: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:39:34.127677: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:39:34.127809: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:39:34.127849: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:39:34.127871: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:39:34.127893: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:40:00.251585: --------------- PredBat - update at 2026-08-16 15:40:00+01:00 with clock skew 0 minutes, minutes now 940
2026-08-16 15:40:00.252361: Saved current settings to /config/predbat_config.json
2026-08-16 15:40:00.252498: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 15:40:00.252585: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:40:00.252733: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:40:00.277513: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:40:00.277706: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:40:00.277967: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:40:00.278713: Cars 1 charging from battery False 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-16 15:40:00.278884: Predbat mode is set to Control charge & discharge
2026-08-16 15:40:00.529256: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:40:00.529466: Using load_power data to fill gaps in load_today data
2026-08-16 15:40:01.268672: Processing 721 30-minute periods for power integration
2026-08-16 15:40:01.430704: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:40:01.430819: Car charging hold False, threshold 6.0kWh
2026-08-16 15:40:01.430859: Current data so far today: load 7.95kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:40:01.446236: Cars: SoC: [25.198]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:40:01.446994: Standing charge is set to 46.63p
2026-08-16 15:40:01.522352: 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-16 15:40:01.522595: 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-16 15:40:01.522759: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.522938: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523099: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523244: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523384: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523526: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523667: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523743: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.523879: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.524041: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.524117: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.524244: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:40:01.524293: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:40:01.528837: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:40:01.529277: Import rates: min 8.0p, max 33.75p, average 25.53p
2026-08-16 15:40:01.564299: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:40:01.564422: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:40:01.565533: High export rate found rates in range 99p to -99p
2026-08-16 15:40:01.595730: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:40:01.595981: Car 0 plan charging from 25.198kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:40:01.596407: Car 0 charging plan is: [{'start': 940, 'end': 960, 'kwh': 2.467, 'average': 8.0, 'cost': 19.73, 'octopus': False}]
2026-08-16 15:40:01.613029: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:40:01.613484: Last hour: net energy 0.29kWh, import 0.29kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 3.52p, import 3.52p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:40:01.685764: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 284.86p, import 238.22p, export 0.0p, carbon 0.0kg
2026-08-16 15:40:01.685949: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:40:01.788440: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:40:01.816819: Today's load divergence 87.52%, in-day adjustment 86.35%, damping 0.95x, yesterday 82.97% today 88.14% blend 34.72%
2026-08-16 15:40:01.816924: Today's predicted so far 9.7kWh with 0.0kWh car/iBoost excluded, 6.14kWh import ignored, and 9.7kWh forecast extra.
2026-08-16 15:40:01.816989: Today's actual load so far 7.98kWh with 0.0kWh car/iBoost excluded, and 6.14kWh import ignored.
2026-08-16 15:40:01.856044: Inverter 0: Type SK Sunsynk
2026-08-16 15:40:01.856165: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:40:01.856457: Reserve min: 7%, battery_min: 7%
2026-08-16 15:40:01.856556: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:40:01.856847: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -344W, load power 344W, PV Power 0W
2026-08-16 15:40:01.857062: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:40:01.857161: Inverter 0 scheduled charge enable is False
2026-08-16 15:40:01.857219: Inverter 0 charge windows currently []
2026-08-16 15:40:01.857247: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:40:01.857365: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:40:01.857401: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:40:01.857436: Inverter 0 scheduled discharge enable is False
2026-08-16 15:40:01.857567: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:40:01.857603: Inverter 0 discharge windows currently []
2026-08-16 15:40:01.857626: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:40:01.857648: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:40:01.857665: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:40:01.979625: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:40:01.979745: Plan was last updated on 2026-08-16 15:30:00+01:00 and is now 10.0 minutes old
2026-08-16 15:40:01.979978: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:40:01.980041: Best export window [  ]
2026-08-16 15:40:01.980932: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:40:01.984230: Load divergence over 8.0 hours mean 534.51W, min 287.4W, max 1105.2W, std dev 225.85W, divergence 21.13%
2026-08-16 15:40:02.009750: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:40:02.010186: LoadML is_calculating False
2026-08-16 15:40:02.010308: Creating pool of 12 processes to match your CPU count
2026-08-16 15:40:02.209906: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 683.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.5kWh, PV 0.0kWh
2026-08-16 15:40:02.406878: Battery has 14.92 hours left - now at 11.36kWh
2026-08-16 15:40:02.447388: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 726.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.48kWh, PV 0.0kWh
2026-08-16 15:40:02.517580: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.48kWh, PV 0.0kWh
2026-08-16 15:40:02.596818: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 435.57p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 15:40:02.596990: Saving plan best values to HA entities
2026-08-16 15:40:02.783728: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:40:02.803607: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:40:02.814377: Best charging limit SoC's [16.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.85kWh, house 0.16kWh, export 0.0kWh, metric 435.57p, metric10 451.61p
2026-08-16 15:40:02.923606: Marginal costs baseline metric (no standing charge): 388.9408
2026-08-16 15:40:03.175331: Marginal energy costs matrix computed: min=8.0 max=20.64
2026-08-16 15:40:03.255283: Rate array import [{'start': 940, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 15:40:03.255921: - Your estimated bill for today is £3.10 and tomorrow is £1.42
2026-08-16 15:40:03.255967: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:40:03.255987: - The battery is currently at 71% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 15:40:03.256014: - For the next 48 hours there will be no solar generation.
2026-08-16 15:40:03.256031: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:40:03.256046: - Your car is currently charging.
2026-08-16 15:40:03.256060: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 15:40:03.256074: 
2026-08-16 15:40:03.314320: Plan calculation took 1.33 seconds
2026-08-16 15:40:03.318146: No high rate period found
2026-08-16 15:40:03.385904: Import threshold used for optimisation was 8.0p
2026-08-16 15:40:03.449971: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:40:03.456419: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:40:03.456541: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:40:03.456620: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:40:03.456877: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:40:03.457033: No export window planned
2026-08-16 15:40:03.457182: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:40:03.457217: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:40:03.457342: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:40:03.457437: Car charging from battery is off, next slot for car 0 is 08-16 15:40:00 - 08-16 16:00:00
2026-08-16 15:40:03.457510: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:40:03.457622: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:40:03.457676: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:40:03.457729: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:40:03.457827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.457979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458033: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458088: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458115: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458136: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458157: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458181: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458201: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:03.458396: Inverter 0 count register writes 0
2026-08-16 15:40:03.474987: 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-16 15:40:03.475186: Recompute is saving previous plan...
2026-08-16 15:40:03.476205: Best charge window [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:40:03.476274: Best export window [  ]
2026-08-16 15:40:03.476909: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:40:03.479375: Load divergence over 8.0 hours mean 534.51W, min 287.4W, max 1105.2W, std dev 225.85W, divergence 21.13%
2026-08-16 15:40:03.497350: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:40:03.497485: LoadML is_calculating False
2026-08-16 15:40:03.497557: Creating pool of 12 processes to match your CPU count
2026-08-16 15:40:03.580797: 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(0.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-16 15:40:03.581992: Optimise levels pass started at 2026-08-16 15:40:03
2026-08-16 15:40:03.582092: Optimise all windows, total charge 31 export 1
2026-08-16 15:40:04.320170: >> Region optimisation pass width 960 gives best_metric 469.49p, best_cost 472.44p, best_cycle 36.77kWh, best_import 23.45kWh
2026-08-16 15:40:04.719446: >> Region optimisation pass width 480 gives best_metric 469.49p, best_cost 472.44p, best_cycle 36.77kWh, best_import 23.45kWh
2026-08-16 15:40:05.308174: >> Region optimisation pass width 240 gives best_metric 467.57p, best_cost 472.44p, best_cycle 36.77kWh, best_import 23.45kWh
2026-08-16 15:40:05.991308: >> Region optimisation pass width 120 gives best_metric 467.57p, best_cost 472.44p, best_cycle 36.77kWh, best_import 23.45kWh
2026-08-16 15:40:05.991554: Calculated end_record as 08-17 16:00:00 based on best_price 8.0p, next_charge_start 08-16 16:00:00, max_windows 19
2026-08-16 15:40:05.991617: Optimise levels pass ended at 2026-08-16 15:40:05, duration 2.4 seconds tried 101 combinations
2026-08-16 15:40:05.991682: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 467.57p, best_keep 0kWh, best_cycle 36.77kWh, best_carbon 0kg, best_import 23.45kWh
2026-08-16 15:40:06.013198: Starting detailed optimisation end_record 08-17 16:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 0, 0, 0, 16.0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 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]kWh and export limits []kWh
2026-08-16 15:40:10.873618: Tweak plan optimisation started metric 327.49p, cost 336.35p
2026-08-16 15:40:11.234893: Tweak optimisation finished metric 327.49p, cost 336.35p, metric_keep 0kWh, cycle 14.79kWh, carbon 0kg, import 6.44kWh, changed 8 window(s)
2026-08-16 15:40:11.255677: Swap charge optimisation started metric 327.49p, cost 336.35p, min_improvement_swap 0.1p
2026-08-16 15:40:12.790221: Swap charge optimisation finished metric 327.49p, cost 336.35p
2026-08-16 15:40:12.916378: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 326.57p -> 326.42p, plan now metric 328.36p, cost 334.37p, cycle 15.05kWh, import 6.19kWh
2026-08-16 15:40:12.926993: Raw charge windows [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 56%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 56%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 53%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 50%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 47%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 47%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 50%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 50%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:40:12.927506: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 01:00:00 @ 8.0p 56%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 53%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 50%, 17-08 03:00:00 - 17-08 04:00:00 @ 8.0p 47%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 50%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:40:12.927842: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 01:00:00 @ 8.0p 56%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 53%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 50%, 17-08 03:00:00 - 17-08 04:00:00 @ 8.0p 47%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 50%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:40:12.928134: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 01:00:00 @ 8.0p 56%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 53%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 50%, 17-08 03:00:00 - 17-08 04:00:00 @ 8.0p 47%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 50%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:40:12.966486: Previous plan best metric is 335.82 (cost 383.63) and new plan best metric is 327.49 (cost 336.35)
2026-08-16 15:40:12.966729: New plan metric is significantly better from previous plan, using new plan
2026-08-16 15:40:12.966771: Plan valid is now true after recompute was False
2026-08-16 15:40:12.997020: predict base end_record 08-17 16:00:00, final soc 1.12kWh, metric 512.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 23.27kWh, PV 0.0kWh
2026-08-16 15:40:13.108675: Battery has 14.92 hours left - now at 11.36kWh
2026-08-16 15:40:13.152771: predict base10 end_record 08-17 16:00:00, final soc 1.12kWh, metric 547.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 24.0kWh, PV 0.0kWh
2026-08-16 15:40:13.242364: predict best10 end_record 08-17 16:00:00, final soc 1.12kWh, metric 393.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 15:30:00, load 24.0kWh, PV 0.0kWh
2026-08-16 15:40:13.340384: predict best end_record 08-17 16:00:00, final soc 1.16kWh, metric 381.0p, metric_keep 0kWh, min_soc 1.16kWh @ 08-17 15:55:00, load 23.27kWh, PV 0.0kWh
2026-08-16 15:40:13.340480: Saving plan best values to HA entities
2026-08-16 15:40:13.550320: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:40:13.556135: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:40:13.561582: Best charging limit SoC's [16.0, 9.0, 8.5, 8.0, 7.5, 8.0, 16.0]kWh, export []kWh gives import battery 6.03kWh, house 0.16kWh, export 0.0kWh, metric 381.0p, metric10 393.72p
2026-08-16 15:40:13.635918: Marginal costs baseline metric (no standing charge): 334.3674
2026-08-16 15:40:13.871866: Marginal energy costs matrix computed: min=8.0 max=20.64
2026-08-16 15:40:13.935734: Rate array import [{'start': 940, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2400, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 940, 'end': 2400, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:40:13.936349: - Your estimated bill for today is £3.10 and tomorrow is £2.63
2026-08-16 15:40:13.936389: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:40:13.936408: - The battery is currently at 71% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 15:40:13.936422: - For the next 48 hours there will be no solar generation.
2026-08-16 15:40:13.936436: - You will run out of battery in 24 hours.
2026-08-16 15:40:13.936454: - Your car is currently charging.
2026-08-16 15:40:13.936467: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 15:40:13.936481: 
2026-08-16 15:40:13.981993: Plan calculation took 10.51 seconds
2026-08-16 15:40:13.982495: Inverter 0: Type SK Sunsynk
2026-08-16 15:40:13.982545: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:40:13.982771: Reserve min: 7%, battery_min: 7%
2026-08-16 15:40:13.982851: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:40:13.983170: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -358W, load power 358W, PV Power 0W
2026-08-16 15:40:13.983443: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:40:13.983550: Inverter 0 scheduled charge enable is False
2026-08-16 15:40:13.983587: Inverter 0 charge windows currently []
2026-08-16 15:40:13.983618: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:40:13.983736: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:40:13.983796: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:40:13.983836: Inverter 0 scheduled discharge enable is False
2026-08-16 15:40:13.983974: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:40:13.984028: Inverter 0 discharge windows currently []
2026-08-16 15:40:13.984053: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:40:13.984072: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:40:13.984089: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:40:14.048193: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 01:00:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:40:14.048354: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:40:14.048430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:40:14.048627: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:40:14.048709: No export window planned
2026-08-16 15:40:14.048822: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:40:14.048858: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:40:14.049082: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:40:14.049229: Car charging from battery is off, next slot for car 0 is 08-16 15:40:00 - 08-16 16:00:00
2026-08-16 15:40:14.049299: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:40:14.049402: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:40:14.049455: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:40:14.049514: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:40:14.049626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049864: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049894: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049920: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049951: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.049976: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050023: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050098: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050313: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:40:14.050397: Inverter 0 count register writes 0
2026-08-16 15:40:14.077678: Total inverter register writes now 839
2026-08-16 15:40:14.117083: Info: Completed run status Hold for car
2026-08-16 15:40:14.124403: Info: record_status Hold for car
2026-08-16 15:40:14.132209: Saved current settings to /config/predbat_config.json
2026-08-16 15:40:14.132554: Compare, best tariff: current metric 318.25p
2026-08-16 15:40:49.247390: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:40:49.247673: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:40:49.247723: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:40:49.247920: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:40:49.247966: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:40:49.247988: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:40:49.248045: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:43:03.532325: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:43:03.532622: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:43:03.532671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:43:03.532852: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:43:03.532901: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:43:03.532941: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:43:03.533015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:44:17.914865: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 15:44:22.095062: Processing 1345 30-minute periods for power integration
2026-08-16 15:44:22.218088: ML Component: Car charging hold False, car energy reported load False
2026-08-16 15:44:22.339902: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:44:22.449255: ML Temperature data points: 49461
2026-08-16 15:44:23.516024: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 15:44:23.549808: ML Component: Data fetch completed, load data age 58.0 days, 16724 data points
2026-08-16 15:44:23.549946: ML Component: No training needed, model age is 0.71 hours
2026-08-16 15:44:23.550015: ML Component: Generating predictions load data age 58.0 days, 16724 data points
2026-08-16 15:44:23.686257: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0359 max_dow {0: 0.08796249999813735, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 15:44:32.381482: ML Component: Generated 576 predictions (total 26.78 kWh over 48h)
2026-08-16 15:44:32.473244: ML Component: Prediction cycle completed
2026-08-16 15:44:32.575831: ML Component: Saved 16724 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 15:45:00.663732: --------------- PredBat - update at 2026-08-16 15:45:00+01:00 with clock skew 0 minutes, minutes now 945
2026-08-16 15:45:00.665370: Saved current settings to /config/predbat_config.json
2026-08-16 15:45:00.665590: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 15:45:00.665676: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:45:00.665766: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:45:00.689728: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:45:00.689926: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:45:00.690219: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:45:00.691016: Cars 1 charging from battery False 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-16 15:45:00.691203: Predbat mode is set to Control charge & discharge
2026-08-16 15:45:00.917364: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:45:00.917668: Using load_power data to fill gaps in load_today data
2026-08-16 15:45:01.758518: Processing 721 30-minute periods for power integration
2026-08-16 15:45:01.936425: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:45:01.936657: Car charging hold False, threshold 6.0kWh
2026-08-16 15:45:01.936717: Current data so far today: load 8.0kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:45:01.960151: Cars: SoC: [26.37]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:45:01.961304: Standing charge is set to 46.63p
2026-08-16 15:45:02.060085: 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-16 15:45:02.060340: 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-16 15:45:02.060494: 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-16 15:45:02.060703: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.060851: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.061080: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.061346: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.061595: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.061852: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062009: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062244: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062479: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062617: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062839: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:45:02.062924: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:45:02.068401: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:45:02.068818: Import rates: min 8.0p, max 33.75p, average 25.57p
2026-08-16 15:45:02.109452: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:45:02.109857: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:45:02.110959: High export rate found rates in range 99p to -99p
2026-08-16 15:45:02.149631: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:45:02.149857: Car 0 plan charging from 26.37kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:45:02.150255: Car 0 charging plan is: [{'start': 945, 'end': 960, 'kwh': 1.85, 'average': 8.0, 'cost': 14.8, 'octopus': False}]
2026-08-16 15:45:02.169281: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:45:02.169773: Last hour: net energy 0.28kWh, import 0.28kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.1p, import 3.1p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:45:02.255083: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 284.86p, import 238.22p, export 0.0p, carbon 0.0kg
2026-08-16 15:45:02.255289: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:45:02.351102: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:45:02.379526: Today's load divergence 87.26%, in-day adjustment 86.2%, damping 0.95x, yesterday 82.97% today 87.9% blend 34.38%
2026-08-16 15:45:02.379670: Today's predicted so far 9.69kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 9.69kWh forecast extra.
2026-08-16 15:45:02.379709: Today's actual load so far 7.95kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 15:45:02.424488: 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.7, 'source': 'SMART'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T19:00:00+01:00', 'end': '2026-08-16T19:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T22:00:00+01:00', 'end': '2026-08-16T22:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -7.4, '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-17T06:00:00+01:00', 'end': '2026-08-17T07: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': -1.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:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T19:00:00+01:00', 'end': '2026-08-16T19:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T22:00:00+01:00', 'end': '2026-08-16T22:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -7.4, '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-17T06:00:00+01:00', 'end': '2026-08-17T07: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': -1.9335, 'source': 'SMART'}]]
2026-08-16 15:45:02.425304: Sensor changes require a replan, will recompute the plan
2026-08-16 15:45:02.425581: Inverter 0: Type SK Sunsynk
2026-08-16 15:45:02.425648: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:45:02.425905: Reserve min: 7%, battery_min: 7%
2026-08-16 15:45:02.426018: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:45:02.426396: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -442W, load power 442W, PV Power 0W
2026-08-16 15:45:02.426629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:45:02.426771: Inverter 0 scheduled charge enable is False
2026-08-16 15:45:02.426819: Inverter 0 charge windows currently []
2026-08-16 15:45:02.426853: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:45:02.427048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:45:02.427093: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:45:02.427135: Inverter 0 scheduled discharge enable is False
2026-08-16 15:45:02.427300: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:45:02.427344: Inverter 0 discharge windows currently []
2026-08-16 15:45:02.427369: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:45:02.427411: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:45:02.427449: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:45:02.509827: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:45:02.510119: Will recompute the plan as it is invalid
2026-08-16 15:45:02.510420: Recompute is saving previous plan...
2026-08-16 15:45:02.511672: Best charge window [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:45:02.511734: Best export window [  ]
2026-08-16 15:45:02.512821: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:45:02.516777: Load divergence over 8.0 hours mean 542.23W, min 283.8W, max 1075.2W, std dev 228.03W, divergence 21.03%
2026-08-16 15:45:02.538672: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:45:02.538824: LoadML is_calculating False
2026-08-16 15:45:02.538914: Creating pool of 12 processes to match your CPU count
2026-08-16 15:45:02.634691: 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(0.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-16 15:45:02.636280: Optimise levels pass started at 2026-08-16 15:45:02
2026-08-16 15:45:02.636374: Optimise all windows, total charge 31 export 1
2026-08-16 15:45:03.526043: >> Region optimisation pass width 960 gives best_metric 470.03p, best_cost 474.19p, best_cycle 37.08kWh, best_import 23.67kWh
2026-08-16 15:45:03.740730: >> Region optimisation pass width 480 gives best_metric 470.03p, best_cost 474.19p, best_cycle 37.08kWh, best_import 23.67kWh
2026-08-16 15:45:04.379239: >> Region optimisation pass width 240 gives best_metric 467.25p, best_cost 474.2p, best_cycle 37.08kWh, best_import 23.67kWh
2026-08-16 15:45:04.929216: >> Region optimisation pass width 120 gives best_metric 467.25p, best_cost 474.2p, best_cycle 37.08kWh, best_import 23.67kWh
2026-08-16 15:45:04.929478: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 15:45:04.929638: Optimise levels pass ended at 2026-08-16 15:45:04, duration 2.3 seconds tried 95 combinations
2026-08-16 15:45:04.929762: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 467.25p, best_keep 0kWh, best_cycle 37.08kWh, best_carbon 0kg, best_import 23.67kWh
2026-08-16 15:45:04.946072: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 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]kWh and export limits []kWh
2026-08-16 15:45:08.256301: Tweak plan optimisation started metric 372.74p, cost 383.21p
2026-08-16 15:45:08.620120: Tweak optimisation finished metric 372.74p, cost 383.21p, metric_keep 0kWh, cycle 23.46kWh, carbon 0kg, import 12.29kWh, changed 8 window(s)
2026-08-16 15:45:08.640520: Swap charge optimisation started metric 372.74p, cost 383.21p, min_improvement_swap 0.1p
2026-08-16 15:45:09.955971: Swap charge optimisation finished metric 372.74p, cost 383.21p
2026-08-16 15:45:10.139265: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.58p -> 371.31p, plan now metric 374.26p, cost 379.75p, cycle 23.91kWh, import 11.86kWh
2026-08-16 15:45:10.150122: Raw charge windows [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:45:10.150504: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:45:10.150752: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:45:10.150974: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:45:10.191728: Previous plan best metric is 491.45 (cost 495.9) and new plan best metric is 372.74 (cost 383.21)
2026-08-16 15:45:10.192332: New plan metric is significantly better from previous plan, using new plan
2026-08-16 15:45:10.192415: Plan valid is now true after recompute was False
2026-08-16 15:45:10.223632: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 681.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.29kWh, PV 0.0kWh
2026-08-16 15:45:10.390994: Battery has 14.83 hours left - now at 11.36kWh
2026-08-16 15:45:10.459676: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 723.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:35:00, load 29.26kWh, PV 0.0kWh
2026-08-16 15:45:10.716054: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 445.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.26kWh, PV 0.0kWh
2026-08-16 15:45:10.837195: predict best end_record 08-17 23:30:00, final soc 1.23kWh, metric 426.38p, metric_keep 0kWh, min_soc 1.23kWh @ 08-17 23:25:00, load 28.29kWh, PV 0.0kWh
2026-08-16 15:45:10.837300: Saving plan best values to HA entities
2026-08-16 15:45:11.069062: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:45:11.077742: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:45:11.085391: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 11.74kWh, house 0.12kWh, export 0.0kWh, metric 426.38p, metric10 445.3p
2026-08-16 15:45:11.186663: Marginal costs baseline metric (no standing charge): 379.7489
2026-08-16 15:45:11.478477: Marginal energy costs matrix computed: min=8.0 max=20.65
2026-08-16 15:45:11.559241: Rate array import [{'start': 945, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 945, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:45:11.560047: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:45:11.560113: - Import rates are cheap (8.0p) for the next 15 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:45:11.560150: - The battery is currently at 71% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 15:45:11.560195: - For the next 48 hours there will be no solar generation.
2026-08-16 15:45:11.560217: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:45:11.560241: - Your car is currently charging.
2026-08-16 15:45:11.560280: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 15:45:11.560307: 
2026-08-16 15:45:11.620327: Plan calculation took 9.11 seconds
2026-08-16 15:45:11.625534: Saved plan to storage
2026-08-16 15:45:11.629268: No high rate period found
2026-08-16 15:45:11.692828: Import threshold used for optimisation was 8.0p
2026-08-16 15:45:11.759461: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:45:11.767800: Inverter 0: Type SK Sunsynk
2026-08-16 15:45:11.767894: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:45:11.768142: Reserve min: 7%, battery_min: 7%
2026-08-16 15:45:11.768228: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:45:11.768534: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -442W, load power 442W, PV Power 0W
2026-08-16 15:45:11.768772: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:45:11.768878: Inverter 0 scheduled charge enable is False
2026-08-16 15:45:11.768934: Inverter 0 charge windows currently []
2026-08-16 15:45:11.769026: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:45:11.769160: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:45:11.769203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:45:11.769244: Inverter 0 scheduled discharge enable is False
2026-08-16 15:45:11.769381: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:45:11.769420: Inverter 0 discharge windows currently []
2026-08-16 15:45:11.769444: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:45:11.769464: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:45:11.769481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:45:11.834378: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:45:11.834559: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:45:11.834651: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:45:11.834849: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:45:11.834959: No export window planned
2026-08-16 15:45:11.835090: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:45:11.835376: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:45:11.835669: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:45:11.835843: Car charging from battery is off, next slot for car 0 is 08-16 15:45:00 - 08-16 16:00:00
2026-08-16 15:45:11.835971: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:45:11.836091: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:45:11.836147: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:45:11.836201: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:45:11.836319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836556: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836586: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836617: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836646: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836678: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836756: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.836935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:45:11.837230: Inverter 0 count register writes 0
2026-08-16 15:45:11.875740: Total inverter register writes now 839
2026-08-16 15:45:11.920048: Info: Completed run status Hold for car
2026-08-16 15:45:11.927111: Info: record_status Hold for car
2026-08-16 15:45:11.934363: Saved current settings to /config/predbat_config.json
2026-08-16 15:45:11.934670: Compare, best tariff: current metric 318.25p
2026-08-16 15:45:49.053531: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:45:49.053910: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:45:49.053966: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:45:49.054162: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:45:49.054207: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:45:49.054262: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:45:49.054284: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:47:49.301588: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:47:49.301833: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:47:49.301876: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:47:49.302049: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:47:49.302087: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:47:49.302109: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:47:49.302126: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:50:00.543977: --------------- PredBat - update at 2026-08-16 15:50:00+01:00 with clock skew 0 minutes, minutes now 950
2026-08-16 15:50:00.544779: Saved current settings to /config/predbat_config.json
2026-08-16 15:50:00.544910: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 15:50:00.545052: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:50:00.545160: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:50:00.567258: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:50:00.567440: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:50:00.567707: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:50:00.568519: Cars 1 charging from battery False 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-16 15:50:00.568724: Predbat mode is set to Control charge & discharge
2026-08-16 15:50:00.807503: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:50:00.807688: Using load_power data to fill gaps in load_today data
2026-08-16 15:50:01.632926: Processing 721 30-minute periods for power integration
2026-08-16 15:50:01.788378: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:50:01.788510: Car charging hold False, threshold 6.0kWh
2026-08-16 15:50:01.788549: Current data so far today: load 7.9kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:50:01.803756: Cars: SoC: [26.37]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:50:01.804574: Standing charge is set to 46.63p
2026-08-16 15:50:01.902035: 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-16 15:50:01.902344: 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-16 15:50:01.902548: 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-16 15:50:01.902818: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903004: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903177: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903345: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903575: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903855: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.903951: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.904124: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.904299: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.904389: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.904541: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:50:01.904600: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:50:01.910232: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:50:01.911002: Import rates: min 8.0p, max 33.75p, average 25.61p
2026-08-16 15:50:01.956642: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:50:01.956803: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:50:01.958199: High export rate found rates in range 99p to -99p
2026-08-16 15:50:01.996715: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:50:01.997713: Car 0 plan charging from 26.37kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:50:01.998830: Car 0 charging plan is: [{'start': 950, 'end': 960, 'kwh': 1.233, 'average': 8.0, 'cost': 9.87, 'octopus': False}]
2026-08-16 15:50:02.013809: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:50:02.014172: Last hour: net energy 0.26kWh, import 0.26kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 2.68p, import 2.68p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:50:02.072596: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 284.86p, import 238.22p, export 0.0p, carbon 0.0kg
2026-08-16 15:50:02.072763: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:50:02.147940: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:50:02.171488: Today's load divergence 86.33%, in-day adjustment 85.64%, damping 0.95x, yesterday 82.97% today 87.01% blend 34.03%
2026-08-16 15:50:02.171594: Today's predicted so far 9.72kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 9.72kWh forecast extra.
2026-08-16 15:50:02.171620: Today's actual load so far 7.86kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 15:50:02.211424: Inverter 0: Type SK Sunsynk
2026-08-16 15:50:02.211520: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:50:02.211699: Reserve min: 7%, battery_min: 7%
2026-08-16 15:50:02.211798: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:50:02.212069: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -458W, load power 458W, PV Power 0W
2026-08-16 15:50:02.212245: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:50:02.212333: Inverter 0 scheduled charge enable is False
2026-08-16 15:50:02.212362: Inverter 0 charge windows currently []
2026-08-16 15:50:02.212388: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:50:02.212501: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:50:02.212536: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:50:02.212571: Inverter 0 scheduled discharge enable is False
2026-08-16 15:50:02.212700: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:50:02.212736: Inverter 0 discharge windows currently []
2026-08-16 15:50:02.212777: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:50:02.212798: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:50:02.212815: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:50:02.274190: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:50:02.274331: Plan was last updated on 2026-08-16 15:45:00+01:00 and is now 5.0 minutes old
2026-08-16 15:50:02.274520: Best charge window [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:50:02.274558: Best export window [  ]
2026-08-16 15:50:02.275257: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:50:02.277938: Load divergence over 8.0 hours mean 547.06W, min 317.4W, max 1034.4W, std dev 219.29W, divergence 20.04%
2026-08-16 15:50:02.293428: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:50:02.293519: LoadML is_calculating False
2026-08-16 15:50:02.293578: Creating pool of 12 processes to match your CPU count
2026-08-16 15:50:02.397577: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 681.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.2kWh, PV 0.0kWh
2026-08-16 15:50:02.514018: Battery has 14.83 hours left - now at 11.36kWh
2026-08-16 15:50:02.555152: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 722.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:45:00, load 29.16kWh, PV 0.0kWh
2026-08-16 15:50:02.629438: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.16kWh, PV 0.0kWh
2026-08-16 15:50:02.712921: predict best end_record 08-17 23:35:00, final soc 1.63kWh, metric 429.85p, metric_keep 0kWh, min_soc 1.25kWh @ 08-17 23:25:00, load 28.2kWh, PV 0.0kWh
2026-08-16 15:50:02.713067: Saving plan best values to HA entities
2026-08-16 15:50:02.893094: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:50:02.900351: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 15:50:02.907064: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 12.22kWh, house 0.08kWh, export 0.0kWh, metric 429.85p, metric10 447.63p
2026-08-16 15:50:02.991274: Marginal costs baseline metric (no standing charge): 383.2161
2026-08-16 15:50:03.226455: Marginal energy costs matrix computed: min=8.0 max=20.61
2026-08-16 15:50:03.301274: Rate array import [{'start': 950, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 950, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:50:03.301897: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:50:03.301939: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:50:03.301958: - The battery is currently at 71% and is in eco mode for the next 7 and three quarters hours.
2026-08-16 15:50:03.301973: - For the next 48 hours there will be no solar generation.
2026-08-16 15:50:03.301987: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:50:03.302005: - Your car is currently charging.
2026-08-16 15:50:03.302018: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 15:50:03.302032: 
2026-08-16 15:50:03.356932: Plan calculation took 1.08 seconds
2026-08-16 15:50:03.360789: No high rate period found
2026-08-16 15:50:03.413856: Import threshold used for optimisation was 8.0p
2026-08-16 15:50:03.465988: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:50:03.472415: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:50:03.472558: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:50:03.472688: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:50:03.473022: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:50:03.473120: No export window planned
2026-08-16 15:50:03.473237: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:50:03.473273: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:50:03.473433: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:50:03.473542: Car charging from battery is off, next slot for car 0 is 08-16 15:50:00 - 08-16 16:00:00
2026-08-16 15:50:03.473618: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:50:03.473720: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:50:03.473792: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:50:03.473864: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:50:03.473971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474191: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474250: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474280: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474305: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474335: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474367: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474392: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:50:03.474653: Inverter 0 count register writes 0
2026-08-16 15:50:03.489686: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 15:50:03.495126: Total inverter register writes now 839
2026-08-16 15:50:03.528812: Info: Completed run status Hold for car
2026-08-16 15:50:03.535309: Info: record_status Hold for car
2026-08-16 15:50:03.542179: Saved current settings to /config/predbat_config.json
2026-08-16 15:50:03.542519: Compare, best tariff: current metric 318.25p
2026-08-16 15:50:33.659454: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:50:33.659701: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:50:33.659751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:50:33.659955: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:50:33.659998: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:50:33.660020: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:50:33.660038: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:52:33.899224: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:52:33.899481: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:52:33.899524: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:52:33.899662: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:52:33.899701: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:52:33.899723: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:52:33.899741: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:54:34.127088: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:54:34.127428: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:54:34.127471: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:54:34.127615: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:54:34.127708: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:54:34.127729: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:54:34.127747: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:55:00.241565: --------------- PredBat - update at 2026-08-16 15:55:00+01:00 with clock skew 0 minutes, minutes now 955
2026-08-16 15:55:00.242211: Saved current settings to /config/predbat_config.json
2026-08-16 15:55:00.242401: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 15:55:00.242488: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 15:55:00.242565: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 15:55:00.261736: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 15:55:00.261869: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 15:55:00.262011: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 15:55:00.262444: Cars 1 charging from battery False 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-16 15:55:00.262567: Predbat mode is set to Control charge & discharge
2026-08-16 15:55:00.434704: Found 21602 load_today datapoints going back 28 days
2026-08-16 15:55:00.434849: Using load_power data to fill gaps in load_today data
2026-08-16 15:55:01.149026: Processing 721 30-minute periods for power integration
2026-08-16 15:55:01.314027: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 15:55:01.314600: Car charging hold False, threshold 6.0kWh
2026-08-16 15:55:01.314653: Current data so far today: load 7.9kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 15:55:01.329627: Cars: SoC: [27.542]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 15:55:01.330373: Standing charge is set to 46.63p
2026-08-16 15:55:01.403335: 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-16 15:55:01.403574: 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-16 15:55:01.403739: 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-16 15:55:01.403950: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404101: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404246: Octopus: Intelligent slot at 08-16 19:00:00-08-16 19:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404407: Octopus: Intelligent slot at 08-16 22:00:00-08-16 22:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404577: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404725: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404800: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.404935: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.405118: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.405194: Octopus: Intelligent slot at 08-17 06:00:00-08-17 07:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.405334: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 15:55:01.405387: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 15:55:01.409877: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 15:55:01.410275: Import rates: min 8.0p, max 33.75p, average 25.66p
2026-08-16 15:55:01.451031: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 15:55:01.451283: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 15:55:01.452933: High export rate found rates in range 99p to -99p
2026-08-16 15:55:01.488997: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 15:55:01.489224: Car 0 plan charging from 27.542kWh to 100.0% (58.6kWh), with slots [{'start': 930, 'end': 960, 'average': 8.0}, {'start': 1050, 'end': 1080, 'average': 8.0}, {'start': 1140, 'end': 1170, 'average': 8.0}, {'start': 1320, 'end': 1350, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1800, 'end': 1830, 'average': 8.0}, {'start': 1830, 'end': 1860, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 15:55:01.489678: Car 0 charging plan is: [{'start': 955, 'end': 960, 'kwh': 0.617, 'average': 8.0, 'cost': 4.93, 'octopus': False}]
2026-08-16 15:55:01.506245: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 15:55:01.506766: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 2.26p, import 2.26p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 15:55:01.591626: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 284.86p, import 238.22p, export 0.0p, carbon 0.0kg
2026-08-16 15:55:01.591799: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 15:55:01.671148: Using weighted-bucket historical load forecast over 14 days
2026-08-16 15:55:01.700076: Today's load divergence 86.17%, in-day adjustment 85.55%, damping 0.95x, yesterday 82.97% today 86.87% blend 33.68%
2026-08-16 15:55:01.700202: Today's predicted so far 9.74kWh with 0.0kWh car/iBoost excluded, 6.14kWh import ignored, and 9.74kWh forecast extra.
2026-08-16 15:55:01.700247: Today's actual load so far 7.87kWh with 0.0kWh car/iBoost excluded, and 6.14kWh import ignored.
2026-08-16 15:55:01.738758: Inverter 0: Type SK Sunsynk
2026-08-16 15:55:01.738852: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:55:01.739067: Reserve min: 7%, battery_min: 7%
2026-08-16 15:55:01.739147: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:55:01.739433: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -410W, load power 410W, PV Power 0W
2026-08-16 15:55:01.739597: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:55:01.739686: Inverter 0 scheduled charge enable is False
2026-08-16 15:55:01.739720: Inverter 0 charge windows currently []
2026-08-16 15:55:01.739747: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:55:01.739855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:55:01.739890: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:55:01.739925: Inverter 0 scheduled discharge enable is False
2026-08-16 15:55:01.740046: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:55:01.740083: Inverter 0 discharge windows currently []
2026-08-16 15:55:01.740105: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:55:01.740127: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:55:01.740144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:55:01.804450: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 15:55:01.804581: Plan was last updated on 2026-08-16 15:45:00+01:00 and is now 10.0 minutes old
2026-08-16 15:55:01.804788: Best charge window [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 15:55:01.804830: Best export window [  ]
2026-08-16 15:55:01.805736: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:55:01.809060: Load divergence over 8.0 hours mean 551.74W, min 330.0W, max 1048.2W, std dev 213.04W, divergence 19.31%
2026-08-16 15:55:01.828027: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:55:01.828173: LoadML is_calculating False
2026-08-16 15:55:01.828257: Creating pool of 12 processes to match your CPU count
2026-08-16 15:55:01.947887: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 681.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.26kWh, PV 0.0kWh
2026-08-16 15:55:02.089276: Battery has 14.75 hours left - now at 11.36kWh
2026-08-16 15:55:02.136795: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 722.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:45:00, load 29.23kWh, PV 0.0kWh
2026-08-16 15:55:02.226332: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.23kWh, PV 0.0kWh
2026-08-16 15:55:02.314089: predict best end_record 08-17 23:40:00, final soc 2.0kWh, metric 433.53p, metric_keep 0kWh, min_soc 1.23kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 15:55:02.314189: Saving plan best values to HA entities
2026-08-16 15:55:02.482833: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:55:02.488263: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 15:55:02.494107: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 12.72kWh, house 0.04kWh, export 0.0kWh, metric 433.53p, metric10 451.39p
2026-08-16 15:55:02.578548: Marginal costs baseline metric (no standing charge): 386.8985
2026-08-16 15:55:02.849351: Marginal energy costs matrix computed: min=8.0 max=20.61
2026-08-16 15:55:02.932986: Rate array import [{'start': 955, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 955, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:55:02.933801: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:55:02.933849: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:55:02.933872: - The battery is currently at 71% and is in eco mode for the next 7 and a half hours.
2026-08-16 15:55:02.933891: - For the next 48 hours there will be no solar generation.
2026-08-16 15:55:02.933910: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:55:02.933927: - Your car is currently charging.
2026-08-16 15:55:02.933955: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-16 15:55:02.933974: 
2026-08-16 15:55:02.990380: Plan calculation took 1.19 seconds
2026-08-16 15:55:02.994283: No high rate period found
2026-08-16 15:55:03.050556: Import threshold used for optimisation was 8.0p
2026-08-16 15:55:03.127835: Low import rate windows [0: 08-16 15:30:00 - 08-16 16:00:00 @ 8.0, 1: 08-16 17:30:00 - 08-16 18:00:00 @ 8.0, 2: 08-16 19:00:00 - 08-16 19:30:00 @ 8.0, 3: 08-16 22:00:00 - 08-16 22:30:00 @ 8.0, 4: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 5: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 6: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 7: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 8: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 9: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 10: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 11: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 12: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 13: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 14: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 15: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 16: 08-17 06:00:00 - 08-17 06:30:00 @ 8.0, 17: 08-17 06:30:00 - 08-17 07:00:00 @ 8.0, 18: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 15:55:03.134694: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:55:03.134816: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:55:03.134912: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:55:03.135136: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:55:03.135213: No export window planned
2026-08-16 15:55:03.135308: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:55:03.135351: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:55:03.135467: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:55:03.135558: Car charging from battery is off, next slot for car 0 is 08-16 15:55:00 - 08-16 16:00:00
2026-08-16 15:55:03.135627: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:55:03.135710: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:55:03.135755: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:55:03.135804: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:55:03.135896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.135925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.135947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.135969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.135993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136082: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136139: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136187: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136238: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136277: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136345: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136399: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:03.136790: Inverter 0 count register writes 0
2026-08-16 15:55:03.153857: 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-16 15:55:03.154033: Recompute is saving previous plan...
2026-08-16 15:55:03.155163: Best charge window [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ]
2026-08-16 15:55:03.155214: Best export window [  ]
2026-08-16 15:55:03.156092: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 15:55:03.159269: Load divergence over 8.0 hours mean 551.74W, min 330.0W, max 1048.2W, std dev 213.04W, divergence 19.31%
2026-08-16 15:55:03.174086: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 15:55:03.174213: LoadML is_calculating False
2026-08-16 15:55:03.174281: Creating pool of 12 processes to match your CPU count
2026-08-16 15:55:03.254636: 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(0.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-16 15:55:03.255633: Optimise levels pass started at 2026-08-16 15:55:03
2026-08-16 15:55:03.255690: Optimise all windows, total charge 31 export 1
2026-08-16 15:55:03.926441: >> Region optimisation pass width 960 gives best_metric 469.97p, best_cost 473.03p, best_cycle 37.08kWh, best_import 23.52kWh
2026-08-16 15:55:04.100530: >> Region optimisation pass width 480 gives best_metric 469.97p, best_cost 473.03p, best_cycle 37.08kWh, best_import 23.52kWh
2026-08-16 15:55:04.660845: >> Region optimisation pass width 240 gives best_metric 467.2p, best_cost 473.04p, best_cycle 37.09kWh, best_import 23.52kWh
2026-08-16 15:55:05.377147: >> Region optimisation pass width 120 gives best_metric 467.2p, best_cost 473.04p, best_cycle 37.09kWh, best_import 23.52kWh
2026-08-16 15:55:05.377399: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 19
2026-08-16 15:55:05.377462: Optimise levels pass ended at 2026-08-16 15:55:05, duration 2.1 seconds tried 105 combinations
2026-08-16 15:55:05.377519: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 467.2p, best_keep 0kWh, best_cycle 37.09kWh, best_carbon 0kg, best_import 23.52kWh
2026-08-16 15:55:05.393755: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 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]kWh and export limits []kWh
2026-08-16 15:55:08.708439: Tweak plan optimisation started metric 371.47p, cost 381.99p
2026-08-16 15:55:09.064150: Tweak optimisation finished metric 371.47p, cost 381.99p, metric_keep 0kWh, cycle 23.36kWh, carbon 0kg, import 12.14kWh, changed 8 window(s)
2026-08-16 15:55:09.089798: Swap charge optimisation started metric 371.47p, cost 381.99p, min_improvement_swap 0.1p
2026-08-16 15:55:10.519966: Swap charge optimisation finished metric 371.47p, cost 381.99p
2026-08-16 15:55:10.685108: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 370.33p -> 370.16p, plan now metric 372.84p, cost 378.97p, cycle 23.87kWh, import 11.76kWh
2026-08-16 15:55:10.696825: Raw charge windows [ 16-08 15:30:00 - 16-08 16:00:00 @ 8.0p 0%, 16-08 17:30:00 - 16-08 18:00:00 @ 8.0p 0%, 16-08 19:00:00 - 16-08 19:30:00 @ 8.0p 0%, 16-08 22:00:00 - 16-08 22:30:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 8.0p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 15:55:10.697406: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:55:10.697771: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:55:10.698198: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 15:55:10.742186: Previous plan best metric is 371.48 (cost 382.04) and new plan best metric is 371.47 (cost 381.99)
2026-08-16 15:55:10.742459: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 15:55:10.742606: Plan valid is now true after recompute was False
2026-08-16 15:55:10.775485: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 679.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:40:00, load 28.04kWh, PV 0.0kWh
2026-08-16 15:55:10.890961: Battery has 14.75 hours left - now at 11.36kWh
2026-08-16 15:55:10.936151: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 720.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:45:00, load 29.0kWh, PV 0.0kWh
2026-08-16 15:55:11.015307: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.0kWh, PV 0.0kWh
2026-08-16 15:55:11.087817: predict best end_record 08-17 23:30:00, final soc 1.23kWh, metric 425.12p, metric_keep 0kWh, min_soc 1.23kWh @ 08-17 23:25:00, load 28.04kWh, PV 0.0kWh
2026-08-16 15:55:11.087905: Saving plan best values to HA entities
2026-08-16 15:55:11.239199: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 15:55:11.245126: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 15:55:11.250863: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 11.67kWh, house 0.04kWh, export 0.0kWh, metric 425.12p, metric10 444.01p
2026-08-16 15:55:11.326093: Marginal costs baseline metric (no standing charge): 378.4887
2026-08-16 15:55:11.578156: Marginal energy costs matrix computed: min=8.0 max=20.61
2026-08-16 15:55:11.649893: Rate array import [{'start': 955, 'end': 960, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 960, 'end': 1050, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1050, 'end': 1080, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1080, 'end': 1140, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1140, 'end': 1170, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1170, 'end': 1320, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1320, 'end': 1350, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1800, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1800, 'end': 1860, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1860, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 955, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 15:55:11.650821: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 15:55:11.650886: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 1 and a half hours.
2026-08-16 15:55:11.650939: - The battery is currently at 71% and is in eco mode for the next 7 and a half hours.
2026-08-16 15:55:11.650958: - For the next 48 hours there will be no solar generation.
2026-08-16 15:55:11.650976: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 15:55:11.650998: - Your car is currently charging.
2026-08-16 15:55:11.651016: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-16 15:55:11.651033: 
2026-08-16 15:55:11.704282: Plan calculation took 8.55 seconds
2026-08-16 15:55:11.704651: Inverter 0: Type SK Sunsynk
2026-08-16 15:55:11.704699: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 15:55:11.704920: Reserve min: 7%, battery_min: 7%
2026-08-16 15:55:11.705082: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 15:55:11.705429: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -410W, load power 410W, PV Power 0W
2026-08-16 15:55:11.705677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:55:11.705784: Inverter 0 scheduled charge enable is False
2026-08-16 15:55:11.705821: Inverter 0 charge windows currently []
2026-08-16 15:55:11.705860: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 15:55:11.706031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:55:11.706082: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:55:11.706122: Inverter 0 scheduled discharge enable is False
2026-08-16 15:55:11.706255: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:55:11.706293: Inverter 0 discharge windows currently []
2026-08-16 15:55:11.706316: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:55:11.706352: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:55:11.706380: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:55:11.769556: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 15:55:11.769755: Inverter 0 disabled charge window while waiting for schedule (now 08-16 15:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 15:55:11.769845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:55:11.770043: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:55:11.770127: No export window planned
2026-08-16 15:55:11.770239: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 15:55:11.770274: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 15:55:11.770558: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 15:55:11.770731: Car charging from battery is off, next slot for car 0 is 08-16 15:55:00 - 08-16 16:00:00
2026-08-16 15:55:11.770816: Disabling battery discharge whilst car 0 is charging
2026-08-16 15:55:11.770990: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 15:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 15:55:11.771077: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 15:55:11.771176: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 15:55:11.771378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771830: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771900: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.771965: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772028: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772093: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772155: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772208: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 15:55:11.772733: Inverter 0 count register writes 0
2026-08-16 15:55:11.799717: Total inverter register writes now 839
2026-08-16 15:55:11.841164: Info: Completed run status Hold for car
2026-08-16 15:55:11.849130: Info: record_status Hold for car
2026-08-16 15:55:11.858113: Saved current settings to /config/predbat_config.json
2026-08-16 15:55:11.858483: Compare, best tariff: current metric 318.25p
2026-08-16 15:55:48.969037: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:55:48.969380: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:55:48.969460: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:55:48.969703: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:55:48.969770: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:55:48.969813: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:55:48.969848: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 15:57:49.219704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 15:57:49.219969: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 15:57:49.220019: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 15:57:49.220177: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 15:57:49.220244: Note: Inverter does not support discharge freeze - disabled
2026-08-16 15:57:49.220278: Note: Inverter does not support charge freeze - disabled
2026-08-16 15:57:49.220307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:00:00.468300: --------------- PredBat - update at 2026-08-16 16:00:00+01:00 with clock skew 0 minutes, minutes now 960
2026-08-16 16:00:00.469406: Saved current settings to /config/predbat_config.json
2026-08-16 16:00:00.469589: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 16:00:00.469747: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:00:00.469852: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:00:00.492077: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:00:00.492204: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:00:00.492465: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:00:00.493197: Cars 1 charging from battery False 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-16 16:00:00.493368: Predbat mode is set to Control charge & discharge
2026-08-16 16:00:00.701188: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:00:00.701356: Using load_power data to fill gaps in load_today data
2026-08-16 16:00:01.711691: Processing 721 30-minute periods for power integration
2026-08-16 16:00:01.887450: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:00:01.887592: Car charging hold False, threshold 6.0kWh
2026-08-16 16:00:01.887647: Current data so far today: load 8.03kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:00:01.902810: Cars: SoC: [27.542]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:00:01.903517: Standing charge is set to 46.63p
2026-08-16 16:00:01.989879: 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-16 16:00:01.990178: 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-16 16:00:01.990428: 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-16 16:00:01.990666: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.990882: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991074: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991175: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991263: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991346: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991429: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991511: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991628: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991711: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991902: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:00:01.991963: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:00:01.998084: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:00:01.998479: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:00:02.049602: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:00:02.049762: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:00:02.052210: High export rate found rates in range 99p to -99p
2026-08-16 16:00:02.082834: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:00:02.083041: Car 0 plan charging from 27.542kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:00:02.098937: Battery level now 11.36kWh, -1hr ago 11.52kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -5.83p, rate_forward 6.87p
2026-08-16 16:00:02.099401: Last hour: net energy 0.34kWh, import 0.34kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.7p, import 2.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:00:02.170256: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:00:02.170439: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:00:02.256588: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:00:02.286227: Today's load divergence 86.62%, in-day adjustment 85.85%, damping 0.95x, yesterday 82.97% today 87.29% blend 33.33%
2026-08-16 16:00:02.286333: Today's predicted so far 9.86kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 9.86kWh forecast extra.
2026-08-16 16:00:02.286361: Today's actual load so far 8.04kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 16:00:02.328598: 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:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T19:00:00+01:00', 'end': '2026-08-16T19:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-16T22:00:00+01:00', 'end': '2026-08-16T22:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -7.4, '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-17T06:00:00+01:00', 'end': '2026-08-17T07: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': -1.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.7, 'source': 'SMART'}, {'start': '2026-08-17T00:00:00+01:00', 'end': '2026-08-17T00:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.6335, 'source': 'SMART'}]]
2026-08-16 16:00:02.329361: Sensor changes require a replan, will recompute the plan
2026-08-16 16:00:02.329558: Inverter 0: Type SK Sunsynk
2026-08-16 16:00:02.329600: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:00:02.329801: Reserve min: 7%, battery_min: 7%
2026-08-16 16:00:02.329875: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:00:02.330147: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -398W, load power 398W, PV Power 0W
2026-08-16 16:00:02.330351: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:00:02.330463: Inverter 0 scheduled charge enable is False
2026-08-16 16:00:02.330499: Inverter 0 charge windows currently []
2026-08-16 16:00:02.330527: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:00:02.330647: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:00:02.330683: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:00:02.330720: Inverter 0 scheduled discharge enable is False
2026-08-16 16:00:02.330903: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:00:02.330964: Inverter 0 discharge windows currently []
2026-08-16 16:00:02.331016: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:00:02.331057: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:00:02.331092: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:00:02.404556: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:00:02.404662: Will recompute the plan as it is invalid
2026-08-16 16:00:02.404774: Recompute is saving previous plan...
2026-08-16 16:00:02.405776: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:00:02.405838: Best export window [  ]
2026-08-16 16:00:02.406694: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:00:02.409864: Load divergence over 8.0 hours mean 549.11W, min 322.8W, max 1100.4W, std dev 214.65W, divergence 19.55%
2026-08-16 16:00:02.429196: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:00:02.429334: LoadML is_calculating False
2026-08-16 16:00:02.429407: Creating pool of 12 processes to match your CPU count
2026-08-16 16:00:02.519500: 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(0.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-16 16:00:02.520453: Optimise levels pass started at 2026-08-16 16:00:02
2026-08-16 16:00:02.520510: Optimise all windows, total charge 25 export 1
2026-08-16 16:00:03.151022: >> Region optimisation pass width 960 gives best_metric 471.23p, best_cost 473.91p, best_cycle 37.16kWh, best_import 23.53kWh
2026-08-16 16:00:03.567216: >> Region optimisation pass width 480 gives best_metric 471.23p, best_cost 473.91p, best_cycle 37.16kWh, best_import 23.53kWh
2026-08-16 16:00:04.128061: >> Region optimisation pass width 240 gives best_metric 468.46p, best_cost 473.92p, best_cycle 37.16kWh, best_import 23.53kWh
2026-08-16 16:00:04.856513: >> Region optimisation pass width 120 gives best_metric 468.46p, best_cost 473.92p, best_cycle 37.16kWh, best_import 23.53kWh
2026-08-16 16:00:04.856780: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 16:00:04.856863: Optimise levels pass ended at 2026-08-16 16:00:04, duration 2.3 seconds tried 81 combinations
2026-08-16 16:00:04.856933: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 468.46p, best_keep 0kWh, best_cycle 37.16kWh, best_carbon 0kg, best_import 23.53kWh
2026-08-16 16:00:04.877148: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 16:00:08.096027: Tweak plan optimisation started metric 372.28p, cost 382.85p
2026-08-16 16:00:08.499319: Tweak optimisation finished metric 372.28p, cost 382.85p, metric_keep 0kWh, cycle 23.39kWh, carbon 0kg, import 12.15kWh, changed 8 window(s)
2026-08-16 16:00:08.520455: Swap charge optimisation started metric 372.28p, cost 382.85p, min_improvement_swap 0.1p
2026-08-16 16:00:09.309927: Swap charge optimisation finished metric 372.28p, cost 382.85p
2026-08-16 16:00:09.472779: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.14p -> 370.87p, plan now metric 373.8p, cost 379.35p, cycle 23.85kWh, import 11.71kWh
2026-08-16 16:00:09.484276: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 16:00:09.486272: Unclipped charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:00:09.486711: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:00:09.486955: Filtered charge windows [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:00:09.529989: Previous plan best metric is 372.28 (cost 382.85) and new plan best metric is 372.28 (cost 382.85)
2026-08-16 16:00:09.530296: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:00:09.530548: Plan valid is now true after recompute was False
2026-08-16 16:00:09.565237: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 684.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.17kWh, PV 0.0kWh
2026-08-16 16:00:09.728872: Battery has 14.58 hours left - now at 11.36kWh
2026-08-16 16:00:09.779698: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 722.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 05:40:00, load 29.13kWh, PV 0.0kWh
2026-08-16 16:00:09.863732: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.13kWh, PV 0.0kWh
2026-08-16 16:00:09.956821: predict best end_record 08-17 23:30:00, final soc 1.23kWh, metric 425.98p, metric_keep 0kWh, min_soc 1.23kWh @ 08-17 23:25:00, load 28.17kWh, PV 0.0kWh
2026-08-16 16:00:09.956920: Saving plan best values to HA entities
2026-08-16 16:00:10.159801: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:00:10.166366: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:00:10.173087: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 11.71kWh, house 0.0kWh, export 0.0kWh, metric 425.98p, metric10 444.7p
2026-08-16 16:00:10.267154: Marginal costs baseline metric (no standing charge): 379.3472
2026-08-16 16:00:10.594466: Marginal energy costs matrix computed: min=8.0 max=21.54
2026-08-16 16:00:10.737748: Rate array import [{'start': 960, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 960, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:00:10.738343: - Your estimated bill for today is £3.10 and tomorrow is £1.41
2026-08-16 16:00:10.738392: - Import rates are very expensive (33.8p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:00:10.738412: - The battery is currently at 71% and is in eco mode for the next 7 and a half hours.
2026-08-16 16:00:10.738427: - For the next 48 hours there will be no solar generation.
2026-08-16 16:00:10.738441: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 16:00:10.738459: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-16 16:00:10.738474: 
2026-08-16 16:00:10.836120: Plan calculation took 8.43 seconds
2026-08-16 16:00:10.841467: Saved plan to storage
2026-08-16 16:00:10.846570: No high rate period found
2026-08-16 16:00:10.913204: Import threshold used for optimisation was 8.0p
2026-08-16 16:00:10.970547: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:00:10.977679: Inverter 0: Type SK Sunsynk
2026-08-16 16:00:10.977784: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:00:10.977985: Reserve min: 7%, battery_min: 7%
2026-08-16 16:00:10.978055: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:00:10.978327: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -398W, load power 398W, PV Power 0W
2026-08-16 16:00:10.978528: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:00:10.978616: Inverter 0 scheduled charge enable is False
2026-08-16 16:00:10.978642: Inverter 0 charge windows currently []
2026-08-16 16:00:10.978674: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:00:10.978791: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:00:10.978829: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:00:10.978890: Inverter 0 scheduled discharge enable is False
2026-08-16 16:00:10.979080: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:00:10.979143: Inverter 0 discharge windows currently []
2026-08-16 16:00:10.979177: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:00:10.979194: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:00:10.979215: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:00:11.036568: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:00:11.036726: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:00:11.036847: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:00:11.037146: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:00:11.037255: No export window planned
2026-08-16 16:00:11.037423: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:00:11.037467: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:00:11.037669: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:00:11.037833: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-16 16:00:16.045489: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-16 16:00:21.146636: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-16 16:00:21.147001: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:00:21.147102: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:00:21.147194: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:00:21.147350: 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-16 16:00:21.220220: 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-16 16:00:21.224178: 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-16 16:00:21.268247: 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-16 16:00:21.279532: 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-16 16:00:21.313398: 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-16 16:00:21.361733: 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-16 16:00:21.372056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:00:21.372513: Inverter 0 count register writes 1
2026-08-16 16:00:21.399530: Total inverter register writes now 840
2026-08-16 16:00:21.437428: Info: Completed run status Demand
2026-08-16 16:00:21.763287: Info: record_status Demand
2026-08-16 16:00:21.773273: Saved current settings to /config/predbat_config.json
2026-08-16 16:00:21.773699: Compare, best tariff: current metric 318.25p
2026-08-16 16:01:03.917632: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:01:03.918030: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:01:03.918098: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:01:03.918329: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:01:03.918392: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:01:03.918437: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:01:03.918472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:03:04.152928: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:03:04.153284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:03:04.153327: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:03:04.153489: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:03:04.153529: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:03:04.153550: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:03:04.153569: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:05:00.371237: --------------- PredBat - update at 2026-08-16 16:05:00+01:00 with clock skew 0 minutes, minutes now 965
2026-08-16 16:05:00.372271: Saved current settings to /config/predbat_config.json
2026-08-16 16:05:00.372441: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 16:05:00.372544: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:05:00.372668: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:05:00.391640: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:05:00.391780: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:05:00.391978: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:05:00.392589: Cars 1 charging from battery False 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-16 16:05:00.392731: Predbat mode is set to Control charge & discharge
2026-08-16 16:05:00.603010: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:05:00.603167: Using load_power data to fill gaps in load_today data
2026-08-16 16:05:01.550809: Processing 721 30-minute periods for power integration
2026-08-16 16:05:01.788738: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:05:01.788920: Car charging hold False, threshold 6.0kWh
2026-08-16 16:05:01.789007: Current data so far today: load 8.05kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:05:01.820307: Cars: SoC: [27.542]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:05:01.821478: Standing charge is set to 46.63p
2026-08-16 16:05:01.911568: 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-16 16:05:01.912143: 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-16 16:05:01.912346: 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-16 16:05:01.912540: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.912723: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.912904: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913046: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913159: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913241: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913312: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913394: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913474: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913555: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913725: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:05:01.913784: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:05:01.919396: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:05:01.919846: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:05:01.964914: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:05:01.965085: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:05:01.966574: High export rate found rates in range 99p to -99p
2026-08-16 16:05:02.000918: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:05:02.001313: Car 0 plan charging from 27.542kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:05:02.002151: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1680, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1680, 'end': 1685, 'kwh': 0.459, 'average': 8.0, 'cost': 3.67, 'octopus': False}]
2026-08-16 16:05:02.018985: Battery level now 11.36kWh, -1hr ago 11.4kWh, at midnight 12.21kWh, battery value change in the last hour -0.27p, change today -5.83p, rate_forward 6.87p
2026-08-16 16:05:02.019458: Last hour: net energy 0.33kWh, import 0.33kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.6p, import 2.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:05:02.084222: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:05:02.084381: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:05:02.178339: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:05:02.207559: Today's load divergence 86.51%, in-day adjustment 85.8%, damping 0.95x, yesterday 82.97% today 87.19% blend 32.99%
2026-08-16 16:05:02.207698: Today's predicted so far 9.97kWh with 0.0kWh car/iBoost excluded, 6.11kWh import ignored, and 9.97kWh forecast extra.
2026-08-16 16:05:02.207731: Today's actual load so far 8.13kWh with 0.0kWh car/iBoost excluded, and 6.11kWh import ignored.
2026-08-16 16:05:02.251254: Inverter 0: Type SK Sunsynk
2026-08-16 16:05:02.251349: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:05:02.251550: Reserve min: 7%, battery_min: 7%
2026-08-16 16:05:02.251622: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:05:02.251876: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 304W, current battery voltage 51.2V, grid power -55W, load power 370W, PV Power 0W
2026-08-16 16:05:02.252041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:05:02.252156: Inverter 0 scheduled charge enable is False
2026-08-16 16:05:02.252193: Inverter 0 charge windows currently []
2026-08-16 16:05:02.252220: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:05:02.252349: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:05:02.252385: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:05:02.252452: Inverter 0 scheduled discharge enable is False
2026-08-16 16:05:02.252591: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:05:02.252628: Inverter 0 discharge windows currently []
2026-08-16 16:05:02.252651: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:05:02.252670: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:05:02.252688: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:05:02.321732: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:05:02.321845: Plan was last updated on 2026-08-16 16:00:00+01:00 and is now 5.0 minutes old
2026-08-16 16:05:02.322033: Best charge window [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:05:02.322099: Best export window [  ]
2026-08-16 16:05:02.322919: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:05:02.326217: Load divergence over 8.0 hours mean 547.01W, min 318.6W, max 1131.0W, std dev 219.71W, divergence 20.08%
2026-08-16 16:05:02.344691: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:05:02.344813: LoadML is_calculating False
2026-08-16 16:05:02.344880: Creating pool of 12 processes to match your CPU count
2026-08-16 16:05:02.467230: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 588.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 28.26kWh, PV 0.0kWh
2026-08-16 16:05:02.648374: Battery has 21.08 hours left - now at 11.36kWh
2026-08-16 16:05:02.702932: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 615.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 29.22kWh, PV 0.0kWh
2026-08-16 16:05:02.793101: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.22kWh, PV 0.0kWh
2026-08-16 16:05:02.903876: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 430.12p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 16:05:02.904002: Saving plan best values to HA entities
2026-08-16 16:05:03.095967: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:05:03.103221: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:05:03.109294: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 12.23kWh, house 0.0kWh, export 0.0kWh, metric 430.12p, metric10 447.57p
2026-08-16 16:05:03.197700: Marginal costs baseline metric (no standing charge): 383.4839
2026-08-16 16:05:03.541597: Marginal energy costs matrix computed: min=8.0 max=21.8
2026-08-16 16:05:03.623026: Rate array import [{'start': 965, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 16:05:03.623783: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 16:05:03.623831: - Import rates are very expensive (33.8p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:05:03.623854: - The battery is currently at 71% and is in eco mode for the next 7 and a half hours.
2026-08-16 16:05:03.623873: - For the next 48 hours there will be no solar generation.
2026-08-16 16:05:03.623916: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 16:05:03.623936: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p) and your car will be charged with 11.1 kWh.
2026-08-16 16:05:03.623954: 
2026-08-16 16:05:03.684977: Plan calculation took 1.36 seconds
2026-08-16 16:05:03.690220: No high rate period found
2026-08-16 16:05:03.761610: Import threshold used for optimisation was 8.0p
2026-08-16 16:05:03.828296: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:05:03.835808: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:05:03.835964: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:05:03.836158: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:05:03.836488: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:05:03.836590: No export window planned
2026-08-16 16:05:03.836703: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:05:03.836741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:05:03.836927: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:05:03.837229: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:05:03.837301: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:05:03.837377: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:05:03.837468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837535: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837587: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:05:03.837967: Inverter 0 count register writes 0
2026-08-16 16:05:03.859032: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 16:05:03.867035: Total inverter register writes now 840
2026-08-16 16:05:03.915337: Info: Completed run status Demand
2026-08-16 16:05:03.926037: Info: record_status Demand
2026-08-16 16:05:03.938390: Saved current settings to /config/predbat_config.json
2026-08-16 16:05:03.938786: Compare, best tariff: current metric 318.25p
2026-08-16 16:05:34.051380: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:05:34.051629: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:05:34.051679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:05:34.051857: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:05:34.051921: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:05:34.051958: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:05:34.051999: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:07:34.278837: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:07:34.279140: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:07:34.279220: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:07:34.279516: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:07:34.279583: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:07:34.279609: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:07:34.279628: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:09:48.525696: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:09:48.525955: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:09:48.525991: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:09:48.526148: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:09:48.526210: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:09:48.526235: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:09:48.526264: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:10:00.616512: --------------- PredBat - update at 2026-08-16 16:10:00+01:00 with clock skew 0 minutes, minutes now 970
2026-08-16 16:10:00.617399: Saved current settings to /config/predbat_config.json
2026-08-16 16:10:00.617553: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 16:10:00.617648: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:10:00.617809: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:10:00.639196: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:10:00.639343: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:10:00.639493: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:10:00.639959: Cars 1 charging from battery False 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-16 16:10:00.640062: Predbat mode is set to Control charge & discharge
2026-08-16 16:10:00.821306: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:10:00.821497: Using load_power data to fill gaps in load_today data
2026-08-16 16:10:01.529458: Processing 721 30-minute periods for power integration
2026-08-16 16:10:01.687342: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:10:01.687489: Car charging hold False, threshold 6.0kWh
2026-08-16 16:10:01.687550: Current data so far today: load 8.15kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:10:01.702935: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:10:01.703759: Standing charge is set to 46.63p
2026-08-16 16:10:01.803048: 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-16 16:10:01.803579: 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-16 16:10:01.803781: 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-16 16:10:01.804013: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804201: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804403: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804500: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804582: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804657: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804738: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804813: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.804919: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.805077: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.805257: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:10:01.805355: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:10:01.811304: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:10:01.812064: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:10:01.861233: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:10:01.861415: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:10:01.863036: High export rate found rates in range 99p to -99p
2026-08-16 16:10:01.896545: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:10:01.896790: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:10:01.897500: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1675, 'kwh': 2.885, 'average': 8.0, 'cost': 23.08, 'octopus': False}]
2026-08-16 16:10:01.916576: Battery level now 11.36kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.83p, rate_forward 6.87p
2026-08-16 16:10:01.916893: Last hour: net energy 0.31kWh, import 0.31kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 2.5p, import 2.5p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:10:01.983860: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:10:01.984017: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:10:02.077477: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:10:02.101796: Today's load divergence 87.05%, in-day adjustment 86.16%, damping 0.95x, yesterday 82.97% today 87.7% blend 32.64%
2026-08-16 16:10:02.101887: Today's predicted so far 9.95kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 9.95kWh forecast extra.
2026-08-16 16:10:02.101914: Today's actual load so far 8.18kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 16:10:02.135396: Inverter 0: Type SK Sunsynk
2026-08-16 16:10:02.135483: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:10:02.135663: Reserve min: 7%, battery_min: 7%
2026-08-16 16:10:02.135729: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:10:02.135951: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 306W, current battery voltage 51.2V, grid power -55W, load power 372W, PV Power 0W
2026-08-16 16:10:02.136085: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:10:02.136152: Inverter 0 scheduled charge enable is False
2026-08-16 16:10:02.136192: Inverter 0 charge windows currently []
2026-08-16 16:10:02.136227: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:10:02.136316: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:10:02.136363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:10:02.136395: Inverter 0 scheduled discharge enable is False
2026-08-16 16:10:02.136525: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:10:02.136556: Inverter 0 discharge windows currently []
2026-08-16 16:10:02.136574: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:10:02.136589: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:10:02.136603: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:10:02.191275: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:10:02.191438: Plan was last updated on 2026-08-16 16:00:00+01:00 and is now 10.0 minutes old
2026-08-16 16:10:02.191629: Best charge window [ 16-08 23:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:10:02.191669: Best export window [  ]
2026-08-16 16:10:02.192272: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:10:02.194785: Load divergence over 8.0 hours mean 552.51W, min 315.0W, max 1105.2W, std dev 218.79W, divergence 19.8%
2026-08-16 16:10:02.210802: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:10:02.210947: LoadML is_calculating False
2026-08-16 16:10:02.211006: Creating pool of 12 processes to match your CPU count
2026-08-16 16:10:02.319399: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 591.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 28.46kWh, PV 0.0kWh
2026-08-16 16:10:02.440456: Battery has 20.83 hours left - now at 11.36kWh
2026-08-16 16:10:02.480381: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 618.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 29.43kWh, PV 0.0kWh
2026-08-16 16:10:02.551738: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:05:00, load 29.43kWh, PV 0.0kWh
2026-08-16 16:10:02.629180: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 434.26p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.46kWh, PV 0.0kWh
2026-08-16 16:10:02.629267: Saving plan best values to HA entities
2026-08-16 16:10:02.802217: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:10:02.808195: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:10:02.814152: Best charging limit SoC's [16.0, 13.75, 16.0]kWh, export []kWh gives import battery 12.75kWh, house 0.0kWh, export 0.0kWh, metric 434.26p, metric10 451.38p
2026-08-16 16:10:02.899681: Marginal costs baseline metric (no standing charge): 387.6228
2026-08-16 16:10:03.200923: Marginal energy costs matrix computed: min=8.0 max=23.97
2026-08-16 16:10:03.273246: Rate array import [{'start': 970, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 16:10:03.273880: - Your estimated bill for today is £3.09 and tomorrow is £1.41
2026-08-16 16:10:03.273920: - Import rates are very expensive (33.8p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:10:03.273939: - The battery is currently at 71% and is in eco mode for the next 7 and a quarter hours.
2026-08-16 16:10:03.273954: - For the next 48 hours there will be no solar generation.
2026-08-16 16:10:03.273969: - You will reach a minimum of 8% battery in 31 hours.
2026-08-16 16:10:03.273986: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p) and your car will be charged with 11.1 kWh.
2026-08-16 16:10:03.274000: 
2026-08-16 16:10:03.334040: Plan calculation took 1.14 seconds
2026-08-16 16:10:03.337840: No high rate period found
2026-08-16 16:10:03.392520: Import threshold used for optimisation was 8.0p
2026-08-16 16:10:03.450518: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:10:03.456409: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:10:03.456587: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:10:03.456741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:10:03.457074: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:10:03.457187: No export window planned
2026-08-16 16:10:03.457354: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:10:03.457395: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:10:03.457556: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:10:03.457814: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:10:03.457891: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:10:03.457962: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:10:03.458063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458361: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:03.458566: Inverter 0 count register writes 0
2026-08-16 16:10:03.476633: 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-16 16:10:03.476803: Recompute is saving previous plan...
2026-08-16 16:10:03.477828: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:10:03.477888: Best export window [  ]
2026-08-16 16:10:03.478754: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:10:03.481989: Load divergence over 8.0 hours mean 552.51W, min 315.0W, max 1105.2W, std dev 218.79W, divergence 19.8%
2026-08-16 16:10:03.500287: Calculating data from yesterday for savings calculation
2026-08-16 16:10:03.513016: 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-16 16:10:03.559729: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 16:10:03.575478: predict yesterday10 end_record 08-17 00:00:00, final soc 10.18kWh, metric 233.44p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 16:10:03.596761: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 16:10:03.627191: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.77kWh, export 0.0kWh, battery_cycle 25.27kWh, start_soc 1.12kWh,  final_soc 10.56kWh and battery_value 72.6kWh
2026-08-16 16:10:03.705172: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.95p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 16:10:03.705351: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.52kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 16:10:03.716533: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:10:03.716657: LoadML is_calculating False
2026-08-16 16:10:03.716728: Creating pool of 12 processes to match your CPU count
2026-08-16 16:10:03.804071: 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(0.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-16 16:10:03.804976: Optimise levels pass started at 2026-08-16 16:10:03
2026-08-16 16:10:03.805043: Optimise all windows, total charge 25 export 1
2026-08-16 16:10:04.536457: >> Region optimisation pass width 960 gives best_metric 468.45p, best_cost 475.51p, best_cycle 37.4kWh, best_import 23.73kWh
2026-08-16 16:10:04.709384: >> Region optimisation pass width 480 gives best_metric 468.45p, best_cost 475.51p, best_cycle 37.4kWh, best_import 23.73kWh
2026-08-16 16:10:05.014351: >> Region optimisation pass width 240 gives best_metric 468.45p, best_cost 475.51p, best_cycle 37.4kWh, best_import 23.73kWh
2026-08-16 16:10:05.641021: >> Region optimisation pass width 120 gives best_metric 468.45p, best_cost 475.51p, best_cycle 37.4kWh, best_import 23.73kWh
2026-08-16 16:10:05.641223: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 16:10:05.641281: Optimise levels pass ended at 2026-08-16 16:10:05, duration 1.8 seconds tried 72 combinations
2026-08-16 16:10:05.641349: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 468.45p, best_keep 0kWh, best_cycle 37.4kWh, best_carbon 0kg, best_import 23.73kWh
2026-08-16 16:10:05.659082: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:10:08.994784: Tweak plan optimisation started metric 401.29p, cost 407.59p
2026-08-16 16:10:09.331805: Tweak optimisation finished metric 401.29p, cost 407.59p, metric_keep 0kWh, cycle 23.84kWh, carbon 0kg, import 15.24kWh, changed 8 window(s)
2026-08-16 16:10:09.355223: Swap charge optimisation started metric 401.29p, cost 407.59p, min_improvement_swap 0.1p
2026-08-16 16:10:10.311819: Swap charge optimisation finished metric 401.29p, cost 407.59p
2026-08-16 16:10:10.389026: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 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 75%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 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 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 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% ] reserve 1.12
2026-08-16 16:10:10.389421: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:10:10.389642: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:10:10.389817: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:10:10.437059: Previous plan best metric is 426.34 (cost 534.82) and new plan best metric is 401.29 (cost 407.59)
2026-08-16 16:10:10.437296: New plan metric is significantly better from previous plan, using new plan
2026-08-16 16:10:10.437360: Plan valid is now true after recompute was False
2026-08-16 16:10:10.469092: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 665.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.94kWh, PV 0.0kWh
2026-08-16 16:10:10.665787: Battery has 20.83 hours left - now at 11.36kWh
2026-08-16 16:10:10.719482: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 694.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.07kWh, PV 0.0kWh
2026-08-16 16:10:10.798159: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 510.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.07kWh, PV 0.0kWh
2026-08-16 16:10:10.878244: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 500.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.94kWh, PV 0.0kWh
2026-08-16 16:10:10.878358: Saving plan best values to HA entities
2026-08-16 16:10:11.063960: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:10:11.070491: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:10:11.076210: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.57kWh, house 6.68kWh, export 0.0kWh, metric 500.86p, metric10 510.17p
2026-08-16 16:10:11.162176: Marginal costs baseline metric (no standing charge): 407.5947
2026-08-16 16:10:11.486006: Marginal energy costs matrix computed: min=8.0 max=25.0
2026-08-16 16:10:11.562749: Rate array import [{'start': 970, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 970, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:10:11.563432: - Your estimated bill for today is £2.89 and tomorrow is £1.40
2026-08-16 16:10:11.563495: - Import rates are very expensive (33.8p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:10:11.563514: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-16 16:10:11.563528: - For the next 48 hours there will be no solar generation.
2026-08-16 16:10:11.563542: - You will run out of battery in 31 hours.
2026-08-16 16:10:11.563556: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p) and your car will be charged with 2.88 kWh.
2026-08-16 16:10:11.563570: 
2026-08-16 16:10:11.614808: Plan calculation took 8.14 seconds
2026-08-16 16:10:11.615135: Inverter 0: Type SK Sunsynk
2026-08-16 16:10:11.615175: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:10:11.615391: Reserve min: 7%, battery_min: 7%
2026-08-16 16:10:11.615460: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:10:11.615717: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 307W, current battery voltage 51.2V, grid power -55W, load power 370W, PV Power 0W
2026-08-16 16:10:11.615927: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:10:11.616015: Inverter 0 scheduled charge enable is False
2026-08-16 16:10:11.616047: Inverter 0 charge windows currently []
2026-08-16 16:10:11.616073: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:10:11.616164: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:10:11.616198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:10:11.616228: Inverter 0 scheduled discharge enable is False
2026-08-16 16:10:11.616394: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:10:11.616429: Inverter 0 discharge windows currently []
2026-08-16 16:10:11.616448: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:10:11.616464: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:10:11.616482: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:10:11.666489: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:10:11.666624: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:10:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:10:11.666685: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:10:11.666840: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:10:11.666913: No export window planned
2026-08-16 16:10:11.667005: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:10:11.667035: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:10:11.667149: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:10:11.667292: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:10:11.667348: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:10:11.667426: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:10:11.667497: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667526: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667549: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667577: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:10:11.667845: Inverter 0 count register writes 0
2026-08-16 16:10:11.686768: Total inverter register writes now 840
2026-08-16 16:10:11.717946: Info: Completed run status Demand
2026-08-16 16:10:11.724176: Info: record_status Demand
2026-08-16 16:10:11.731397: Saved current settings to /config/predbat_config.json
2026-08-16 16:10:11.731783: Compare, best tariff: current metric 318.25p
2026-08-16 16:10:48.844318: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:10:48.844584: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:10:48.844625: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:10:48.844736: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:10:48.844799: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:10:48.844816: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:10:48.844830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:12:49.064924: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:12:49.065235: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:12:49.065279: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:12:49.065417: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:12:49.065457: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:12:49.065500: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:12:49.065521: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:14:06.754722: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 16:14:06.909594: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 16:14:07.702250: Info: HAHistory: Pruning history data started.
2026-08-16 16:14:07.705464: Info: HAHistory: Pruning history data completed.
2026-08-16 16:14:34.183930: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 16:14:35.069441: Processing 1297 30-minute periods for power integration
2026-08-16 16:14:35.151807: ML Component: Car charging hold False, car energy reported load False
2026-08-16 16:14:35.231162: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:14:35.308423: ML Temperature data points: 47991
2026-08-16 16:14:35.520535: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 16:14:35.550897: ML Component: Data fetch completed, load data age 58.0 days, 16730 data points
2026-08-16 16:14:35.551018: ML Component: No training needed, model age is 1.21 hours
2026-08-16 16:14:35.551074: ML Component: Generating predictions load data age 58.0 days, 16730 data points
2026-08-16 16:14:35.665385: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0345 max_dow {0: 0.08796249999813735, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 16:14:42.231574: ML Component: Generated 576 predictions (total 27.04 kWh over 48h)
2026-08-16 16:14:42.272758: ML Component: Prediction cycle completed
2026-08-16 16:14:42.379808: ML Component: Saved 16730 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 16:14:49.324305: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:14:49.324512: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:14:49.324548: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:14:49.324712: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:14:49.324747: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:14:49.324765: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:14:49.324780: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:15:00.411750: --------------- PredBat - update at 2026-08-16 16:15:00+01:00 with clock skew 0 minutes, minutes now 975
2026-08-16 16:15:00.412418: Saved current settings to /config/predbat_config.json
2026-08-16 16:15:00.412552: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 16:15:00.412704: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:15:00.412836: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:15:00.430191: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:15:00.430304: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:15:00.430473: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:15:00.430947: Cars 1 charging from battery False 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-16 16:15:00.431050: Predbat mode is set to Control charge & discharge
2026-08-16 16:15:00.603498: Found 21602 load_today datapoints going back 27 days
2026-08-16 16:15:00.603673: Using load_power data to fill gaps in load_today data
2026-08-16 16:15:01.274374: Processing 721 30-minute periods for power integration
2026-08-16 16:15:01.439924: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:15:01.440079: Car charging hold False, threshold 6.0kWh
2026-08-16 16:15:01.440127: Current data so far today: load 8.2kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:15:01.458617: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:15:01.459433: Standing charge is set to 46.63p
2026-08-16 16:15:01.543478: 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-16 16:15:01.543755: 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-16 16:15:01.543944: 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-16 16:15:01.544128: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544308: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544487: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544594: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544673: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544752: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544821: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.544899: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.545041: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.545140: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.545324: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:15:01.545384: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:15:01.550094: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:15:01.550405: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:15:01.584696: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:15:01.584813: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:15:01.586007: High export rate found rates in range 99p to -99p
2026-08-16 16:15:01.613306: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:15:01.613553: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:15:01.614125: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1675, 'kwh': 2.885, 'average': 8.0, 'cost': 23.08, 'octopus': False}]
2026-08-16 16:15:01.629169: Battery level now 11.36kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.83p, rate_forward 6.87p
2026-08-16 16:15:01.629610: Last hour: net energy 0.3kWh, import 0.3kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.4p, import 2.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:15:01.686608: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:15:01.686754: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:15:01.761662: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:15:01.786628: Today's load divergence 86.9%, in-day adjustment 86.07%, damping 0.95x, yesterday 82.97% today 87.55% blend 32.29%
2026-08-16 16:15:01.786986: Today's predicted so far 9.94kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 9.94kWh forecast extra.
2026-08-16 16:15:01.787029: Today's actual load so far 8.15kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 16:15:01.820986: Inverter 0: Type SK Sunsynk
2026-08-16 16:15:01.821097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:15:01.821354: Reserve min: 7%, battery_min: 7%
2026-08-16 16:15:01.821470: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:15:01.821836: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 302W, current battery voltage 51.2V, grid power -55W, load power 367W, PV Power 0W
2026-08-16 16:15:01.822071: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:15:01.822205: Inverter 0 scheduled charge enable is False
2026-08-16 16:15:01.822271: Inverter 0 charge windows currently []
2026-08-16 16:15:01.822321: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:15:01.822511: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:15:01.822607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:15:01.822679: Inverter 0 scheduled discharge enable is False
2026-08-16 16:15:01.822899: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:15:01.822954: Inverter 0 discharge windows currently []
2026-08-16 16:15:01.822998: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:15:01.823037: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:15:01.823068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:15:01.882781: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:15:01.882909: Plan was last updated on 2026-08-16 16:10:00+01:00 and is now 5.0 minutes old
2026-08-16 16:15:01.883155: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:15:01.883198: Best export window [  ]
2026-08-16 16:15:01.884066: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:15:01.887425: Load divergence over 8.0 hours mean 559.39W, min 313.2W, max 1075.2W, std dev 220.23W, divergence 19.68%
2026-08-16 16:15:01.906925: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:15:01.907057: LoadML is_calculating False
2026-08-16 16:15:01.907124: Creating pool of 12 processes to match your CPU count
2026-08-16 16:15:02.026316: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 665.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 32.01kWh, PV 0.0kWh
2026-08-16 16:15:02.170184: Battery has 20.83 hours left - now at 11.36kWh
2026-08-16 16:15:02.221233: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 694.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.14kWh, PV 0.0kWh
2026-08-16 16:15:02.301906: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 513.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.14kWh, PV 0.0kWh
2026-08-16 16:15:02.381291: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 504.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 32.01kWh, PV 0.0kWh
2026-08-16 16:15:02.381379: Saving plan best values to HA entities
2026-08-16 16:15:02.582756: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:15:02.588984: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:15:02.594931: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.99kWh, house 6.69kWh, export 0.0kWh, metric 504.36p, metric10 513.1p
2026-08-16 16:15:02.679288: Marginal costs baseline metric (no standing charge): 411.0901
2026-08-16 16:15:03.013297: Marginal energy costs matrix computed: min=8.0 max=24.95
2026-08-16 16:15:03.093870: Rate array import [{'start': 975, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 975, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:15:03.094982: - Your estimated bill for today is £2.90 and tomorrow is £1.40
2026-08-16 16:15:03.095066: - Import rates are very expensive (33.8p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:15:03.095115: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-16 16:15:03.095135: - For the next 48 hours there will be no solar generation.
2026-08-16 16:15:03.095153: - You will run out of battery in 31 hours.
2026-08-16 16:15:03.095171: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p) and your car will be charged with 2.88 kWh.
2026-08-16 16:15:03.095200: 
2026-08-16 16:15:03.155755: Plan calculation took 1.27 seconds
2026-08-16 16:15:03.159673: No high rate period found
2026-08-16 16:15:03.213872: Import threshold used for optimisation was 8.0p
2026-08-16 16:15:03.268924: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:15:03.275537: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:15:03.275712: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:15:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:15:03.275884: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:15:03.276197: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:15:03.276314: No export window planned
2026-08-16 16:15:03.276493: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:15:03.276538: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:15:03.276737: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:15:03.276991: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:15:03.277069: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:15:03.277191: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:15:03.277328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277432: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.277953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.278009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.278067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.278132: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.278194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:15:03.278245: Inverter 0 count register writes 0
2026-08-16 16:15:03.295984: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 16:15:03.302188: Total inverter register writes now 840
2026-08-16 16:15:03.346136: Info: Completed run status Demand
2026-08-16 16:15:03.353529: Info: record_status Demand
2026-08-16 16:15:03.361447: Saved current settings to /config/predbat_config.json
2026-08-16 16:15:03.361854: Compare, best tariff: current metric 318.25p
2026-08-16 16:15:33.468258: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:15:33.468513: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:15:33.468563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:15:33.468780: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:15:33.468826: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:15:33.468848: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:15:33.468866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:17:33.699086: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:17:33.699362: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:17:33.699445: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:17:33.699610: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:17:33.699667: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:17:33.699697: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:17:33.699725: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:19:33.928009: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:19:33.928257: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:19:33.928299: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:19:33.928434: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:19:33.928488: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:19:33.928541: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:19:33.928559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:20:00.043055: --------------- PredBat - update at 2026-08-16 16:20:00+01:00 with clock skew 0 minutes, minutes now 980
2026-08-16 16:20:00.043892: Saved current settings to /config/predbat_config.json
2026-08-16 16:20:00.044064: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 16:20:00.044240: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:20:00.044395: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:20:00.073728: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:20:00.073860: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:20:00.074043: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:20:00.074600: Cars 1 charging from battery False 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-16 16:20:00.074727: Predbat mode is set to Control charge & discharge
2026-08-16 16:20:00.287267: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:20:00.287514: Using load_power data to fill gaps in load_today data
2026-08-16 16:20:01.087857: Processing 721 30-minute periods for power integration
2026-08-16 16:20:01.238385: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:20:01.238530: Car charging hold False, threshold 6.0kWh
2026-08-16 16:20:01.238573: Current data so far today: load 8.1kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:20:01.253607: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:20:01.254645: Standing charge is set to 46.63p
2026-08-16 16:20:01.331559: 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-16 16:20:01.331772: 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-16 16:20:01.331923: 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-16 16:20:01.332098: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332237: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332405: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332489: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332556: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332620: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332685: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332744: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332805: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.332861: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.333043: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:20:01.333095: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:20:01.337422: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:20:01.337714: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:20:01.371986: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:20:01.372086: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:20:01.373262: High export rate found rates in range 99p to -99p
2026-08-16 16:20:01.401278: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:20:01.401496: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:20:01.402015: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1675, 'kwh': 2.885, 'average': 8.0, 'cost': 23.08, 'octopus': False}]
2026-08-16 16:20:01.414231: Battery level now 11.36kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour 0.0p, change today -5.83p, rate_forward 6.87p
2026-08-16 16:20:01.414543: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 2.0p, import 2.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:20:01.466829: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:20:01.467003: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:20:01.541578: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:20:01.564806: Today's load divergence 86.11%, in-day adjustment 85.58%, damping 0.95x, yesterday 82.97% today 86.8% blend 31.94%
2026-08-16 16:20:01.564879: Today's predicted so far 9.95kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 9.95kWh forecast extra.
2026-08-16 16:20:01.564905: Today's actual load so far 8.07kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 16:20:01.597514: Inverter 0: Type SK Sunsynk
2026-08-16 16:20:01.597609: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:20:01.597794: Reserve min: 7%, battery_min: 7%
2026-08-16 16:20:01.597873: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:20:01.598129: Inverter 0 SoC: 11.33kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 305W, current battery voltage 51.2V, grid power -55W, load power 369W, PV Power 0W
2026-08-16 16:20:01.598287: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:20:01.598388: Inverter 0 scheduled charge enable is False
2026-08-16 16:20:01.598424: Inverter 0 charge windows currently []
2026-08-16 16:20:01.598451: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:20:01.598560: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:20:01.598597: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:20:01.598631: Inverter 0 scheduled discharge enable is False
2026-08-16 16:20:01.598753: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:20:01.598789: Inverter 0 discharge windows currently []
2026-08-16 16:20:01.598813: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:20:01.598835: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:20:01.598853: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:20:01.656256: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:20:01.656389: Plan was last updated on 2026-08-16 16:10:00+01:00 and is now 10.0 minutes old
2026-08-16 16:20:01.656644: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:20:01.656696: Best export window [  ]
2026-08-16 16:20:01.657565: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:20:01.660620: Load divergence over 8.0 hours mean 561.88W, min 354.0W, max 1034.4W, std dev 212.62W, divergence 18.92%
2026-08-16 16:20:01.678994: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:20:01.679101: LoadML is_calculating False
2026-08-16 16:20:01.679187: Creating pool of 12 processes to match your CPU count
2026-08-16 16:20:01.810036: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 663.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.89kWh, PV 0.0kWh
2026-08-16 16:20:01.949214: Battery has 20.83 hours left - now at 11.33kWh
2026-08-16 16:20:01.999099: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 692.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 33.02kWh, PV 0.0kWh
2026-08-16 16:20:02.078472: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 515.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.02kWh, PV 0.0kWh
2026-08-16 16:20:02.186377: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 507.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.89kWh, PV 0.0kWh
2026-08-16 16:20:02.186476: Saving plan best values to HA entities
2026-08-16 16:20:02.372799: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:20:02.379143: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:20:02.384897: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.42kWh, house 6.68kWh, export 0.0kWh, metric 507.72p, metric10 515.91p
2026-08-16 16:20:02.468574: Marginal costs baseline metric (no standing charge): 414.452
2026-08-16 16:20:02.795838: Marginal energy costs matrix computed: min=8.0 max=24.8
2026-08-16 16:20:02.887267: Rate array import [{'start': 980, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 980, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:20:02.888249: - Your estimated bill for today is £2.90 and tomorrow is £1.39
2026-08-16 16:20:02.888307: - Import rates are very expensive (33.8p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:20:02.888332: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-16 16:20:02.888351: - For the next 48 hours there will be no solar generation.
2026-08-16 16:20:02.888384: - You will run out of battery in 31 hours.
2026-08-16 16:20:02.888409: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p) and your car will be charged with 2.88 kWh.
2026-08-16 16:20:02.888435: 
2026-08-16 16:20:02.958604: Plan calculation took 1.30 seconds
2026-08-16 16:20:02.962757: No high rate period found
2026-08-16 16:20:03.014422: Import threshold used for optimisation was 8.0p
2026-08-16 16:20:03.065238: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:20:03.071171: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:20:03.071296: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:20:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:20:03.071419: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:20:03.071696: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:20:03.071790: No export window planned
2026-08-16 16:20:03.071882: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:20:03.071941: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:20:03.072057: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:20:03.072231: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:20:03.072324: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:20:03.072429: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:20:03.072510: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072565: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072586: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072609: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:03.072855: Inverter 0 count register writes 0
2026-08-16 16:20:03.089966: 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-16 16:20:03.090155: Recompute is saving previous plan...
2026-08-16 16:20:03.090958: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:20:03.091002: Best export window [  ]
2026-08-16 16:20:03.091708: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:20:03.094295: Load divergence over 8.0 hours mean 561.88W, min 354.0W, max 1034.4W, std dev 212.62W, divergence 18.92%
2026-08-16 16:20:03.109020: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:20:03.109145: LoadML is_calculating False
2026-08-16 16:20:03.109217: Creating pool of 12 processes to match your CPU count
2026-08-16 16:20:03.184123: 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(0.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-16 16:20:03.184966: Optimise levels pass started at 2026-08-16 16:20:03
2026-08-16 16:20:03.185043: Optimise all windows, total charge 25 export 1
2026-08-16 16:20:03.855676: >> Region optimisation pass width 960 gives best_metric 468.25p, best_cost 476.88p, best_cycle 37.56kWh, best_import 23.9kWh
2026-08-16 16:20:04.052274: >> Region optimisation pass width 480 gives best_metric 468.25p, best_cost 476.88p, best_cycle 37.56kWh, best_import 23.9kWh
2026-08-16 16:20:04.348515: >> Region optimisation pass width 240 gives best_metric 468.25p, best_cost 476.88p, best_cycle 37.56kWh, best_import 23.9kWh
2026-08-16 16:20:04.937894: >> Region optimisation pass width 120 gives best_metric 468.25p, best_cost 476.88p, best_cycle 37.56kWh, best_import 23.9kWh
2026-08-16 16:20:04.938164: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 16:20:04.938281: Optimise levels pass ended at 2026-08-16 16:20:04, duration 1.8 seconds tried 72 combinations
2026-08-16 16:20:04.938408: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 468.25p, best_keep 0kWh, best_cycle 37.56kWh, best_carbon 0kg, best_import 23.9kWh
2026-08-16 16:20:04.963794: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:20:08.239072: Tweak plan optimisation started metric 400.62p, cost 406.93p
2026-08-16 16:20:08.588196: Tweak optimisation finished metric 400.62p, cost 406.93p, metric_keep 0kWh, cycle 23.68kWh, carbon 0kg, import 15.16kWh, changed 8 window(s)
2026-08-16 16:20:08.622281: Swap charge optimisation started metric 400.62p, cost 406.93p, min_improvement_swap 0.1p
2026-08-16 16:20:09.573030: Swap charge optimisation finished metric 400.62p, cost 406.93p
2026-08-16 16:20:09.646174: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 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 75%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 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 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 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% ] reserve 1.12
2026-08-16 16:20:09.646635: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:20:09.646860: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:20:09.647034: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:20:09.694588: Previous plan best metric is 400.62 (cost 406.93) and new plan best metric is 400.62 (cost 406.93)
2026-08-16 16:20:09.694814: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:20:09.694923: Plan valid is now true after recompute was False
2026-08-16 16:20:09.728861: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 663.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.78kWh, PV 0.0kWh
2026-08-16 16:20:09.890990: Battery has 20.83 hours left - now at 11.33kWh
2026-08-16 16:20:09.940270: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 691.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 32.91kWh, PV 0.0kWh
2026-08-16 16:20:10.033174: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 509.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.91kWh, PV 0.0kWh
2026-08-16 16:20:10.127512: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 500.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.78kWh, PV 0.0kWh
2026-08-16 16:20:10.127602: Saving plan best values to HA entities
2026-08-16 16:20:10.310088: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:20:10.317933: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:20:10.326350: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.48kWh, house 6.68kWh, export 0.0kWh, metric 500.2p, metric10 509.46p
2026-08-16 16:20:10.494626: Marginal costs baseline metric (no standing charge): 406.9285
2026-08-16 16:20:10.865778: Marginal energy costs matrix computed: min=8.0 max=24.8
2026-08-16 16:20:10.984840: Rate array import [{'start': 980, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 980, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:20:10.985743: - Your estimated bill for today is £2.90 and tomorrow is £1.39
2026-08-16 16:20:10.985808: - Import rates are very expensive (33.8p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:20:10.985834: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-16 16:20:10.985862: - For the next 48 hours there will be no solar generation.
2026-08-16 16:20:10.985906: - You will run out of battery in 31 hours.
2026-08-16 16:20:10.985943: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p) and your car will be charged with 2.88 kWh.
2026-08-16 16:20:10.985977: 
2026-08-16 16:20:11.070363: Plan calculation took 7.98 seconds
2026-08-16 16:20:11.070768: Inverter 0: Type SK Sunsynk
2026-08-16 16:20:11.070832: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:20:11.071129: Reserve min: 7%, battery_min: 7%
2026-08-16 16:20:11.071279: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:20:11.071693: Inverter 0 SoC: 11.33kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 305W, current battery voltage 51.2V, grid power -55W, load power 369W, PV Power 0W
2026-08-16 16:20:11.072009: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:20:11.072168: Inverter 0 scheduled charge enable is False
2026-08-16 16:20:11.072232: Inverter 0 charge windows currently []
2026-08-16 16:20:11.072291: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:20:11.072552: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:20:11.072636: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:20:11.072711: Inverter 0 scheduled discharge enable is False
2026-08-16 16:20:11.073016: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:20:11.073081: Inverter 0 discharge windows currently []
2026-08-16 16:20:11.073126: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:20:11.073163: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:20:11.073207: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:20:11.141908: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:20:11.142088: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:20:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:20:11.142166: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:20:11.142376: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:20:11.142464: No export window planned
2026-08-16 16:20:11.142572: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:20:11.142608: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:20:11.142747: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:20:11.142919: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:20:11.142974: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:20:11.143041: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:20:11.143128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143250: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143304: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:20:11.143744: Inverter 0 count register writes 0
2026-08-16 16:20:11.173292: Total inverter register writes now 840
2026-08-16 16:20:11.218046: Info: Completed run status Demand
2026-08-16 16:20:11.226354: Info: record_status Demand
2026-08-16 16:20:11.235706: Saved current settings to /config/predbat_config.json
2026-08-16 16:20:11.236099: Compare, best tariff: current metric 318.25p
2026-08-16 16:20:48.352888: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:20:48.353158: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:20:48.353198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:20:48.353387: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:20:48.353450: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:20:48.353467: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:20:48.353482: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:22:48.576817: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:22:48.577158: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:22:48.577212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:22:48.577364: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:22:48.577406: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:22:48.577427: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:22:48.577445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:24:48.821184: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:24:48.821429: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:24:48.821464: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:24:48.821613: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:24:48.821656: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:24:48.821678: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:24:48.821696: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:25:00.941844: --------------- PredBat - update at 2026-08-16 16:25:00+01:00 with clock skew 0 minutes, minutes now 985
2026-08-16 16:25:00.942629: Saved current settings to /config/predbat_config.json
2026-08-16 16:25:00.942776: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 16:25:00.942875: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:25:00.943008: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:25:00.961645: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:25:00.961759: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:25:00.961981: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:25:00.962627: Cars 1 charging from battery False 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-16 16:25:00.962836: Predbat mode is set to Control charge & discharge
2026-08-16 16:25:01.136344: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:25:01.136541: Using load_power data to fill gaps in load_today data
2026-08-16 16:25:01.828716: Processing 721 30-minute periods for power integration
2026-08-16 16:25:01.978968: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:25:01.979111: Car charging hold False, threshold 6.0kWh
2026-08-16 16:25:01.979150: Current data so far today: load 8.1kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:25:01.993523: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:25:01.994367: Standing charge is set to 46.63p
2026-08-16 16:25:02.067773: 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-16 16:25:02.068087: 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-16 16:25:02.068382: 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-16 16:25:02.068653: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.068887: Octopus: Intelligent slot at 08-17 00:00:00-08-17 00:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069195: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069312: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069424: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069644: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069756: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069867: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.069982: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.070091: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.070331: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:25:02.070413: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:25:02.075053: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:25:02.075421: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 16:25:02.111230: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:25:02.111355: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:25:02.112440: High export rate found rates in range 99p to -99p
2026-08-16 16:25:02.138902: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:25:02.139073: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:25:02.139623: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1675, 'kwh': 2.885, 'average': 8.0, 'cost': 23.08, 'octopus': False}]
2026-08-16 16:25:02.152912: Battery level now 11.33kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.22p, change today -6.05p, rate_forward 6.87p
2026-08-16 16:25:02.153272: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.6p, import 1.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:25:02.204751: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 285.66p, import 239.02p, export 0.0p, carbon 0.0kg
2026-08-16 16:25:02.204891: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:25:02.278262: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:25:02.301077: Today's load divergence 86.04%, in-day adjustment 85.55%, damping 0.95x, yesterday 82.97% today 86.74% blend 31.6%
2026-08-16 16:25:02.301161: Today's predicted so far 9.96kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 9.96kWh forecast extra.
2026-08-16 16:25:02.301188: Today's actual load so far 8.07kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 16:25:02.332009: Inverter 0: Type SK Sunsynk
2026-08-16 16:25:02.332089: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:25:02.332240: Reserve min: 7%, battery_min: 7%
2026-08-16 16:25:02.332311: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:25:02.332524: Inverter 0 SoC: 11.33kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 304W, current battery voltage 51.2V, grid power -55W, load power 368W, PV Power 0W
2026-08-16 16:25:02.332674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:25:02.332750: Inverter 0 scheduled charge enable is False
2026-08-16 16:25:02.332780: Inverter 0 charge windows currently []
2026-08-16 16:25:02.332802: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:25:02.332891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:25:02.332920: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:25:02.332987: Inverter 0 scheduled discharge enable is False
2026-08-16 16:25:02.333104: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:25:02.333136: Inverter 0 discharge windows currently []
2026-08-16 16:25:02.333155: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:25:02.333170: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:25:02.333188: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:25:02.386685: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:25:02.386780: Plan was last updated on 2026-08-16 16:20:00+01:00 and is now 5.0 minutes old
2026-08-16 16:25:02.386958: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:25:02.386993: Best export window [  ]
2026-08-16 16:25:02.387690: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:25:02.390222: Load divergence over 8.0 hours mean 565.69W, min 345.6W, max 1048.2W, std dev 207.23W, divergence 18.32%
2026-08-16 16:25:02.404981: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:25:02.405088: LoadML is_calculating False
2026-08-16 16:25:02.405143: Creating pool of 12 processes to match your CPU count
2026-08-16 16:25:02.552838: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 662.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.8kWh, PV 0.0kWh
2026-08-16 16:25:02.677089: Battery has 20.75 hours left - now at 11.33kWh
2026-08-16 16:25:02.719453: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 691.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 32.93kWh, PV 0.0kWh
2026-08-16 16:25:02.791616: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 512.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.93kWh, PV 0.0kWh
2026-08-16 16:25:02.869482: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 503.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.8kWh, PV 0.0kWh
2026-08-16 16:25:02.869593: Saving plan best values to HA entities
2026-08-16 16:25:03.054976: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:25:03.060916: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:25:03.066719: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.91kWh, house 6.67kWh, export 0.0kWh, metric 503.64p, metric10 512.35p
2026-08-16 16:25:03.144337: Marginal costs baseline metric (no standing charge): 410.3749
2026-08-16 16:25:03.424125: Marginal energy costs matrix computed: min=8.0 max=24.71
2026-08-16 16:25:03.491423: Rate array import [{'start': 985, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 985, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:25:03.492810: - Your estimated bill for today is £2.90 and tomorrow is £1.39
2026-08-16 16:25:03.492867: - Import rates are very expensive (33.8p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 16:25:03.492888: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-16 16:25:03.492903: - For the next 48 hours there will be no solar generation.
2026-08-16 16:25:03.492917: - You will run out of battery in 31 hours.
2026-08-16 16:25:03.492931: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p) and your car will be charged with 2.88 kWh.
2026-08-16 16:25:03.492987: 
2026-08-16 16:25:03.543876: Plan calculation took 1.16 seconds
2026-08-16 16:25:03.548643: No high rate period found
2026-08-16 16:25:03.610956: Import threshold used for optimisation was 8.0p
2026-08-16 16:25:03.675441: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:25:03.680634: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-16 16:25:03.680750: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:25:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:25:03.680859: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:25:03.681131: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:25:03.681217: No export window planned
2026-08-16 16:25:03.681313: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:25:03.681343: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:25:03.681454: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:25:03.681624: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:25:03.681679: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:25:03.681744: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:25:03.681814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681899: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.681994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:25:03.682204: Inverter 0 count register writes 0
2026-08-16 16:25:03.698094: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 16:25:03.703204: Total inverter register writes now 840
2026-08-16 16:25:03.736642: Info: Completed run status Demand
2026-08-16 16:25:03.743395: Info: record_status Demand
2026-08-16 16:25:03.749978: Saved current settings to /config/predbat_config.json
2026-08-16 16:25:03.750304: Compare, best tariff: current metric 318.25p
2026-08-16 16:25:33.845353: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:25:33.846098: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:25:33.846163: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:25:33.846405: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:25:33.846486: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:25:33.846519: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:25:33.846540: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:27:34.074599: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:27:34.074849: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:27:34.074893: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:27:34.075048: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:27:34.075123: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:27:34.075146: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:27:34.075168: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:29:34.307085: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:29:34.307351: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:29:34.307426: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:29:34.307593: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:29:34.307633: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:29:34.307662: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:29:34.307680: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:30:00.412355: --------------- PredBat - update at 2026-08-16 16:30:00+01:00 with clock skew 0 minutes, minutes now 990
2026-08-16 16:30:00.413385: Saved current settings to /config/predbat_config.json
2026-08-16 16:30:00.413608: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 16:30:00.413796: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:30:00.413950: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:30:00.439529: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:30:00.439728: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:30:00.439973: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:30:00.440694: Cars 1 charging from battery False 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-16 16:30:00.440867: Predbat mode is set to Control charge & discharge
2026-08-16 16:30:00.707810: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:30:00.707986: Using load_power data to fill gaps in load_today data
2026-08-16 16:30:01.681991: Processing 721 30-minute periods for power integration
2026-08-16 16:30:01.915650: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:30:01.915817: Car charging hold False, threshold 6.0kWh
2026-08-16 16:30:01.915882: Current data so far today: load 8.22kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:30:01.944506: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:30:01.945730: Standing charge is set to 46.63p
2026-08-16 16:30:02.044216: 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-16 16:30:02.044491: 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-16 16:30:02.044671: 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-16 16:30:02.045027: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.045386: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.045569: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.045827: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.045998: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046179: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046325: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046450: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046605: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046863: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:30:02.046935: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:30:02.055302: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:30:02.055890: Import rates: min 8.0p, max 33.75p, average 26.78p
2026-08-16 16:30:02.107887: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:30:02.108052: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:30:02.110001: High export rate found rates in range 99p to -99p
2026-08-16 16:30:02.150077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:30:02.150371: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:30:02.151037: Car 0 charging plan is: [{'start': 990, 'end': 1020, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1645, 'kwh': 2.885, 'average': 8.0, 'cost': 23.08, 'octopus': False}]
2026-08-16 16:30:02.168311: Battery level now 11.33kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -0.22p, change today -6.05p, rate_forward 6.87p
2026-08-16 16:30:02.168690: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 4.23p, import 4.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:30:02.236513: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 288.6p, import 241.97p, export 0.0p, carbon 0.0kg
2026-08-16 16:30:02.236691: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:30:02.328907: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:30:02.359711: Today's load divergence 86.52%, in-day adjustment 85.87%, damping 0.95x, yesterday 82.97% today 87.19% blend 31.25%
2026-08-16 16:30:02.359861: Today's predicted so far 10.07kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.07kWh forecast extra.
2026-08-16 16:30:02.359918: Today's actual load so far 8.24kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 16:30:02.399293: 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.7, 'source': 'SMART'}, {'start': '2026-08-17T00:00:00+01:00', 'end': '2026-08-17T00:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.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-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, 'source': 'SMART'}]]
2026-08-16 16:30:02.399866: Sensor changes require a replan, will recompute the plan
2026-08-16 16:30:02.400031: Inverter 0: Type SK Sunsynk
2026-08-16 16:30:02.400089: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:30:02.400275: Reserve min: 7%, battery_min: 7%
2026-08-16 16:30:02.400353: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:30:02.400623: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 357W, current battery voltage 51.2V, grid power -55W, load power 421W, PV Power 0W
2026-08-16 16:30:02.400785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:30:02.400873: Inverter 0 scheduled charge enable is False
2026-08-16 16:30:02.400907: Inverter 0 charge windows currently []
2026-08-16 16:30:02.400934: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:30:02.401128: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:30:02.401175: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:30:02.401215: Inverter 0 scheduled discharge enable is False
2026-08-16 16:30:02.401366: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:30:02.401406: Inverter 0 discharge windows currently []
2026-08-16 16:30:02.401429: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:30:02.401453: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:30:02.401471: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:30:02.476222: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:30:02.476312: Will recompute the plan as it is invalid
2026-08-16 16:30:02.476413: Recompute is saving previous plan...
2026-08-16 16:30:02.477433: Best charge window [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:30:02.477488: Best export window [  ]
2026-08-16 16:30:02.478299: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:30:02.481647: Load divergence over 8.0 hours mean 570.26W, min 322.8W, max 1100.4W, std dev 210.67W, divergence 18.47%
2026-08-16 16:30:02.501537: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:30:02.501675: LoadML is_calculating False
2026-08-16 16:30:02.501749: Creating pool of 12 processes to match your CPU count
2026-08-16 16:30:02.591035: 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(0.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-16 16:30:02.591947: Optimise levels pass started at 2026-08-16 16:30:02
2026-08-16 16:30:02.592034: Optimise all windows, total charge 26 export 1
2026-08-16 16:30:03.563704: >> Region optimisation pass width 960 gives best_metric 472.45p, best_cost 480.63p, best_cycle 37.37kWh, best_import 24.0kWh
2026-08-16 16:30:03.798653: >> Region optimisation pass width 480 gives best_metric 472.45p, best_cost 480.63p, best_cycle 37.37kWh, best_import 24.0kWh
2026-08-16 16:30:04.235379: >> Region optimisation pass width 240 gives best_metric 472.45p, best_cost 480.63p, best_cycle 37.37kWh, best_import 24.0kWh
2026-08-16 16:30:05.061034: >> Region optimisation pass width 120 gives best_metric 472.45p, best_cost 480.63p, best_cycle 37.37kWh, best_import 24.0kWh
2026-08-16 16:30:05.061390: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 22
2026-08-16 16:30:05.061554: Optimise levels pass ended at 2026-08-16 16:30:05, duration 2.5 seconds tried 75 combinations
2026-08-16 16:30:05.061693: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 472.45p, best_keep 0kWh, best_cycle 37.37kWh, best_carbon 0kg, best_import 24.0kWh
2026-08-16 16:30:05.086329: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:30:09.351361: Tweak plan optimisation started metric 404.23p, cost 410.54p
2026-08-16 16:30:09.731701: Tweak optimisation finished metric 404.23p, cost 410.54p, metric_keep 0kWh, cycle 23.26kWh, carbon 0kg, import 15.24kWh, changed 8 window(s)
2026-08-16 16:30:09.763460: Swap charge optimisation started metric 404.23p, cost 410.54p, min_improvement_swap 0.1p
2026-08-16 16:30:10.748331: Swap charge optimisation finished metric 404.23p, cost 410.54p
2026-08-16 16:30:10.833649: Raw charge windows [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 44%, 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 75%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 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 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 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% ] reserve 1.12
2026-08-16 16:30:10.834179: Unclipped charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 44%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:30:10.834474: Unfiltered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 44%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:30:10.834695: Filtered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 44%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:30:10.891206: Previous plan best metric is 404.32 (cost 410.63) and new plan best metric is 404.23 (cost 410.54)
2026-08-16 16:30:10.892422: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:30:10.893752: Plan valid is now true after recompute was False
2026-08-16 16:30:10.950205: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 671.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:55:00, load 31.89kWh, PV 0.0kWh
2026-08-16 16:30:11.092658: Battery has 20.42 hours left - now at 11.2kWh
2026-08-16 16:30:11.145181: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 700.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:20:00, load 33.02kWh, PV 0.0kWh
2026-08-16 16:30:11.232439: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 513.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.02kWh, PV 0.0kWh
2026-08-16 16:30:11.329563: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.89kWh, PV 0.0kWh
2026-08-16 16:30:11.330272: Saving plan best values to HA entities
2026-08-16 16:30:11.527142: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 16:30:11.533022: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:30:11.538662: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.42kWh, house 6.84kWh, export 0.0kWh, metric 503.9p, metric10 513.16p
2026-08-16 16:30:11.636309: Marginal costs baseline metric (no standing charge): 410.6282
2026-08-16 16:30:11.991217: Marginal energy costs matrix computed: min=8.0 max=24.6
2026-08-16 16:30:12.100008: Rate array import [{'start': 990, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 990, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:30:12.100908: - Your estimated bill for today is £2.94 and tomorrow is £1.38
2026-08-16 16:30:12.101020: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:30:12.101077: - The battery is currently at 70% and is in eco mode for the next 11 hours.
2026-08-16 16:30:12.101276: - For the next 48 hours there will be no solar generation.
2026-08-16 16:30:12.101314: - You will run out of battery in 31 hours.
2026-08-16 16:30:12.101334: - Your car is currently charging.
2026-08-16 16:30:12.101351: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-16 16:30:12.101369: 
2026-08-16 16:30:12.164300: Plan calculation took 9.69 seconds
2026-08-16 16:30:12.169559: Saved plan to storage
2026-08-16 16:30:12.173226: No high rate period found
2026-08-16 16:30:12.227843: Import threshold used for optimisation was 8.0p
2026-08-16 16:30:12.284346: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:30:12.291579: Inverter 0: Type SK Sunsynk
2026-08-16 16:30:12.291667: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:30:12.291974: Reserve min: 7%, battery_min: 7%
2026-08-16 16:30:12.292103: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:30:12.292468: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -54W, load power 438W, PV Power 0W
2026-08-16 16:30:12.292707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:30:12.292814: Inverter 0 scheduled charge enable is False
2026-08-16 16:30:12.292844: Inverter 0 charge windows currently []
2026-08-16 16:30:12.292876: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:30:12.293029: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:30:12.293092: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:30:12.293135: Inverter 0 scheduled discharge enable is False
2026-08-16 16:30:12.293279: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:30:12.293318: Inverter 0 discharge windows currently []
2026-08-16 16:30:12.293342: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:30:12.293364: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:30:12.293385: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:30:12.353350: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:30:12.353520: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:30:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:30:12.353607: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:30:12.353804: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:30:12.353892: No export window planned
2026-08-16 16:30:12.354006: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:30:12.354058: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:30:12.354208: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:30:12.354322: Car charging from battery is off, next slot for car 0 is 08-16 16:30:00 - 08-16 17:00:00
2026-08-16 16:30:12.354394: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-16 16:30:17.361265: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-16 16:30:22.383009: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-16 16:30:22.383213: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:30:22.383469: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:30:22.383597: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:30:22.383716: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:30:22.383994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.384358: 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-16 16:30:22.397473: 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-16 16:30:22.402174: 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-16 16:30:22.451250: 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-16 16:30:22.495837: 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-16 16:30:22.539220: 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-16 16:30:22.585626: 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-16 16:30:22.627425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:30:22.627802: Inverter 0 count register writes 1
2026-08-16 16:30:22.651381: Total inverter register writes now 841
2026-08-16 16:30:22.682538: Info: Completed run status Hold for car
2026-08-16 16:30:22.978117: Info: record_status Hold for car
2026-08-16 16:30:22.986523: Saved current settings to /config/predbat_config.json
2026-08-16 16:30:22.986925: Compare, best tariff: current metric 318.25p
2026-08-16 16:31:04.106885: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:31:04.107156: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:31:04.107193: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:31:04.107324: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:31:04.107363: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:31:04.107384: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:31:04.107402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:33:18.456740: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:33:18.457037: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:33:18.457126: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:33:18.457351: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:33:18.457423: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:33:18.457442: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:33:18.457456: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:35:00.658379: --------------- PredBat - update at 2026-08-16 16:35:00+01:00 with clock skew 0 minutes, minutes now 995
2026-08-16 16:35:00.659427: Saved current settings to /config/predbat_config.json
2026-08-16 16:35:00.659618: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 16:35:00.659760: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:35:00.659906: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:35:00.678952: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:35:00.679077: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:35:00.679247: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:35:00.679758: Cars 1 charging from battery False 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-16 16:35:00.679896: Predbat mode is set to Control charge & discharge
2026-08-16 16:35:00.846380: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:35:00.846531: Using load_power data to fill gaps in load_today data
2026-08-16 16:35:01.661906: Processing 721 30-minute periods for power integration
2026-08-16 16:35:01.860438: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:35:01.860979: Car charging hold False, threshold 6.0kWh
2026-08-16 16:35:01.861053: Current data so far today: load 8.25kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:35:01.881449: Cars: SoC: [28.714000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:35:01.882396: Standing charge is set to 46.63p
2026-08-16 16:35:01.975086: 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-16 16:35:01.975354: 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-16 16:35:01.975577: 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-16 16:35:01.975801: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976033: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976153: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976350: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976468: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976579: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976682: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976755: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.976851: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.977107: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:35:01.977171: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:35:01.982746: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:35:01.983117: Import rates: min 8.0p, max 33.75p, average 26.82p
2026-08-16 16:35:02.027969: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:35:02.028100: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:35:02.029566: High export rate found rates in range 99p to -99p
2026-08-16 16:35:02.065617: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:35:02.065874: Car 0 plan charging from 28.714000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:35:02.066430: Car 0 charging plan is: [{'start': 995, 'end': 1020, 'kwh': 3.083, 'average': 8.0, 'cost': 24.67, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.501, 'average': 8.0, 'cost': 28.01, 'octopus': False}]
2026-08-16 16:35:02.086481: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 16:35:02.086902: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 3.83p, import 3.83p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:35:02.146006: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 288.6p, import 241.97p, export 0.0p, carbon 0.0kg
2026-08-16 16:35:02.146182: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:35:02.249712: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:35:02.279025: Today's load divergence 86.55%, in-day adjustment 85.91%, damping 0.95x, yesterday 82.97% today 87.23% blend 30.9%
2026-08-16 16:35:02.279130: Today's predicted so far 10.16kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.16kWh forecast extra.
2026-08-16 16:35:02.279163: Today's actual load so far 8.33kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 16:35:02.319743: Inverter 0: Type SK Sunsynk
2026-08-16 16:35:02.319864: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:35:02.320053: Reserve min: 7%, battery_min: 7%
2026-08-16 16:35:02.320123: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:35:02.320414: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -442W, load power 442W, PV Power 0W
2026-08-16 16:35:02.320589: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:35:02.320679: Inverter 0 scheduled charge enable is False
2026-08-16 16:35:02.320715: Inverter 0 charge windows currently []
2026-08-16 16:35:02.320742: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:35:02.320876: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:35:02.320915: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:35:02.320982: Inverter 0 scheduled discharge enable is False
2026-08-16 16:35:02.321129: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:35:02.321168: Inverter 0 discharge windows currently []
2026-08-16 16:35:02.321198: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:35:02.321217: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:35:02.321234: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:35:02.387486: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:35:02.387596: Plan was last updated on 2026-08-16 16:30:00+01:00 and is now 5.0 minutes old
2026-08-16 16:35:02.387850: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:35:02.387916: Best export window [  ]
2026-08-16 16:35:02.388814: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:35:02.392187: Load divergence over 8.0 hours mean 573.74W, min 318.6W, max 1131.0W, std dev 220.81W, divergence 19.24%
2026-08-16 16:35:02.410717: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:35:02.410860: LoadML is_calculating False
2026-08-16 16:35:02.410930: Creating pool of 12 processes to match your CPU count
2026-08-16 16:35:02.544685: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 669.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.94kWh, PV 0.0kWh
2026-08-16 16:35:02.680470: Battery has 20.42 hours left - now at 11.2kWh
2026-08-16 16:35:02.728501: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 698.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:25:00, load 33.07kWh, PV 0.0kWh
2026-08-16 16:35:02.818388: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 516.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.07kWh, PV 0.0kWh
2026-08-16 16:35:02.909635: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 507.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.94kWh, PV 0.0kWh
2026-08-16 16:35:02.909741: Saving plan best values to HA entities
2026-08-16 16:35:03.087290: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:35:03.093450: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:35:03.099207: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.81kWh, house 6.87kWh, export 0.0kWh, metric 507.32p, metric10 516.02p
2026-08-16 16:35:03.184851: Marginal costs baseline metric (no standing charge): 414.0558
2026-08-16 16:35:03.516570: Marginal energy costs matrix computed: min=8.0 max=24.35
2026-08-16 16:35:03.617282: Rate array import [{'start': 995, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 995, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:35:03.618129: - Your estimated bill for today is £2.94 and tomorrow is £1.39
2026-08-16 16:35:03.618180: - Import rates are cheap (8.0p) for the next 25 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:35:03.618204: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:35:03.618222: - For the next 48 hours there will be no solar generation.
2026-08-16 16:35:03.618239: - You will run out of battery in 31 hours.
2026-08-16 16:35:03.618256: - Your car is currently charging.
2026-08-16 16:35:03.618273: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 16:35:03.618290: 
2026-08-16 16:35:03.683344: Plan calculation took 1.30 seconds
2026-08-16 16:35:03.687237: No high rate period found
2026-08-16 16:35:03.742026: Import threshold used for optimisation was 8.0p
2026-08-16 16:35:03.798031: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:35:03.805075: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:35:03.805220: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:35:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:35:03.805358: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:35:03.805627: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:35:03.805719: No export window planned
2026-08-16 16:35:03.805974: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:35:03.806038: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:35:03.806211: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:35:03.806329: Car charging from battery is off, next slot for car 0 is 08-16 16:35:00 - 08-16 17:00:00
2026-08-16 16:35:03.806415: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:35:03.806513: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:35:03.806575: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:35:03.806638: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:35:03.806746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806949: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.806990: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807023: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807050: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807076: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807101: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807138: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807169: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:35:03.807444: Inverter 0 count register writes 0
2026-08-16 16:35:03.823985: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 16:35:03.830403: Total inverter register writes now 841
2026-08-16 16:35:03.867135: Info: Completed run status Hold for car
2026-08-16 16:35:03.873813: Info: record_status Hold for car
2026-08-16 16:35:03.881226: Saved current settings to /config/predbat_config.json
2026-08-16 16:35:03.881649: Compare, best tariff: current metric 318.25p
2026-08-16 16:35:33.987936: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:35:33.988205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:35:33.988248: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:35:33.988388: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:35:33.988429: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:35:33.988451: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:35:33.988469: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:37:34.243137: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:37:34.243391: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:37:34.243433: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:37:34.243569: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:37:34.243608: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:37:34.243628: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:37:34.243646: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:39:48.491098: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:39:48.491343: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:39:48.491378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:39:48.491536: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:39:48.491575: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:39:48.491596: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:39:48.491614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:40:00.583744: --------------- PredBat - update at 2026-08-16 16:40:00+01:00 with clock skew 0 minutes, minutes now 1000
2026-08-16 16:40:00.584587: Saved current settings to /config/predbat_config.json
2026-08-16 16:40:00.584792: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 16:40:00.584979: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:40:00.585095: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:40:00.616012: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:40:00.616156: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:40:00.616372: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:40:00.617084: Cars 1 charging from battery False 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-16 16:40:00.617251: Predbat mode is set to Control charge & discharge
2026-08-16 16:40:00.875323: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:40:00.875500: Using load_power data to fill gaps in load_today data
2026-08-16 16:40:01.758034: Processing 721 30-minute periods for power integration
2026-08-16 16:40:01.953008: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:40:01.953149: Car charging hold False, threshold 6.0kWh
2026-08-16 16:40:01.953226: Current data so far today: load 8.35kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:40:01.971707: Cars: SoC: [29.3]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:40:01.972682: Standing charge is set to 46.63p
2026-08-16 16:40:02.067112: 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-16 16:40:02.067426: 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-16 16:40:02.067703: 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-16 16:40:02.067953: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068190: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068305: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068554: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068680: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068827: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.068990: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.069131: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.069269: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.069515: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:40:02.069583: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:40:02.075110: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:40:02.075543: Import rates: min 8.0p, max 33.75p, average 26.87p
2026-08-16 16:40:02.118511: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:40:02.118676: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:40:02.120007: High export rate found rates in range 99p to -99p
2026-08-16 16:40:02.154068: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:40:02.154285: Car 0 plan charging from 29.3kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:40:02.154907: Car 0 charging plan is: [{'start': 1000, 'end': 1020, 'kwh': 2.467, 'average': 8.0, 'cost': 19.73, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.482, 'average': 8.0, 'cost': 27.85, 'octopus': False}]
2026-08-16 16:40:02.171731: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 16:40:02.172194: Last hour: net energy 0.17kWh, import 0.17kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 3.63p, import 3.63p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:40:02.232829: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 288.6p, import 241.97p, export 0.0p, carbon 0.0kg
2026-08-16 16:40:02.233008: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:40:02.324794: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:40:02.353982: Today's load divergence 87.06%, in-day adjustment 86.26%, damping 0.95x, yesterday 82.97% today 87.7% blend 30.56%
2026-08-16 16:40:02.354075: Today's predicted so far 10.15kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 10.15kWh forecast extra.
2026-08-16 16:40:02.354108: Today's actual load so far 8.38kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 16:40:02.388499: Inverter 0: Type SK Sunsynk
2026-08-16 16:40:02.388594: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:40:02.388802: Reserve min: 7%, battery_min: 7%
2026-08-16 16:40:02.388990: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:40:02.389324: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -453W, load power 453W, PV Power 0W
2026-08-16 16:40:02.389494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:40:02.389622: Inverter 0 scheduled charge enable is False
2026-08-16 16:40:02.389677: Inverter 0 charge windows currently []
2026-08-16 16:40:02.389705: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:40:02.389820: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:40:02.389858: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:40:02.389894: Inverter 0 scheduled discharge enable is False
2026-08-16 16:40:02.390020: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:40:02.390057: Inverter 0 discharge windows currently []
2026-08-16 16:40:02.390079: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:40:02.390101: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:40:02.390118: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:40:02.458388: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:40:02.458532: Plan was last updated on 2026-08-16 16:30:00+01:00 and is now 10.0 minutes old
2026-08-16 16:40:02.458825: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:40:02.458876: Best export window [  ]
2026-08-16 16:40:02.459802: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:40:02.463080: Load divergence over 8.0 hours mean 578.32W, min 315.0W, max 1105.2W, std dev 218.42W, divergence 18.88%
2026-08-16 16:40:02.484995: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:40:02.485147: LoadML is_calculating False
2026-08-16 16:40:02.485212: Creating pool of 12 processes to match your CPU count
2026-08-16 16:40:02.601723: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 671.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:55:00, load 32.08kWh, PV 0.0kWh
2026-08-16 16:40:02.735983: Battery has 20.25 hours left - now at 11.2kWh
2026-08-16 16:40:02.797088: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 699.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:25:00, load 33.21kWh, PV 0.0kWh
2026-08-16 16:40:02.901106: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 519.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.21kWh, PV 0.0kWh
2026-08-16 16:40:02.998421: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 510.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 32.08kWh, PV 0.0kWh
2026-08-16 16:40:02.998514: Saving plan best values to HA entities
2026-08-16 16:40:03.186218: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:40:03.192076: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:40:03.198837: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.31kWh, house 6.83kWh, export 0.0kWh, metric 510.98p, metric10 519.13p
2026-08-16 16:40:03.287051: Marginal costs baseline metric (no standing charge): 417.7086
2026-08-16 16:40:03.636874: Marginal energy costs matrix computed: min=8.0 max=24.47
2026-08-16 16:40:03.720508: Rate array import [{'start': 1000, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1000, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:40:03.721509: - Your estimated bill for today is £2.94 and tomorrow is £1.39
2026-08-16 16:40:03.721598: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:40:03.721623: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:40:03.721710: - For the next 48 hours there will be no solar generation.
2026-08-16 16:40:03.721729: - You will run out of battery in 31 hours.
2026-08-16 16:40:03.721746: - Your car is currently charging.
2026-08-16 16:40:03.721763: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 16:40:03.721785: 
2026-08-16 16:40:03.784370: Plan calculation took 1.33 seconds
2026-08-16 16:40:03.788319: No high rate period found
2026-08-16 16:40:03.843069: Import threshold used for optimisation was 8.0p
2026-08-16 16:40:03.908606: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:40:03.918208: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:40:03.918364: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:40:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:40:03.918478: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:40:03.918770: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:40:03.918864: No export window planned
2026-08-16 16:40:03.919012: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:40:03.919067: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:40:03.919289: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:40:03.919480: Car charging from battery is off, next slot for car 0 is 08-16 16:40:00 - 08-16 17:00:00
2026-08-16 16:40:03.919610: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:40:03.919779: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:40:03.919854: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:40:03.919923: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:40:03.920038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920437: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920493: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920581: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920624: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920711: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920770: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.920887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:03.921212: Inverter 0 count register writes 0
2026-08-16 16:40:03.942719: 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-16 16:40:03.942900: Recompute is saving previous plan...
2026-08-16 16:40:03.943890: Best charge window [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:40:03.943964: Best export window [  ]
2026-08-16 16:40:03.944829: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:40:03.948662: Load divergence over 8.0 hours mean 578.32W, min 315.0W, max 1105.2W, std dev 218.42W, divergence 18.88%
2026-08-16 16:40:03.971748: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:40:03.971892: LoadML is_calculating False
2026-08-16 16:40:03.971980: Creating pool of 12 processes to match your CPU count
2026-08-16 16:40:04.068992: 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(0.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-16 16:40:04.070785: Optimise levels pass started at 2026-08-16 16:40:04
2026-08-16 16:40:04.070892: Optimise all windows, total charge 26 export 1
2026-08-16 16:40:04.546831: >> Region optimisation pass width 960 gives best_metric 481.37p, best_cost 526.7p, best_cycle 41.67kWh, best_import 29.76kWh
2026-08-16 16:40:04.731987: >> Region optimisation pass width 480 gives best_metric 481.37p, best_cost 526.7p, best_cycle 41.67kWh, best_import 29.76kWh
2026-08-16 16:40:05.862700: >> Region optimisation pass width 240 gives best_metric 477.1p, best_cost 478.65p, best_cycle 37.16kWh, best_import 23.76kWh
2026-08-16 16:40:06.873232: >> Region optimisation pass width 120 gives best_metric 475.36p, best_cost 479.55p, best_cycle 38.58kWh, best_import 23.87kWh
2026-08-16 16:40:06.873816: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 22
2026-08-16 16:40:06.873924: Optimise levels pass ended at 2026-08-16 16:40:06, duration 2.8 seconds tried 100 combinations
2026-08-16 16:40:06.874038: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 475.36p, best_keep 0kWh, best_cycle 38.58kWh, best_carbon 0kg, best_import 23.87kWh
2026-08-16 16:40:06.897528: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:40:10.326123: Tweak plan optimisation started metric 403.85p, cost 410.16p
2026-08-16 16:40:10.655570: Tweak optimisation finished metric 403.85p, cost 410.16p, metric_keep 0kWh, cycle 23.32kWh, carbon 0kg, import 15.19kWh, changed 8 window(s)
2026-08-16 16:40:10.679848: Swap charge optimisation started metric 403.85p, cost 410.16p, min_improvement_swap 0.1p
2026-08-16 16:40:11.593486: Swap charge optimisation finished metric 403.85p, cost 410.16p
2026-08-16 16:40:11.664535: Raw charge windows [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 16:40:11.664987: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:40:11.665221: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:40:11.665451: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:40:11.710995: Previous plan best metric is 403.85 (cost 410.16) and new plan best metric is 403.85 (cost 410.16)
2026-08-16 16:40:11.711212: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:40:11.711346: Plan valid is now true after recompute was False
2026-08-16 16:40:11.743531: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 670.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:55:00, load 31.97kWh, PV 0.0kWh
2026-08-16 16:40:11.860600: Battery has 20.25 hours left - now at 11.2kWh
2026-08-16 16:40:11.919245: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 698.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:25:00, load 33.09kWh, PV 0.0kWh
2026-08-16 16:40:12.005385: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.09kWh, PV 0.0kWh
2026-08-16 16:40:12.131705: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.97kWh, PV 0.0kWh
2026-08-16 16:40:12.131826: Saving plan best values to HA entities
2026-08-16 16:40:12.355428: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:40:12.364097: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:40:12.375035: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.37kWh, house 6.83kWh, export 0.0kWh, metric 503.43p, metric10 512.65p
2026-08-16 16:40:12.504519: Marginal costs baseline metric (no standing charge): 410.1604
2026-08-16 16:40:12.837707: Marginal energy costs matrix computed: min=8.0 max=24.47
2026-08-16 16:40:12.917621: Rate array import [{'start': 1000, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1000, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:40:12.918598: - Your estimated bill for today is £2.94 and tomorrow is £1.39
2026-08-16 16:40:12.918681: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:40:12.918711: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:40:12.918895: - For the next 48 hours there will be no solar generation.
2026-08-16 16:40:12.918979: - You will run out of battery in 31 hours.
2026-08-16 16:40:12.919014: - Your car is currently charging.
2026-08-16 16:40:12.919053: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 16:40:12.919084: 
2026-08-16 16:40:12.998380: Plan calculation took 9.06 seconds
2026-08-16 16:40:12.998792: Inverter 0: Type SK Sunsynk
2026-08-16 16:40:12.998866: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:40:12.999110: Reserve min: 7%, battery_min: 7%
2026-08-16 16:40:12.999191: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:40:12.999492: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -438W, load power 438W, PV Power 0W
2026-08-16 16:40:12.999781: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:40:12.999912: Inverter 0 scheduled charge enable is False
2026-08-16 16:40:12.999976: Inverter 0 charge windows currently []
2026-08-16 16:40:13.000082: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:40:13.000213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:40:13.000253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:40:13.000292: Inverter 0 scheduled discharge enable is False
2026-08-16 16:40:13.000479: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:40:13.000527: Inverter 0 discharge windows currently []
2026-08-16 16:40:13.000552: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:40:13.000579: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:40:13.000598: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:40:13.064065: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:40:13.064220: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:40:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:40:13.064295: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:40:13.064494: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:40:13.064580: No export window planned
2026-08-16 16:40:13.064706: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:40:13.064745: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:40:13.064883: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:40:13.065019: Car charging from battery is off, next slot for car 0 is 08-16 16:40:00 - 08-16 17:00:00
2026-08-16 16:40:13.065100: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:40:13.065195: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:40:13.065248: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:40:13.065301: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:40:13.065411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065562: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065683: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065713: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065743: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065770: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065799: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065832: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065869: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.065990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.066015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.066043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.066068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.066094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:40:13.066120: Inverter 0 count register writes 0
2026-08-16 16:40:13.089035: Total inverter register writes now 841
2026-08-16 16:40:13.125520: Info: Completed run status Hold for car
2026-08-16 16:40:13.133022: Info: record_status Hold for car
2026-08-16 16:40:13.140424: Saved current settings to /config/predbat_config.json
2026-08-16 16:40:13.140726: Compare, best tariff: current metric 318.25p
2026-08-16 16:40:49.261129: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:40:49.261451: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:40:49.261502: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:40:49.261698: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:40:49.261744: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:40:49.261766: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:40:49.261785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:43:03.521483: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:43:03.521828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:43:03.521878: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:43:03.522039: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:43:03.522085: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:43:03.522112: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:43:03.522128: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:44:43.990393: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 16:44:45.061023: Processing 1345 30-minute periods for power integration
2026-08-16 16:44:45.166425: ML Component: Car charging hold False, car energy reported load False
2026-08-16 16:44:45.266530: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:44:45.364450: ML Temperature data points: 49401
2026-08-16 16:44:45.640474: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 16:44:45.678929: ML Component: Data fetch completed, load data age 58.0 days, 16736 data points
2026-08-16 16:44:45.679056: ML Component: No training needed, model age is 1.71 hours
2026-08-16 16:44:45.679116: ML Component: Generating predictions load data age 58.0 days, 16736 data points
2026-08-16 16:44:45.822388: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0408 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 16:44:52.463821: ML Component: Generated 576 predictions (total 26.74 kWh over 48h)
2026-08-16 16:44:52.500665: ML Component: Prediction cycle completed
2026-08-16 16:44:52.609884: ML Component: Saved 16736 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 16:45:00.770407: --------------- PredBat - update at 2026-08-16 16:45:00+01:00 with clock skew 0 minutes, minutes now 1005
2026-08-16 16:45:00.771195: Saved current settings to /config/predbat_config.json
2026-08-16 16:45:00.771373: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 16:45:00.771515: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:45:00.771628: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:45:00.792698: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:45:00.792913: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:45:00.793190: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:45:00.793788: Cars 1 charging from battery False 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-16 16:45:00.793952: Predbat mode is set to Control charge & discharge
2026-08-16 16:45:01.010283: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:45:01.010690: Using load_power data to fill gaps in load_today data
2026-08-16 16:45:01.869561: Processing 721 30-minute periods for power integration
2026-08-16 16:45:02.060026: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:45:02.060171: Car charging hold False, threshold 6.0kWh
2026-08-16 16:45:02.060220: Current data so far today: load 8.4kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:45:02.078840: Cars: SoC: [29.3]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:45:02.080322: Standing charge is set to 46.63p
2026-08-16 16:45:02.194768: 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-16 16:45:02.195032: 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-16 16:45:02.195299: 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-16 16:45:02.195587: 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-16 16:45:02.195857: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196157: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196264: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196449: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196568: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196658: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196742: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196821: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.196900: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.197126: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:45:02.197194: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:45:02.202897: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:45:02.203250: Import rates: min 8.0p, max 33.75p, average 26.91p
2026-08-16 16:45:02.248091: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:45:02.248225: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:45:02.249614: High export rate found rates in range 99p to -99p
2026-08-16 16:45:02.283583: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:45:02.283853: Car 0 plan charging from 29.3kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:45:02.284452: Car 0 charging plan is: [{'start': 1005, 'end': 1020, 'kwh': 1.85, 'average': 8.0, 'cost': 14.8, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1655, 'kwh': 0.398, 'average': 8.0, 'cost': 3.18, 'octopus': False}]
2026-08-16 16:45:02.303599: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 16:45:02.304091: Last hour: net energy 0.15kWh, import 0.15kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.43p, import 3.43p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:45:02.369158: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 288.6p, import 241.97p, export 0.0p, carbon 0.0kg
2026-08-16 16:45:02.369314: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:45:02.444754: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:45:02.468125: Today's load divergence 86.87%, in-day adjustment 86.15%, damping 0.95x, yesterday 82.97% today 87.52% blend 30.21%
2026-08-16 16:45:02.468472: Today's predicted so far 10.14kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 10.14kWh forecast extra.
2026-08-16 16:45:02.468560: Today's actual load so far 8.35kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 16:45:02.500720: 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-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, '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.7, 'source': 'SMART'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, 'source': 'SMART'}]]
2026-08-16 16:45:02.501333: Sensor changes require a replan, will recompute the plan
2026-08-16 16:45:02.501488: Inverter 0: Type SK Sunsynk
2026-08-16 16:45:02.501525: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:45:02.501714: Reserve min: 7%, battery_min: 7%
2026-08-16 16:45:02.501783: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:45:02.502030: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -466W, load power 466W, PV Power 0W
2026-08-16 16:45:02.502186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:45:02.502272: Inverter 0 scheduled charge enable is False
2026-08-16 16:45:02.502302: Inverter 0 charge windows currently []
2026-08-16 16:45:02.502328: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:45:02.502434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:45:02.502470: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:45:02.502506: Inverter 0 scheduled discharge enable is False
2026-08-16 16:45:02.502646: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:45:02.502685: Inverter 0 discharge windows currently []
2026-08-16 16:45:02.502708: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:45:02.502730: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:45:02.502748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:45:02.572291: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:45:02.572378: Will recompute the plan as it is invalid
2026-08-16 16:45:02.572482: Recompute is saving previous plan...
2026-08-16 16:45:02.573648: Best charge window [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:45:02.573713: Best export window [  ]
2026-08-16 16:45:02.574681: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:45:02.578233: Load divergence over 8.0 hours mean 583.24W, min 339.6W, max 1075.2W, std dev 218.53W, divergence 18.73%
2026-08-16 16:45:02.595913: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:45:02.596043: LoadML is_calculating False
2026-08-16 16:45:02.596108: Creating pool of 12 processes to match your CPU count
2026-08-16 16:45:02.686947: 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(0.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-16 16:45:02.687974: Optimise levels pass started at 2026-08-16 16:45:02
2026-08-16 16:45:02.688064: Optimise all windows, total charge 26 export 1
2026-08-16 16:45:03.138642: >> Region optimisation pass width 960 gives best_metric 481.38p, best_cost 526.42p, best_cycle 41.75kWh, best_import 29.73kWh
2026-08-16 16:45:03.351192: >> Region optimisation pass width 480 gives best_metric 481.38p, best_cost 526.42p, best_cycle 41.75kWh, best_import 29.73kWh
2026-08-16 16:45:03.936738: >> Region optimisation pass width 240 gives best_metric 477.27p, best_cost 478.35p, best_cycle 37.21kWh, best_import 23.72kWh
2026-08-16 16:45:05.013638: >> Region optimisation pass width 120 gives best_metric 475.53p, best_cost 479.25p, best_cycle 38.64kWh, best_import 23.83kWh
2026-08-16 16:45:05.014070: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 22
2026-08-16 16:45:05.014148: Optimise levels pass ended at 2026-08-16 16:45:05, duration 2.3 seconds tried 100 combinations
2026-08-16 16:45:05.014274: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 475.53p, best_keep 0kWh, best_cycle 38.64kWh, best_carbon 0kg, best_import 23.83kWh
2026-08-16 16:45:05.033757: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:45:08.313977: Tweak plan optimisation started metric 403.61p, cost 409.93p
2026-08-16 16:45:08.632494: Tweak optimisation finished metric 403.61p, cost 409.93p, metric_keep 0kWh, cycle 23.33kWh, carbon 0kg, import 15.17kWh, changed 8 window(s)
2026-08-16 16:45:08.655807: Swap charge optimisation started metric 403.61p, cost 409.93p, min_improvement_swap 0.1p
2026-08-16 16:45:09.569579: Swap charge optimisation finished metric 403.61p, cost 409.93p
2026-08-16 16:45:09.637775: Raw charge windows [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 16:45:09.638315: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:45:09.638652: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:45:09.639000: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:45:09.686737: Previous plan best metric is 403.61 (cost 409.93) and new plan best metric is 403.61 (cost 409.93)
2026-08-16 16:45:09.686980: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:45:09.687123: Plan valid is now true after recompute was False
2026-08-16 16:45:09.726374: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 668.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.99kWh, PV 0.0kWh
2026-08-16 16:45:09.864144: Battery has 20.25 hours left - now at 11.2kWh
2026-08-16 16:45:09.916662: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 697.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.11kWh, PV 0.0kWh
2026-08-16 16:45:10.017366: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.11kWh, PV 0.0kWh
2026-08-16 16:45:10.099986: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.99kWh, PV 0.0kWh
2026-08-16 16:45:10.100075: Saving plan best values to HA entities
2026-08-16 16:45:10.338997: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:45:10.347622: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 16:45:10.353866: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.36kWh, house 6.8kWh, export 0.0kWh, metric 503.2p, metric10 512.4p
2026-08-16 16:45:10.451679: Marginal costs baseline metric (no standing charge): 409.9277
2026-08-16 16:45:10.758568: Marginal energy costs matrix computed: min=8.0 max=24.52
2026-08-16 16:45:10.833168: Rate array import [{'start': 1005, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1005, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:45:10.833824: - Your estimated bill for today is £2.94 and tomorrow is £1.38
2026-08-16 16:45:10.833871: - Import rates are cheap (8.0p) for the next 15 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:45:10.833892: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:45:10.833907: - For the next 48 hours there will be no solar generation.
2026-08-16 16:45:10.833921: - You will run out of battery in 31 hours.
2026-08-16 16:45:10.833936: - Your car is currently charging.
2026-08-16 16:45:10.833950: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p) and your car will be charged with 0.4 kWh.
2026-08-16 16:45:10.833992: 
2026-08-16 16:45:10.894785: Plan calculation took 8.32 seconds
2026-08-16 16:45:10.899447: Saved plan to storage
2026-08-16 16:45:10.903272: No high rate period found
2026-08-16 16:45:10.954202: Import threshold used for optimisation was 8.0p
2026-08-16 16:45:11.013703: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:45:11.020200: Inverter 0: Type SK Sunsynk
2026-08-16 16:45:11.020287: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:45:11.020515: Reserve min: 7%, battery_min: 7%
2026-08-16 16:45:11.020612: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:45:11.020925: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -465W, load power 466W, PV Power 0W
2026-08-16 16:45:11.021198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:45:11.021317: Inverter 0 scheduled charge enable is False
2026-08-16 16:45:11.021352: Inverter 0 charge windows currently []
2026-08-16 16:45:11.021383: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:45:11.021499: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:45:11.021557: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:45:11.021599: Inverter 0 scheduled discharge enable is False
2026-08-16 16:45:11.021730: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:45:11.021769: Inverter 0 discharge windows currently []
2026-08-16 16:45:11.021792: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:45:11.021812: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:45:11.021830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:45:11.080770: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:45:11.080922: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:45:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:45:11.081063: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:45:11.081507: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:45:11.081660: No export window planned
2026-08-16 16:45:11.081804: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:45:11.081875: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:45:11.082048: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:45:11.082213: Car charging from battery is off, next slot for car 0 is 08-16 16:45:00 - 08-16 17:00:00
2026-08-16 16:45:11.082311: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:45:11.082413: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:45:11.082469: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:45:11.082524: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:45:11.082670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082897: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082930: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082956: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.082985: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083010: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083040: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083074: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:45:11.083337: Inverter 0 count register writes 0
2026-08-16 16:45:11.105216: Total inverter register writes now 841
2026-08-16 16:45:11.141040: Info: Completed run status Hold for car
2026-08-16 16:45:11.148064: Info: record_status Hold for car
2026-08-16 16:45:11.154704: Saved current settings to /config/predbat_config.json
2026-08-16 16:45:11.155034: Compare, best tariff: current metric 318.25p
2026-08-16 16:45:49.263888: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:45:49.264139: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:45:49.264183: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:45:49.264318: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:45:49.264357: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:45:49.264378: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:45:49.264396: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:48:03.526809: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:48:03.527069: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:48:03.527113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:48:03.527290: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:48:03.527358: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:48:03.527406: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:48:03.527424: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:50:00.770196: --------------- PredBat - update at 2026-08-16 16:50:00+01:00 with clock skew 0 minutes, minutes now 1010
2026-08-16 16:50:00.771107: Saved current settings to /config/predbat_config.json
2026-08-16 16:50:00.771303: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 16:50:00.771442: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:50:00.771562: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:50:00.793330: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:50:00.793462: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:50:00.793652: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:50:00.794162: Cars 1 charging from battery False 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-16 16:50:00.794284: Predbat mode is set to Control charge & discharge
2026-08-16 16:50:01.012196: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:50:01.012368: Using load_power data to fill gaps in load_today data
2026-08-16 16:50:01.856522: Processing 721 30-minute periods for power integration
2026-08-16 16:50:02.045864: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:50:02.046036: Car charging hold False, threshold 6.0kWh
2026-08-16 16:50:02.046084: Current data so far today: load 8.3kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:50:02.064470: Cars: SoC: [30.472]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:50:02.065419: Standing charge is set to 46.63p
2026-08-16 16:50:02.157523: 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-16 16:50:02.157815: 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-16 16:50:02.158012: 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-16 16:50:02.158189: 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-16 16:50:02.158368: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.158632: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.158773: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.158971: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159067: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159154: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159235: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159318: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159399: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159581: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:50:02.159643: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:50:02.166105: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:50:02.167359: Import rates: min 8.0p, max 33.75p, average 26.96p
2026-08-16 16:50:02.211449: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:50:02.211583: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:50:02.212710: High export rate found rates in range 99p to -99p
2026-08-16 16:50:02.242424: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:50:02.242680: Car 0 plan charging from 30.472kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:50:02.243352: Car 0 charging plan is: [{'start': 1010, 'end': 1020, 'kwh': 1.233, 'average': 8.0, 'cost': 9.87, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.44, 'average': 8.0, 'cost': 27.52, 'octopus': False}]
2026-08-16 16:50:02.259967: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 16:50:02.260394: Last hour: net energy 0.22kWh, import 0.22kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 4.55p, import 4.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:50:02.329632: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 290.05p, import 243.41p, export 0.0p, carbon 0.0kg
2026-08-16 16:50:02.329829: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:50:02.422703: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:50:02.452598: Today's load divergence 86.01%, in-day adjustment 85.59%, damping 0.95x, yesterday 82.97% today 86.71% blend 29.86%
2026-08-16 16:50:02.452719: Today's predicted so far 10.16kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 10.16kWh forecast extra.
2026-08-16 16:50:02.452772: Today's actual load so far 8.27kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 16:50:02.486635: Inverter 0: Type SK Sunsynk
2026-08-16 16:50:02.486734: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:50:02.486995: Reserve min: 7%, battery_min: 7%
2026-08-16 16:50:02.487113: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:50:02.487461: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -454W, load power 454W, PV Power 0W
2026-08-16 16:50:02.487696: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:50:02.487831: Inverter 0 scheduled charge enable is False
2026-08-16 16:50:02.487885: Inverter 0 charge windows currently []
2026-08-16 16:50:02.487920: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:50:02.488092: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:50:02.488137: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:50:02.488187: Inverter 0 scheduled discharge enable is False
2026-08-16 16:50:02.488369: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:50:02.488413: Inverter 0 discharge windows currently []
2026-08-16 16:50:02.488439: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:50:02.488495: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:50:02.488539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:50:02.555080: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:50:02.555211: Plan was last updated on 2026-08-16 16:45:00+01:00 and is now 5.0 minutes old
2026-08-16 16:50:02.555538: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:50:02.555601: Best export window [  ]
2026-08-16 16:50:02.556500: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:50:02.559587: Load divergence over 8.0 hours mean 587.76W, min 354.0W, max 1047.6W, std dev 216.23W, divergence 18.39%
2026-08-16 16:50:02.578206: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:50:02.578337: LoadML is_calculating False
2026-08-16 16:50:02.578415: Creating pool of 12 processes to match your CPU count
2026-08-16 16:50:02.706036: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 669.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.85kWh, PV 0.0kWh
2026-08-16 16:50:02.836608: Battery has 20.17 hours left - now at 11.2kWh
2026-08-16 16:50:02.886566: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 698.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.97kWh, PV 0.0kWh
2026-08-16 16:50:02.969471: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 516.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.97kWh, PV 0.0kWh
2026-08-16 16:50:03.044216: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 507.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.85kWh, PV 0.0kWh
2026-08-16 16:50:03.044299: Saving plan best values to HA entities
2026-08-16 16:50:03.216174: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:50:03.221755: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:50:03.227109: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.78kWh, house 6.75kWh, export 0.0kWh, metric 507.61p, metric10 516.26p
2026-08-16 16:50:03.322216: Marginal costs baseline metric (no standing charge): 414.341
2026-08-16 16:50:03.654825: Marginal energy costs matrix computed: min=8.0 max=24.36
2026-08-16 16:50:03.740008: Rate array import [{'start': 1010, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1010, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:50:03.740845: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 16:50:03.740903: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:50:03.740968: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:50:03.741020: - For the next 48 hours there will be no solar generation.
2026-08-16 16:50:03.741064: - You will run out of battery in 31 hours.
2026-08-16 16:50:03.741082: - Your car is currently charging.
2026-08-16 16:50:03.741099: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 16:50:03.741121: 
2026-08-16 16:50:03.805599: Plan calculation took 1.25 seconds
2026-08-16 16:50:03.809411: No high rate period found
2026-08-16 16:50:03.863810: Import threshold used for optimisation was 8.0p
2026-08-16 16:50:03.923722: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:50:03.932489: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:50:03.932683: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:50:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:50:03.932836: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:50:03.933264: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:50:03.933394: No export window planned
2026-08-16 16:50:03.933601: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:50:03.933651: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:50:03.933843: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:50:03.933989: Car charging from battery is off, next slot for car 0 is 08-16 16:50:00 - 08-16 17:00:00
2026-08-16 16:50:03.934096: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:50:03.934222: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:50:03.934301: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:50:03.934380: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:50:03.934534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934777: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934875: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934911: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.934976: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935015: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935088: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935144: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:50:03.935525: Inverter 0 count register writes 0
2026-08-16 16:50:03.954783: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 16:50:03.961157: Total inverter register writes now 841
2026-08-16 16:50:04.018213: Info: Completed run status Hold for car
2026-08-16 16:50:04.024677: Info: record_status Hold for car
2026-08-16 16:50:04.031584: Saved current settings to /config/predbat_config.json
2026-08-16 16:50:04.031899: Compare, best tariff: current metric 318.25p
2026-08-16 16:50:34.133438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:50:34.133763: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:50:34.133821: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:50:34.133976: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:50:34.134036: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:50:34.134059: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:50:34.134091: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:52:48.375976: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:52:48.376306: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:52:48.376367: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:52:48.376578: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:52:48.376625: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:52:48.376648: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:52:48.376673: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:54:48.602211: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:54:48.602461: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:54:48.602545: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:54:48.602828: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:54:48.602908: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:54:48.602932: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:54:48.602950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:55:00.697379: --------------- PredBat - update at 2026-08-16 16:55:00+01:00 with clock skew 0 minutes, minutes now 1015
2026-08-16 16:55:00.698229: Saved current settings to /config/predbat_config.json
2026-08-16 16:55:00.950072: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 16:55:00.950216: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 16:55:00.969484: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 16:55:00.969637: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 16:55:00.969823: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 16:55:00.970325: Cars 1 charging from battery False 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-16 16:55:00.970444: Predbat mode is set to Control charge & discharge
2026-08-16 16:55:01.166735: Found 21602 load_today datapoints going back 28 days
2026-08-16 16:55:01.166885: Using load_power data to fill gaps in load_today data
2026-08-16 16:55:02.088541: Processing 721 30-minute periods for power integration
2026-08-16 16:55:02.276412: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 16:55:02.276562: Car charging hold False, threshold 6.0kWh
2026-08-16 16:55:02.276611: Current data so far today: load 8.3kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 16:55:02.295102: Cars: SoC: [30.472]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 16:55:02.296144: Standing charge is set to 46.63p
2026-08-16 16:55:02.386988: 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-16 16:55:02.387250: 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-16 16:55:02.387553: 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-16 16:55:02.387740: 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-16 16:55:02.387930: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388187: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388273: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388605: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388738: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388837: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.388940: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.389070: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.389165: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.389495: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 16:55:02.389594: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 16:55:02.395217: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 16:55:02.395656: Import rates: min 8.0p, max 33.75p, average 27.0p
2026-08-16 16:55:02.441648: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 16:55:02.441786: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 16:55:02.443151: High export rate found rates in range 99p to -99p
2026-08-16 16:55:02.478264: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 16:55:02.478537: Car 0 plan charging from 30.472kWh to 100.0% (58.6kWh), with slots [{'start': 990, 'end': 1020, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 16:55:02.479122: Car 0 charging plan is: [{'start': 1015, 'end': 1020, 'kwh': 0.617, 'average': 8.0, 'cost': 4.93, 'octopus': False}, {'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1650, 'end': 1655, 'kwh': 0.358, 'average': 8.0, 'cost': 2.86, 'octopus': False}]
2026-08-16 16:55:02.494675: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 16:55:02.495111: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 4.35p, import 4.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 16:55:02.556981: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 290.04p, import 243.41p, export 0.0p, carbon 0.0kg
2026-08-16 16:55:02.557184: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 16:55:02.643406: Using weighted-bucket historical load forecast over 14 days
2026-08-16 16:55:02.667100: Today's load divergence 85.86%, in-day adjustment 85.5%, damping 0.95x, yesterday 82.97% today 86.56% blend 29.51%
2026-08-16 16:55:02.667210: Today's predicted so far 10.18kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 10.18kWh forecast extra.
2026-08-16 16:55:02.667236: Today's actual load so far 8.27kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 16:55:02.703461: Inverter 0: Type SK Sunsynk
2026-08-16 16:55:02.703568: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:55:02.703763: Reserve min: 7%, battery_min: 7%
2026-08-16 16:55:02.703844: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:55:02.704121: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -485W, load power 485W, PV Power 0W
2026-08-16 16:55:02.704288: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:55:02.704377: Inverter 0 scheduled charge enable is False
2026-08-16 16:55:02.704406: Inverter 0 charge windows currently []
2026-08-16 16:55:02.704434: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:55:02.704561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:55:02.704600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:55:02.704637: Inverter 0 scheduled discharge enable is False
2026-08-16 16:55:02.704759: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:55:02.704798: Inverter 0 discharge windows currently []
2026-08-16 16:55:02.704822: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:55:02.704840: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:55:02.704858: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:55:02.777411: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 16:55:02.777546: Plan was last updated on 2026-08-16 16:45:00+01:00 and is now 10.0 minutes old
2026-08-16 16:55:02.777770: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 16:55:02.777815: Best export window [  ]
2026-08-16 16:55:02.778647: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:55:02.781806: Load divergence over 8.0 hours mean 593.61W, min 345.6W, max 1060.8W, std dev 216.88W, divergence 18.27%
2026-08-16 16:55:02.797542: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:55:02.797643: LoadML is_calculating False
2026-08-16 16:55:02.797700: Creating pool of 12 processes to match your CPU count
2026-08-16 16:55:02.908272: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 668.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.86kWh, PV 0.0kWh
2026-08-16 16:55:03.048251: Battery has 20.17 hours left - now at 11.2kWh
2026-08-16 16:55:03.103622: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 697.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.98kWh, PV 0.0kWh
2026-08-16 16:55:03.193151: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 519.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.98kWh, PV 0.0kWh
2026-08-16 16:55:03.272992: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 511.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.86kWh, PV 0.0kWh
2026-08-16 16:55:03.273081: Saving plan best values to HA entities
2026-08-16 16:55:03.469502: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:55:03.475190: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:55:03.481189: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.25kWh, house 6.71kWh, export 0.0kWh, metric 511.04p, metric10 519.12p
2026-08-16 16:55:03.563179: Marginal costs baseline metric (no standing charge): 417.7745
2026-08-16 16:55:03.855997: Marginal energy costs matrix computed: min=8.0 max=24.35
2026-08-16 16:55:03.931747: Rate array import [{'start': 1015, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1015, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:55:03.932408: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 16:55:03.932448: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:55:03.932468: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:55:03.932482: - For the next 48 hours there will be no solar generation.
2026-08-16 16:55:03.932496: - You will run out of battery in 31 hours.
2026-08-16 16:55:03.932529: - Your car is currently charging.
2026-08-16 16:55:03.932545: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p) and your car will be charged with 0.36 kWh.
2026-08-16 16:55:03.932560: 
2026-08-16 16:55:03.993866: Plan calculation took 1.22 seconds
2026-08-16 16:55:03.998237: No high rate period found
2026-08-16 16:55:04.056871: Import threshold used for optimisation was 8.0p
2026-08-16 16:55:04.117094: Low import rate windows [0: 08-16 16:30:00 - 08-16 17:00:00 @ 8.0, 1: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 2: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 3: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 4: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 5: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 6: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 7: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 8: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 9: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 10: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 11: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 12: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 13: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 16:55:04.125609: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:55:04.125789: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:55:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:55:04.125968: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:55:04.126327: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:55:04.126471: No export window planned
2026-08-16 16:55:04.126722: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:55:04.126772: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:55:04.126932: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:55:04.127051: Car charging from battery is off, next slot for car 0 is 08-16 16:55:00 - 08-16 17:00:00
2026-08-16 16:55:04.127138: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:55:04.127232: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:55:04.127293: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:55:04.127358: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:55:04.127461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127744: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127777: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127810: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127864: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.127960: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128012: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128253: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:04.128422: Inverter 0 count register writes 0
2026-08-16 16:55:04.146892: 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-16 16:55:04.147118: Recompute is saving previous plan...
2026-08-16 16:55:04.148233: Best charge window [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 16:55:04.148291: Best export window [  ]
2026-08-16 16:55:04.149309: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 16:55:04.152727: Load divergence over 8.0 hours mean 593.61W, min 345.6W, max 1060.8W, std dev 216.88W, divergence 18.27%
2026-08-16 16:55:04.176893: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 16:55:04.177735: LoadML is_calculating False
2026-08-16 16:55:04.177843: Creating pool of 12 processes to match your CPU count
2026-08-16 16:55:04.266206: 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(0.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-16 16:55:04.267084: Optimise levels pass started at 2026-08-16 16:55:04
2026-08-16 16:55:04.267143: Optimise all windows, total charge 26 export 1
2026-08-16 16:55:04.684783: >> Region optimisation pass width 960 gives best_metric 482.36p, best_cost 526.73p, best_cycle 41.72kWh, best_import 29.59kWh
2026-08-16 16:55:04.850567: >> Region optimisation pass width 480 gives best_metric 482.36p, best_cost 526.73p, best_cycle 41.72kWh, best_import 29.59kWh
2026-08-16 16:55:05.154519: >> Region optimisation pass width 240 gives best_metric 482.36p, best_cost 526.73p, best_cycle 41.72kWh, best_import 29.59kWh
2026-08-16 16:55:05.797717: >> Region optimisation pass width 120 gives best_metric 482.36p, best_cost 526.73p, best_cycle 41.72kWh, best_import 29.59kWh
2026-08-16 16:55:05.797919: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 22
2026-08-16 16:55:05.797975: Optimise levels pass ended at 2026-08-16 16:55:05, duration 1.5 seconds tried 73 combinations
2026-08-16 16:55:05.798058: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 482.36p, best_keep 0kWh, best_cycle 41.72kWh, best_carbon 0kg, best_import 29.59kWh
2026-08-16 16:55:05.821439: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 16:55:09.714639: Tweak plan optimisation started metric 403.92p, cost 410.25p
2026-08-16 16:55:10.062763: Tweak optimisation finished metric 403.92p, cost 410.25p, metric_keep 0kWh, cycle 23.24kWh, carbon 0kg, import 15.03kWh, changed 8 window(s)
2026-08-16 16:55:10.087061: Swap charge optimisation started metric 403.92p, cost 410.25p, min_improvement_swap 0.1p
2026-08-16 16:55:10.873963: Swap charge optimisation finished metric 403.92p, cost 410.25p
2026-08-16 16:55:10.937583: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 402.55p -> 402.55p, plan now metric 408.32p, cost 410.24p, cycle 23.23kWh, import 15.02kWh
2026-08-16 16:55:10.947643: Raw charge windows [ 16-08 16:30:00 - 16-08 17:00:00 @ 8.0p 0%, 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 86%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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 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% ] reserve 1.12
2026-08-16 16:55:10.947905: Unclipped charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:55:10.948074: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:55:10.948200: Filtered charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 16:55:10.985277: Previous plan best metric is 403.92 (cost 410.25) and new plan best metric is 403.92 (cost 410.25)
2026-08-16 16:55:10.985477: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 16:55:10.985655: Plan valid is now true after recompute was False
2026-08-16 16:55:11.015152: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 667.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.75kWh, PV 0.0kWh
2026-08-16 16:55:11.146386: Battery has 20.17 hours left - now at 11.2kWh
2026-08-16 16:55:11.208607: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 696.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.87kWh, PV 0.0kWh
2026-08-16 16:55:11.285375: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.87kWh, PV 0.0kWh
2026-08-16 16:55:11.369780: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.75kWh, PV 0.0kWh
2026-08-16 16:55:11.369877: Saving plan best values to HA entities
2026-08-16 16:55:11.516116: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 16:55:11.521295: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 16:55:11.526446: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.31kWh, house 6.71kWh, export 0.0kWh, metric 503.51p, metric10 512.67p
2026-08-16 16:55:11.603289: Marginal costs baseline metric (no standing charge): 410.247
2026-08-16 16:55:11.896070: Marginal energy costs matrix computed: min=8.0 max=24.35
2026-08-16 16:55:11.966871: Rate array import [{'start': 1015, 'end': 1020, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1015, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 16:55:11.967625: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 16:55:11.967674: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 6 and a half hours.
2026-08-16 16:55:11.967698: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 16:55:11.967717: - For the next 48 hours there will be no solar generation.
2026-08-16 16:55:11.967734: - You will run out of battery in 31 hours.
2026-08-16 16:55:11.967751: - Your car is currently charging.
2026-08-16 16:55:11.967768: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p) and your car will be charged with 0.36 kWh.
2026-08-16 16:55:11.967789: 
2026-08-16 16:55:12.024646: Plan calculation took 7.88 seconds
2026-08-16 16:55:12.025066: Inverter 0: Type SK Sunsynk
2026-08-16 16:55:12.025126: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 16:55:12.025361: Reserve min: 7%, battery_min: 7%
2026-08-16 16:55:12.025441: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 16:55:12.025766: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -485W, load power 485W, PV Power 0W
2026-08-16 16:55:12.026013: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:55:12.026121: Inverter 0 scheduled charge enable is False
2026-08-16 16:55:12.026157: Inverter 0 charge windows currently []
2026-08-16 16:55:12.026188: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 16:55:12.026303: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:55:12.026343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:55:12.026379: Inverter 0 scheduled discharge enable is False
2026-08-16 16:55:12.026536: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:55:12.026576: Inverter 0 discharge windows currently []
2026-08-16 16:55:12.026600: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:55:12.026621: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:55:12.026639: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:55:12.079063: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 16:55:12.079262: Inverter 0 disabled charge window while waiting for schedule (now 08-16 16:55:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 16:55:12.079358: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:55:12.079582: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:55:12.079685: No export window planned
2026-08-16 16:55:12.079778: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 16:55:12.079807: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 16:55:12.079960: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 16:55:12.080057: Car charging from battery is off, next slot for car 0 is 08-16 16:55:00 - 08-16 17:00:00
2026-08-16 16:55:12.080113: Disabling battery discharge whilst car 0 is charging
2026-08-16 16:55:12.080191: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 16:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 16:55:12.080236: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 16:55:12.080286: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 16:55:12.080384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080605: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080634: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080656: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080677: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080697: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080723: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080744: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.080938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 16:55:12.081000: Inverter 0 count register writes 0
2026-08-16 16:55:12.102316: Total inverter register writes now 841
2026-08-16 16:55:12.137357: Info: Completed run status Hold for car
2026-08-16 16:55:12.149905: Info: record_status Hold for car
2026-08-16 16:55:12.158903: Saved current settings to /config/predbat_config.json
2026-08-16 16:55:12.159344: Compare, best tariff: current metric 318.25p
2026-08-16 16:55:49.277160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:55:49.277469: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:55:49.277554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:55:49.277781: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:55:49.277830: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:55:49.277857: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:55:49.277894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 16:58:03.537185: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 16:58:03.537492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 16:58:03.537572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 16:58:03.537740: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 16:58:03.537809: Note: Inverter does not support discharge freeze - disabled
2026-08-16 16:58:03.537832: Note: Inverter does not support charge freeze - disabled
2026-08-16 16:58:03.537850: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:00:00.768991: --------------- PredBat - update at 2026-08-16 17:00:00+01:00 with clock skew 0 minutes, minutes now 1020
2026-08-16 17:00:00.769865: Saved current settings to /config/predbat_config.json
2026-08-16 17:00:00.770010: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 17:00:00.770088: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:00:00.770185: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:00:00.789549: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:00:00.789686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:00:00.789858: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:00:00.790371: Cars 1 charging from battery False 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-16 17:00:00.790493: Predbat mode is set to Control charge & discharge
2026-08-16 17:00:00.998844: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:00:00.999105: Using load_power data to fill gaps in load_today data
2026-08-16 17:00:01.849798: Processing 721 30-minute periods for power integration
2026-08-16 17:00:02.050801: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:00:02.051124: Car charging hold False, threshold 6.0kWh
2026-08-16 17:00:02.051189: Current data so far today: load 8.43kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:00:02.075335: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:00:02.076642: Standing charge is set to 46.63p
2026-08-16 17:00:02.185015: 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-16 17:00:02.185296: 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-16 17:00:02.185491: 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-16 17:00:02.185702: 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-16 17:00:02.185883: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186065: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186164: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186247: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186334: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186411: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186493: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186594: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186670: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186842: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:00:02.186902: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:00:02.192600: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:00:02.193115: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:00:02.238879: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:00:02.239023: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:00:02.240353: High export rate found rates in range 99p to -99p
2026-08-16 17:00:02.274060: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:00:02.274299: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:00:02.274905: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:00:02.292556: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 17:00:02.292932: Last hour: net energy 0.18kWh, import 0.18kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 4.13p, import 4.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:00:02.369544: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 290.05p, import 243.41p, export 0.0p, carbon 0.0kg
2026-08-16 17:00:02.369684: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:00:02.478043: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:00:02.507850: Today's load divergence 86.22%, in-day adjustment 85.76%, damping 0.95x, yesterday 82.97% today 86.91% blend 29.17%
2026-08-16 17:00:02.507955: Today's predicted so far 10.31kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.31kWh forecast extra.
2026-08-16 17:00:02.507989: Today's actual load so far 8.44kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 17:00:02.543685: 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.7, 'source': 'SMART'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, '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.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.0665, 'source': 'SMART'}]]
2026-08-16 17:00:02.544346: Sensor changes require a replan, will recompute the plan
2026-08-16 17:00:02.544563: Inverter 0: Type SK Sunsynk
2026-08-16 17:00:02.544613: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:00:02.544833: Reserve min: 7%, battery_min: 7%
2026-08-16 17:00:02.544919: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:00:02.545279: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -442W, load power 442W, PV Power 0W
2026-08-16 17:00:02.545492: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:00:02.545631: Inverter 0 scheduled charge enable is False
2026-08-16 17:00:02.545687: Inverter 0 charge windows currently []
2026-08-16 17:00:02.545731: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:00:02.545909: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:00:02.545954: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:00:02.546006: Inverter 0 scheduled discharge enable is False
2026-08-16 17:00:02.546193: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:00:02.546236: Inverter 0 discharge windows currently []
2026-08-16 17:00:02.546265: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:00:02.546308: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:00:02.546342: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:00:02.625871: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:00:02.625962: Will recompute the plan as it is invalid
2026-08-16 17:00:02.626068: Recompute is saving previous plan...
2026-08-16 17:00:02.627037: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:00:02.627089: Best export window [  ]
2026-08-16 17:00:02.627937: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:00:02.631134: Load divergence over 8.0 hours mean 593.59W, min 322.8W, max 1100.4W, std dev 218.0W, divergence 18.36%
2026-08-16 17:00:02.650169: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:00:02.650321: LoadML is_calculating False
2026-08-16 17:00:02.650388: Creating pool of 12 processes to match your CPU count
2026-08-16 17:00:02.749733: 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(0.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-16 17:00:02.750468: Optimise levels pass started at 2026-08-16 17:00:02
2026-08-16 17:00:02.750541: Optimise all windows, total charge 25 export 1
2026-08-16 17:00:03.224291: >> Region optimisation pass width 960 gives best_metric 482.64p, best_cost 526.7p, best_cycle 41.77kWh, best_import 29.58kWh
2026-08-16 17:00:03.411650: >> Region optimisation pass width 480 gives best_metric 482.64p, best_cost 526.7p, best_cycle 41.77kWh, best_import 29.58kWh
2026-08-16 17:00:03.815079: >> Region optimisation pass width 240 gives best_metric 482.32p, best_cost 522.5p, best_cycle 42.32kWh, best_import 29.06kWh
2026-08-16 17:00:04.986550: >> Region optimisation pass width 120 gives best_metric 478.68p, best_cost 494.78p, best_cycle 42.89kWh, best_import 25.59kWh
2026-08-16 17:00:04.986781: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:00:04.986847: Optimise levels pass ended at 2026-08-16 17:00:04, duration 2.2 seconds tried 91 combinations
2026-08-16 17:00:04.986920: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 478.68p, best_keep 0kWh, best_cycle 42.89kWh, best_carbon 0kg, best_import 25.59kWh
2026-08-16 17:00:05.011056: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 4.75, 4.75, 13.75, 13.75, 13.75, 0, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:00:08.917051: Tweak plan optimisation started metric 403.9p, cost 410.22p
2026-08-16 17:00:09.290038: Tweak optimisation finished metric 403.9p, cost 410.22p, metric_keep 0kWh, cycle 23.25kWh, carbon 0kg, import 15.02kWh, changed 8 window(s)
2026-08-16 17:00:09.319033: Swap charge optimisation started metric 403.9p, cost 410.22p, min_improvement_swap 0.1p
2026-08-16 17:00:10.239232: Swap charge optimisation finished metric 403.9p, cost 410.22p
2026-08-16 17:00:10.305094: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:00:10.305468: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:00:10.305705: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:00:10.305881: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:00:10.351987: Previous plan best metric is 403.9 (cost 410.22) and new plan best metric is 403.9 (cost 410.22)
2026-08-16 17:00:10.352472: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:00:10.352732: Plan valid is now true after recompute was False
2026-08-16 17:00:10.385675: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 669.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.87kWh, PV 0.0kWh
2026-08-16 17:00:10.779491: Battery has 20.0 hours left - now at 11.2kWh
2026-08-16 17:00:10.840668: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 697.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.99kWh, PV 0.0kWh
2026-08-16 17:00:10.943863: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.99kWh, PV 0.0kWh
2026-08-16 17:00:11.022236: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.87kWh, PV 0.0kWh
2026-08-16 17:00:11.022326: Saving plan best values to HA entities
2026-08-16 17:00:11.217426: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 17:00:11.223112: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:00:11.228865: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.32kWh, house 6.7kWh, export 0.0kWh, metric 503.49p, metric10 512.67p
2026-08-16 17:00:11.314386: Marginal costs baseline metric (no standing charge): 410.2185
2026-08-16 17:00:11.669157: Marginal energy costs matrix computed: min=8.0 max=24.36
2026-08-16 17:00:11.808167: Rate array import [{'start': 1020, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1020, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:00:11.809008: - Your estimated bill for today is £2.94 and tomorrow is £1.38
2026-08-16 17:00:11.809074: - Import rates are very expensive (33.8p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:00:11.809100: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 17:00:11.809119: - For the next 48 hours there will be no solar generation.
2026-08-16 17:00:11.809136: - You will run out of battery in 31 hours.
2026-08-16 17:00:11.809160: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:00:11.809177: 
2026-08-16 17:00:11.871567: Plan calculation took 9.25 seconds
2026-08-16 17:00:11.876633: Saved plan to storage
2026-08-16 17:00:11.880259: No high rate period found
2026-08-16 17:00:11.933855: Import threshold used for optimisation was 8.0p
2026-08-16 17:00:11.990109: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:00:11.997445: Inverter 0: Type SK Sunsynk
2026-08-16 17:00:11.997556: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:00:11.997777: Reserve min: 7%, battery_min: 7%
2026-08-16 17:00:11.997858: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:00:11.998169: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -446W, load power 446W, PV Power 0W
2026-08-16 17:00:11.998405: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:00:11.998508: Inverter 0 scheduled charge enable is False
2026-08-16 17:00:11.998563: Inverter 0 charge windows currently []
2026-08-16 17:00:11.998596: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:00:11.998715: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:00:11.998756: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:00:11.998793: Inverter 0 scheduled discharge enable is False
2026-08-16 17:00:11.998924: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:00:11.998962: Inverter 0 discharge windows currently []
2026-08-16 17:00:11.998984: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:00:11.999007: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:00:11.999024: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:00:12.059896: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 17:00:12.060053: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:00:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:00:12.060124: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:00:12.060319: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:00:12.060403: No export window planned
2026-08-16 17:00:12.060516: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:00:12.060646: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:00:12.060853: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:00:12.061030: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-16 17:00:17.068894: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-16 17:00:22.101572: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-16 17:00:22.101920: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:00:22.102017: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:00:22.102120: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:00:22.102297: 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-16 17:00:22.187146: 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-16 17:00:22.292174: 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-16 17:00:22.397767: 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-16 17:00:22.401496: 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-16 17:00:22.450711: 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-16 17:00:22.494781: 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-16 17:00:22.539723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.539839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.539891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.539933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.539976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.540054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.540099: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:00:22.540139: Inverter 0 count register writes 1
2026-08-16 17:00:22.562348: Total inverter register writes now 842
2026-08-16 17:00:22.594830: Info: Completed run status Demand
2026-08-16 17:00:22.916933: Info: record_status Demand
2026-08-16 17:00:22.925975: Saved current settings to /config/predbat_config.json
2026-08-16 17:00:22.926352: Compare, best tariff: current metric 318.25p
2026-08-16 17:00:53.485091: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 17:00:54.543559: Processing 1345 30-minute periods for power integration
2026-08-16 17:00:54.642193: ML Component: Car charging hold False, car energy reported load False
2026-08-16 17:00:54.729679: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:00:54.808847: ML Temperature data points: 49381
2026-08-16 17:00:55.088727: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 17:00:55.130583: ML Component: Data fetch completed, load data age 58.0 days, 16740 data points
2026-08-16 17:00:55.130713: ML Component: Starting fine-tune training (2h interval), model age is 2.0425008122222224 hours
2026-08-16 17:00:55.130740: ML Component: Doing training...
2026-08-16 17:00:55.146218: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 17:00:55.146329: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.1 days)
2026-08-16 17:00:55.200360: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 17:00:55.200472: ML Predictor: Starting initial training with 30 epochs
2026-08-16 17:00:55.862829: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 17:01:00.897373: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 17:01:00.974851: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0482) load(mean=0.0588 std=0.0469) 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-16 17:01:03.353121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:01:03.353401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:01:03.353809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:01:03.354077: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:01:03.354129: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:01:03.354153: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:01:03.354272: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:01:38.914738: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0136 val_mae=0.0046 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-16 17:02:19.083579: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0248 val_mae=0.0053 kWh val_bias=-0.0020 kWh (-2.8%) combined=0.0037 kWh ema_combined=0.0032 kWh
2026-08-16 17:03:02.560252: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0182 val_mae=0.0047 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0035 kWh ema_combined=0.0033 kWh
2026-08-16 17:03:03.890382: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:03:03.890654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:03:03.890708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:03:03.890878: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:03:03.890927: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:03:03.890955: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:03:03.890980: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:03:44.796099: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0187 val_mae=0.0047 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0025 kWh ema_combined=0.0030 kWh
2026-08-16 17:04:18.899734: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0156 val_mae=0.0042 kWh val_bias=-0.0018 kWh (-2.5%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-16 17:04:54.428228: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0124 val_mae=0.0043 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-16 17:05:00.489381: --------------- PredBat - update at 2026-08-16 17:05:00+01:00 with clock skew 0 minutes, minutes now 1025
2026-08-16 17:05:00.490362: Saved current settings to /config/predbat_config.json
2026-08-16 17:05:00.490507: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 17:05:00.490615: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:05:00.490733: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:05:00.571195: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:05:00.571515: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:05:00.573207: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:05:00.573824: Cars 1 charging from battery False 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-16 17:05:00.573957: Predbat mode is set to Control charge & discharge
2026-08-16 17:05:00.939604: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:05:00.939898: Using load_power data to fill gaps in load_today data
2026-08-16 17:05:02.661844: Processing 721 30-minute periods for power integration
2026-08-16 17:05:02.909498: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:05:02.909669: Car charging hold False, threshold 6.0kWh
2026-08-16 17:05:02.909718: Current data so far today: load 8.45kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:05:02.928665: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:05:02.929894: Standing charge is set to 46.63p
2026-08-16 17:05:03.242666: 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-16 17:05:03.242951: 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-16 17:05:03.243126: 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-16 17:05:03.243292: 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-16 17:05:03.244926: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245289: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245402: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245490: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245601: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245682: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245759: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.245854: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.246058: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.246262: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:05:03.246445: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:05:03.254448: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:05:03.255445: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:05:03.305919: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:05:03.306179: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:05:03.307389: High export rate found rates in range 99p to -99p
2026-08-16 17:05:03.340587: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:05:03.340881: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:05:03.341470: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:05:03.362407: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 17:05:03.362813: Last hour: net energy 0.17kWh, import 0.17kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 3.56p, import 3.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:05:03.490141: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 290.04p, import 243.41p, export 0.0p, carbon 0.0kg
2026-08-16 17:05:03.490491: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:05:03.770547: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:05:03.838149: Today's load divergence 86.18%, in-day adjustment 85.75%, damping 0.95x, yesterday 82.97% today 86.87% blend 28.82%
2026-08-16 17:05:03.838576: Today's predicted so far 10.4kWh with 0.0kWh car/iBoost excluded, 6.11kWh import ignored, and 10.4kWh forecast extra.
2026-08-16 17:05:03.838624: Today's actual load so far 8.53kWh with 0.0kWh car/iBoost excluded, and 6.11kWh import ignored.
2026-08-16 17:05:03.960742: Inverter 0: Type SK Sunsynk
2026-08-16 17:05:03.960986: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:05:03.961306: Reserve min: 7%, battery_min: 7%
2026-08-16 17:05:03.961506: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:05:03.961908: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 317W, current battery voltage 51.2V, grid power -55W, load power 380W, PV Power 0W
2026-08-16 17:05:03.962175: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:05:03.962360: Inverter 0 scheduled charge enable is False
2026-08-16 17:05:03.962492: Inverter 0 charge windows currently []
2026-08-16 17:05:03.962663: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:05:03.962892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:05:03.963017: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:05:03.963145: Inverter 0 scheduled discharge enable is False
2026-08-16 17:05:03.963386: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:05:03.963512: Inverter 0 discharge windows currently []
2026-08-16 17:05:03.963644: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:05:03.963747: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:05:03.963847: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:05:04.114354: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:05:04.114477: Plan was last updated on 2026-08-16 17:00:00+01:00 and is now 5.0 minutes old
2026-08-16 17:05:04.114717: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:05:04.114765: Best export window [  ]
2026-08-16 17:05:04.115748: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:05:04.124425: Load divergence over 8.0 hours mean 592.81W, min 318.6W, max 1131.0W, std dev 225.09W, divergence 18.99%
2026-08-16 17:05:04.162837: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:05:04.162986: LoadML is_calculating True
2026-08-16 17:05:04.163021: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:05:04.327847: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 668.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.91kWh, PV 0.0kWh
2026-08-16 17:05:04.598798: Battery has 19.92 hours left - now at 11.2kWh
2026-08-16 17:05:04.756622: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 696.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.03kWh, PV 0.0kWh
2026-08-16 17:05:04.882070: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 515.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.03kWh, PV 0.0kWh
2026-08-16 17:05:05.164347: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 506.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.91kWh, PV 0.0kWh
2026-08-16 17:05:05.164473: Saving plan best values to HA entities
2026-08-16 17:05:05.682115: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:05:05.703261: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:05:05.712024: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.76kWh, house 6.69kWh, export 0.0kWh, metric 506.87p, metric10 515.46p
2026-08-16 17:05:05.999925: Marginal costs baseline metric (no standing charge): 413.5986
2026-08-16 17:05:06.581123: Marginal energy costs matrix computed: min=8.0 max=24.21
2026-08-16 17:05:06.811298: Rate array import [{'start': 1025, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1025, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:05:06.813650: - Your estimated bill for today is £2.94 and tomorrow is £1.38
2026-08-16 17:05:06.813731: - Import rates are very expensive (33.8p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:05:06.813827: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 17:05:06.813862: - For the next 48 hours there will be no solar generation.
2026-08-16 17:05:06.814033: - You will run out of battery in 31 hours.
2026-08-16 17:05:06.814066: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:05:06.814095: 
2026-08-16 17:05:06.872482: Plan calculation took 2.76 seconds
2026-08-16 17:05:06.879297: No high rate period found
2026-08-16 17:05:06.989148: Import threshold used for optimisation was 8.0p
2026-08-16 17:05:07.120640: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:05:07.139092: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 17:05:07.139418: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:05:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:05:07.139575: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:05:07.139862: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:05:07.140002: No export window planned
2026-08-16 17:05:07.140190: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:05:07.140741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:05:07.141203: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:05:07.141582: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:05:07.141763: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:05:07.141979: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:05:07.142203: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.142419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.142606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.142803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.142988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.143121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.143240: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.143449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.143780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.143972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.144107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.144356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.144590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.144768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:05:07.144989: Inverter 0 count register writes 0
2026-08-16 17:05:07.224647: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 17:05:07.239968: Total inverter register writes now 842
2026-08-16 17:05:07.303300: Info: Completed run status Demand
2026-08-16 17:05:07.329012: Info: record_status Demand
2026-08-16 17:05:07.346965: Saved current settings to /config/predbat_config.json
2026-08-16 17:05:07.349241: Compare, best tariff: current metric 318.25p
2026-08-16 17:05:32.901831: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0111 val_mae=0.0039 kWh val_bias=+0.0014 kWh (+1.9%) combined=0.0026 kWh ema_combined=0.0028 kWh
2026-08-16 17:05:48.593651: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:05:48.594074: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:05:48.594137: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:05:48.594426: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:05:48.594484: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:05:48.594630: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:05:48.594711: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:06:06.756566: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0109 val_mae=0.0033 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 17:06:41.997550: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0099 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 17:07:16.856256: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0038 kWh val_bias=-0.0018 kWh (-2.5%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-16 17:07:49.130974: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:07:49.131284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:07:49.131365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:07:49.131559: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:07:49.131611: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:07:49.131639: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:07:49.131664: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:07:50.973689: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0091 val_mae=0.0035 kWh val_bias=-0.0022 kWh (-3.1%) combined=0.0036 kWh ema_combined=0.0029 kWh
2026-08-16 17:08:24.540212: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-2.0%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-16 17:08:57.731416: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0030 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0019 kWh ema_combined=0.0025 kWh
2026-08-16 17:09:31.879862: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-16 17:10:00.787585: --------------- PredBat - update at 2026-08-16 17:10:00+01:00 with clock skew 0 minutes, minutes now 1030
2026-08-16 17:10:00.796273: Saved current settings to /config/predbat_config.json
2026-08-16 17:10:00.796560: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 17:10:00.816612: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:10:00.816786: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:10:00.853489: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:10:00.853702: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:10:00.854287: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:10:00.855051: Cars 1 charging from battery False 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-16 17:10:00.855281: Predbat mode is set to Control charge & discharge
2026-08-16 17:10:01.150708: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:10:01.150931: Using load_power data to fill gaps in load_today data
2026-08-16 17:10:02.864750: Processing 721 30-minute periods for power integration
2026-08-16 17:10:03.074256: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:10:03.074556: Car charging hold False, threshold 6.0kWh
2026-08-16 17:10:03.074696: Current data so far today: load 8.55kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:10:03.098677: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:10:03.099797: Standing charge is set to 46.63p
2026-08-16 17:10:03.426564: 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-16 17:10:03.427286: 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-16 17:10:03.427825: 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-16 17:10:03.428196: 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-16 17:10:03.428594: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.428987: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.429185: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.429361: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.429537: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.429699: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.429854: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.430016: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.430194: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.430554: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:10:03.430663: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:10:03.439392: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:10:03.439847: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:10:03.537810: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:10:03.538168: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:10:03.539678: High export rate found rates in range 99p to -99p
2026-08-16 17:10:03.575543: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:10:03.576136: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:10:03.576909: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:10:03.610487: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 17:10:03.611066: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 4.58p, import 4.58p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:10:03.773156: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:10:03.773495: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:10:04.049857: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:10:04.092549: Today's load divergence 86.64%, in-day adjustment 86.07%, damping 0.95x, yesterday 82.97% today 87.31% blend 28.47%
2026-08-16 17:10:04.094250: Today's predicted so far 10.4kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 10.4kWh forecast extra.
2026-08-16 17:10:04.096206: Today's actual load so far 8.59kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 17:10:04.160325: Inverter 0: Type SK Sunsynk
2026-08-16 17:10:04.160423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:10:04.160628: Reserve min: 7%, battery_min: 7%
2026-08-16 17:10:04.160708: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:10:04.161035: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 285W, current battery voltage 51.2V, grid power -55W, load power 348W, PV Power 0W
2026-08-16 17:10:04.161202: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:10:04.161291: Inverter 0 scheduled charge enable is False
2026-08-16 17:10:04.161329: Inverter 0 charge windows currently []
2026-08-16 17:10:04.161357: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:10:04.161471: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:10:04.161508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:10:04.161565: Inverter 0 scheduled discharge enable is False
2026-08-16 17:10:04.161695: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:10:04.161734: Inverter 0 discharge windows currently []
2026-08-16 17:10:04.161758: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:10:04.161780: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:10:04.161799: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:10:04.346635: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:10:04.346890: Plan was last updated on 2026-08-16 17:00:00+01:00 and is now 10.0 minutes old
2026-08-16 17:10:04.347223: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:10:04.347275: Best export window [  ]
2026-08-16 17:10:04.348357: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:10:04.352772: Load divergence over 8.0 hours mean 598.87W, min 315.0W, max 1105.2W, std dev 226.31W, divergence 18.89%
2026-08-16 17:10:04.408898: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:10:04.409184: LoadML is_calculating True
2026-08-16 17:10:04.409318: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:10:04.527065: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 669.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 32.04kWh, PV 0.0kWh
2026-08-16 17:10:04.767347: Battery has 19.92 hours left - now at 11.2kWh
2026-08-16 17:10:04.879779: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 698.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.15kWh, PV 0.0kWh
2026-08-16 17:10:04.977395: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 519.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.15kWh, PV 0.0kWh
2026-08-16 17:10:05.078823: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 511.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 32.04kWh, PV 0.0kWh
2026-08-16 17:10:05.079327: Saving plan best values to HA entities
2026-08-16 17:10:05.425570: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:10:05.450378: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:10:05.458153: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.21kWh, house 6.68kWh, export 0.0kWh, metric 511.83p, metric10 519.89p
2026-08-16 17:10:05.565894: Marginal costs baseline metric (no standing charge): 418.5646
2026-08-16 17:10:06.125095: Marginal energy costs matrix computed: min=8.0 max=24.2
2026-08-16 17:10:06.253598: Rate array import [{'start': 1030, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1030, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:10:06.254864: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 17:10:06.255008: - Import rates are very expensive (33.8p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:10:06.255145: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 17:10:06.255253: - For the next 48 hours there will be no solar generation.
2026-08-16 17:10:06.255365: - You will run out of battery in 30 hours.
2026-08-16 17:10:06.255466: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:10:06.255596: 
2026-08-16 17:10:06.313968: Plan calculation took 1.97 seconds
2026-08-16 17:10:06.319682: No high rate period found
2026-08-16 17:10:06.419509: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0073 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0019 kWh
2026-08-16 17:10:06.438801: Import threshold used for optimisation was 8.0p
2026-08-16 17:10:06.558435: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:10:06.566981: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 17:10:06.567229: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:10:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:10:06.567357: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:10:06.567606: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:10:06.567688: No export window planned
2026-08-16 17:10:06.567789: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:10:06.567826: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:10:06.567966: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:10:06.568117: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:10:06.568176: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:10:06.568222: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:10:06.568305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568346: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568480: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:06.568766: Inverter 0 count register writes 0
2026-08-16 17:10:06.592670: 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-16 17:10:06.592930: Recompute is saving previous plan...
2026-08-16 17:10:06.594075: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:10:06.594140: Best export window [  ]
2026-08-16 17:10:06.595055: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:10:06.599894: Load divergence over 8.0 hours mean 598.87W, min 315.0W, max 1105.2W, std dev 226.31W, divergence 18.89%
2026-08-16 17:10:06.619544: Calculating data from yesterday for savings calculation
2026-08-16 17:10:06.632305: 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-16 17:10:06.702555: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 17:10:06.749652: predict yesterday10 end_record 08-17 00:00:00, final soc 10.18kWh, metric 233.44p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 17:10:06.833801: predict yesterday end_record 08-17 00:00:00, final soc 10.56kWh, metric 236.77p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 17:10:06.905641: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.77kWh, export 0.0kWh, battery_cycle 25.27kWh, start_soc 1.12kWh,  final_soc 10.56kWh and battery_value 72.6kWh
2026-08-16 17:10:07.082787: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.95p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.52kWh, PV 0.0kWh
2026-08-16 17:10:07.082941: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.52kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 17:10:07.108498: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:10:07.123926: LoadML is_calculating True
2026-08-16 17:10:07.123985: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:10:07.135500: 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(0.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-16 17:10:07.154153: Optimise levels pass started at 2026-08-16 17:10:07
2026-08-16 17:10:07.154343: Optimise all windows, total charge 25 export 1
2026-08-16 17:10:10.337366: >> Region optimisation pass width 960 gives best_metric 484.21p, best_cost 527.56p, best_cycle 41.76kWh, best_import 29.51kWh
2026-08-16 17:10:10.555243: >> Region optimisation pass width 480 gives best_metric 484.21p, best_cost 527.56p, best_cycle 41.76kWh, best_import 29.51kWh
2026-08-16 17:10:11.144866: >> Region optimisation pass width 240 gives best_metric 484.21p, best_cost 527.56p, best_cycle 41.76kWh, best_import 29.51kWh
2026-08-16 17:10:15.907972: >> Region optimisation pass width 120 gives best_metric 479.18p, best_cost 483.8p, best_cycle 41.25kWh, best_import 24.04kWh
2026-08-16 17:10:15.921368: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:10:15.921451: Optimise levels pass ended at 2026-08-16 17:10:15, duration 8.8 seconds tried 74 combinations
2026-08-16 17:10:15.921608: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 479.18p, best_keep 0kWh, best_cycle 41.25kWh, best_carbon 0kg, best_import 24.04kWh
2026-08-16 17:10:15.960633: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 13.75, 13.75, 13.75, 0, 0, 0, 9.5, 9.5, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:10:30.608149: Tweak plan optimisation started metric 404.69p, cost 411.02p
2026-08-16 17:10:31.286607: Tweak optimisation finished metric 404.69p, cost 411.02p, metric_keep 0kWh, cycle 23.13kWh, carbon 0kg, import 14.94kWh, changed 8 window(s)
2026-08-16 17:10:31.372661: Swap charge optimisation started metric 404.69p, cost 411.02p, min_improvement_swap 0.1p
2026-08-16 17:10:32.347025: Swap charge optimisation finished metric 404.69p, cost 411.02p
2026-08-16 17:10:32.577814: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:10:32.589375: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:10:32.589777: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:10:32.590039: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:10:32.660384: Previous plan best metric is 404.69 (cost 411.02) and new plan best metric is 404.69 (cost 411.02)
2026-08-16 17:10:32.660773: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:10:32.665105: Plan valid is now true after recompute was False
2026-08-16 17:10:32.724108: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 668.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.93kWh, PV 0.0kWh
2026-08-16 17:10:32.973224: Battery has 19.92 hours left - now at 11.2kWh
2026-08-16 17:10:33.030736: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 697.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.04kWh, PV 0.0kWh
2026-08-16 17:10:33.210143: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 513.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.04kWh, PV 0.0kWh
2026-08-16 17:10:33.464678: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 504.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.93kWh, PV 0.0kWh
2026-08-16 17:10:33.477032: Saving plan best values to HA entities
2026-08-16 17:10:33.821730: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:10:33.830722: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:10:33.862949: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.27kWh, house 6.68kWh, export 0.0kWh, metric 504.28p, metric10 513.41p
2026-08-16 17:10:34.050165: Marginal costs baseline metric (no standing charge): 411.0164
2026-08-16 17:10:34.713889: Marginal energy costs matrix computed: min=8.0 max=24.2
2026-08-16 17:10:34.877624: Rate array import [{'start': 1030, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1030, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:10:34.878485: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 17:10:34.878540: - Import rates are very expensive (33.8p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:10:34.878565: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 17:10:34.878585: - For the next 48 hours there will be no solar generation.
2026-08-16 17:10:34.897036: - You will run out of battery in 30 hours.
2026-08-16 17:10:34.897141: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:10:34.897166: 
2026-08-16 17:10:34.962987: Plan calculation took 28.37 seconds
2026-08-16 17:10:34.963255: Inverter 0: Type SK Sunsynk
2026-08-16 17:10:34.963728: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:10:34.963988: Reserve min: 7%, battery_min: 7%
2026-08-16 17:10:34.964067: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:10:34.964499: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 285W, current battery voltage 51.2V, grid power -55W, load power 348W, PV Power 0W
2026-08-16 17:10:34.964903: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:10:34.965174: Inverter 0 scheduled charge enable is False
2026-08-16 17:10:34.965306: Inverter 0 charge windows currently []
2026-08-16 17:10:34.966850: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:10:34.967177: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:10:34.967325: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:10:34.967456: Inverter 0 scheduled discharge enable is False
2026-08-16 17:10:34.968141: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:10:34.968210: Inverter 0 discharge windows currently []
2026-08-16 17:10:34.968242: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:10:34.968262: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:10:34.968280: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:10:35.087194: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 17:10:35.087559: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:10:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:10:35.087759: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:10:35.088099: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:10:35.088311: No export window planned
2026-08-16 17:10:35.088590: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:10:35.088741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:10:35.089079: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:10:35.089399: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:10:35.090781: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:10:35.090977: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:10:35.091191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.091350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.091498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.091671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.091816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.091961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.092887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.104272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.104942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:10:35.105175: Inverter 0 count register writes 0
2026-08-16 17:10:35.155657: Total inverter register writes now 842
2026-08-16 17:10:35.263280: Info: Completed run status Demand
2026-08-16 17:10:35.281900: Info: record_status Demand
2026-08-16 17:10:35.291101: Saved current settings to /config/predbat_config.json
2026-08-16 17:10:35.291308: Compare, best tariff: current metric 318.25p
2026-08-16 17:10:57.890240: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0067 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 17:11:18.503541: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:11:18.504058: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:11:18.504241: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:11:18.504557: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:11:18.504727: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:11:18.504840: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:11:18.504986: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:11:30.192093: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0068 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-16 17:12:04.955937: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0033 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0024 kWh ema_combined=0.0020 kWh
2026-08-16 17:12:39.143212: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0068 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-16 17:13:14.548238: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=-0.0013 kWh (-1.8%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 17:13:19.060364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:13:19.060847: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:13:19.061065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:13:19.061415: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:13:19.061600: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:13:19.061745: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:13:19.061882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:13:48.663682: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 17:14:11.457319: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 17:14:11.615528: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 17:14:18.532382: Info: HAHistory: Pruning history data started.
2026-08-16 17:14:18.537046: Info: HAHistory: Pruning history data completed.
2026-08-16 17:14:23.868215: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0016 kWh
2026-08-16 17:14:55.899700: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-16 17:15:00.457757: --------------- PredBat - update at 2026-08-16 17:15:00+01:00 with clock skew 0 minutes, minutes now 1035
2026-08-16 17:15:00.458717: Saved current settings to /config/predbat_config.json
2026-08-16 17:15:00.458851: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 17:15:00.458938: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:15:00.463669: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:15:00.536336: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:15:00.536700: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:15:00.537150: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:15:00.537968: Cars 1 charging from battery False 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-16 17:15:00.538441: Predbat mode is set to Control charge & discharge
2026-08-16 17:15:00.943147: Found 21602 load_today datapoints going back 27 days
2026-08-16 17:15:00.943318: Using load_power data to fill gaps in load_today data
2026-08-16 17:15:02.404205: Processing 721 30-minute periods for power integration
2026-08-16 17:15:02.776265: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:15:02.776783: Car charging hold False, threshold 6.0kWh
2026-08-16 17:15:02.776996: Current data so far today: load 8.6kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:15:02.799672: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:15:02.800778: Standing charge is set to 46.63p
2026-08-16 17:15:02.896328: 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-16 17:15:02.896695: 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-16 17:15:02.897013: 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-16 17:15:02.897217: 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-16 17:15:02.897527: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.897853: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.898103: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.899188: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.900942: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901106: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901201: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901364: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901456: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901754: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:15:02.901818: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:15:02.912094: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:15:02.912533: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:15:03.057315: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:15:03.057587: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:15:03.059068: High export rate found rates in range 99p to -99p
2026-08-16 17:15:03.206282: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:15:03.213550: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:15:03.214299: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:15:03.254171: Battery level now 11.2kWh, -1hr ago 11.36kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -6.93p, rate_forward 6.87p
2026-08-16 17:15:03.254749: Last hour: net energy 0.23kWh, import 0.23kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 4.01p, import 4.01p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:15:03.436493: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:15:03.438622: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:15:03.554440: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:15:03.585766: Today's load divergence 86.4%, in-day adjustment 85.92%, damping 0.95x, yesterday 82.97% today 87.08% blend 28.12%
2026-08-16 17:15:03.586162: Today's predicted so far 10.4kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 10.4kWh forecast extra.
2026-08-16 17:15:03.586517: Today's actual load so far 8.56kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 17:15:03.675273: Inverter 0: Type SK Sunsynk
2026-08-16 17:15:03.675376: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:15:03.675604: Reserve min: 7%, battery_min: 7%
2026-08-16 17:15:03.675682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:15:03.675957: Inverter 0 SoC: 11.16kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 343W, PV Power 0W
2026-08-16 17:15:03.676116: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:15:03.676207: Inverter 0 scheduled charge enable is False
2026-08-16 17:15:03.676244: Inverter 0 charge windows currently []
2026-08-16 17:15:03.676273: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:15:03.676389: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:15:03.676428: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:15:03.676463: Inverter 0 scheduled discharge enable is False
2026-08-16 17:15:03.676609: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:15:03.676650: Inverter 0 discharge windows currently []
2026-08-16 17:15:03.676673: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:15:03.676693: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:15:03.676712: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:15:03.853918: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:15:03.854061: Plan was last updated on 2026-08-16 17:10:00+01:00 and is now 5.0 minutes old
2026-08-16 17:15:03.854346: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:15:03.854407: Best export window [  ]
2026-08-16 17:15:03.855705: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:15:03.860659: Load divergence over 8.0 hours mean 606.25W, min 339.6W, max 1153.2W, std dev 230.89W, divergence 19.04%
2026-08-16 17:15:03.882430: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:15:03.882960: LoadML is_calculating True
2026-08-16 17:15:03.883028: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:15:03.929801: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 669.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.99kWh, PV 0.0kWh
2026-08-16 17:15:04.163806: Battery has 19.83 hours left - now at 11.16kWh
2026-08-16 17:15:04.294813: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 697.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 33.1kWh, PV 0.0kWh
2026-08-16 17:15:04.463786: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 516.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.1kWh, PV 0.0kWh
2026-08-16 17:15:04.629131: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 508.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.99kWh, PV 0.0kWh
2026-08-16 17:15:04.629234: Saving plan best values to HA entities
2026-08-16 17:15:04.990811: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:15:05.000441: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:15:05.009586: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.72kWh, house 6.68kWh, export 0.0kWh, metric 508.0p, metric10 516.56p
2026-08-16 17:15:05.368300: Marginal costs baseline metric (no standing charge): 414.7287
2026-08-16 17:15:05.898886: Marginal energy costs matrix computed: min=8.0 max=25.34
2026-08-16 17:15:06.141755: Rate array import [{'start': 1035, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1035, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:15:06.143748: - Your estimated bill for today is £2.96 and tomorrow is £1.37
2026-08-16 17:15:06.143813: - Import rates are very expensive (33.8p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:15:06.143843: - The battery is currently at 70% and is in eco mode for the next 10 hours.
2026-08-16 17:15:06.144014: - For the next 48 hours there will be no solar generation.
2026-08-16 17:15:06.144050: - You will run out of battery in 30 hours.
2026-08-16 17:15:06.144069: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:15:06.144087: 
2026-08-16 17:15:06.188451: Plan calculation took 2.33 seconds
2026-08-16 17:15:06.192031: No high rate period found
2026-08-16 17:15:06.358260: Import threshold used for optimisation was 8.0p
2026-08-16 17:15:06.517471: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:15:06.526200: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-16 17:15:06.526366: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:15:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:15:06.526460: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:15:06.526708: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:15:06.526805: No export window planned
2026-08-16 17:15:06.526933: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:15:06.526977: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:15:06.527149: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:15:06.527332: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:15:06.527393: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:15:06.527570: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:15:06.528820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529109: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529576: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.529854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.530030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.530184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.530309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.530451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.530593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.537871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.538100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:15:06.538249: Inverter 0 count register writes 0
2026-08-16 17:15:06.572166: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 17:15:06.582261: Total inverter register writes now 842
2026-08-16 17:15:06.670286: Info: Completed run status Demand
2026-08-16 17:15:06.678566: Info: record_status Demand
2026-08-16 17:15:06.687170: Saved current settings to /config/predbat_config.json
2026-08-16 17:15:06.687443: Compare, best tariff: current metric 318.25p
2026-08-16 17:15:32.671976: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 17:15:48.873706: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:15:48.874423: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:15:48.874482: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:15:48.875965: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:15:48.876124: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:15:48.876236: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:15:48.876338: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:16:06.993549: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-16 17:16:42.840373: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 17:17:15.209445: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0011 kWh (-1.6%) combined=0.0018 kWh ema_combined=0.0014 kWh
2026-08-16 17:17:50.348294: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 17:18:03.486425: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:18:03.486849: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:18:03.486911: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:18:03.487144: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:18:03.487199: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:18:03.487301: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:18:03.487344: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:18:24.598256: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-16 17:19:00.386871: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 17:19:00.394392: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-16 17:19:00.394820: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-16 17:19:09.841175: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0003 kWh (-0.4%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 17:19:09.869956: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0019 kWh
2026-08-16 17:19:09.953292: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-16 17:19:09.953421: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 17:19:10.640091: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 17:19:17.177694: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 17:19:17.235122: 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.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-16 17:19:17.326376: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 17:19:17.341907: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 17:19:17.399876: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=-0.0005 kWh
2026-08-16 17:19:50.142339: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0096 val_mae=0.0048 kWh val_bias=+0.0010 kWh (+1.1%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 17:20:00.643808: --------------- PredBat - update at 2026-08-16 17:20:00+01:00 with clock skew 0 minutes, minutes now 1040
2026-08-16 17:20:00.645112: Saved current settings to /config/predbat_config.json
2026-08-16 17:20:00.645476: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 17:20:00.645713: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:20:00.646047: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:20:00.703932: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:20:00.704142: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:20:00.704612: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:20:00.705371: Cars 1 charging from battery False 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-16 17:20:00.705646: Predbat mode is set to Control charge & discharge
2026-08-16 17:20:01.183029: Found 21602 load_today datapoints going back 27 days
2026-08-16 17:20:01.183384: Using load_power data to fill gaps in load_today data
2026-08-16 17:20:02.863516: Processing 721 30-minute periods for power integration
2026-08-16 17:20:03.145752: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:20:03.145944: Car charging hold False, threshold 6.0kWh
2026-08-16 17:20:03.146001: Current data so far today: load 8.5kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:20:03.179271: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:20:03.181465: Standing charge is set to 46.63p
2026-08-16 17:20:03.393064: 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-16 17:20:03.393486: 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-16 17:20:03.393765: 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-16 17:20:03.394021: 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-16 17:20:03.394263: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.394519: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.394660: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.394807: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.394950: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395064: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395205: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395344: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395479: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395728: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:20:03.395797: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:20:03.401332: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:20:03.401916: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:20:03.452406: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:20:03.453112: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:20:03.454546: High export rate found rates in range 99p to -99p
2026-08-16 17:20:03.493033: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:20:03.493400: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:20:03.494003: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:20:03.516038: Battery level now 11.16kWh, -1hr ago 11.33kWh, at midnight 12.21kWh, battery value change in the last hour -1.15p, change today -7.2p, rate_forward 6.87p
2026-08-16 17:20:03.516590: Last hour: net energy 0.22kWh, import 0.22kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 3.45p, import 3.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:20:03.636631: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:20:03.637034: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:20:03.806247: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:20:03.933727: Today's load divergence 85.47%, in-day adjustment 85.3%, damping 0.95x, yesterday 82.97% today 86.2% blend 27.78%
2026-08-16 17:20:03.950241: Today's predicted so far 10.42kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 10.42kWh forecast extra.
2026-08-16 17:20:03.950526: Today's actual load so far 8.47kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 17:20:04.017661: Inverter 0: Type SK Sunsynk
2026-08-16 17:20:04.018478: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:20:04.018976: Reserve min: 7%, battery_min: 7%
2026-08-16 17:20:04.019244: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:20:04.019820: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -55W, load power 342W, PV Power 0W
2026-08-16 17:20:04.020244: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:20:04.020527: Inverter 0 scheduled charge enable is False
2026-08-16 17:20:04.020695: Inverter 0 charge windows currently []
2026-08-16 17:20:04.021998: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:20:04.022263: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:20:04.022309: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:20:04.022359: Inverter 0 scheduled discharge enable is False
2026-08-16 17:20:04.022553: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:20:04.022598: Inverter 0 discharge windows currently []
2026-08-16 17:20:04.022625: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:20:04.022644: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:20:04.022661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:20:04.122143: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:20:04.122283: Plan was last updated on 2026-08-16 17:10:00+01:00 and is now 10.0 minutes old
2026-08-16 17:20:04.122584: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:20:04.122638: Best export window [  ]
2026-08-16 17:20:04.124057: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:20:04.128929: Load divergence over 8.0 hours mean 609.4W, min 354.0W, max 1047.6W, std dev 221.03W, divergence 18.13%
2026-08-16 17:20:04.159624: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:20:04.159776: LoadML is_calculating True
2026-08-16 17:20:04.159809: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:20:04.216895: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 670.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.85kWh, PV 0.0kWh
2026-08-16 17:20:04.477666: Battery has 19.67 hours left - now at 11.04kWh
2026-08-16 17:20:04.580629: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 698.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.96kWh, PV 0.0kWh
2026-08-16 17:20:04.762477: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 519.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.96kWh, PV 0.0kWh
2026-08-16 17:20:04.935924: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 511.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.85kWh, PV 0.0kWh
2026-08-16 17:20:04.936028: Saving plan best values to HA entities
2026-08-16 17:20:05.317212: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:20:05.339936: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:20:05.347605: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.23kWh, house 6.68kWh, export 0.0kWh, metric 511.98p, metric10 519.98p
2026-08-16 17:20:05.599560: Marginal costs baseline metric (no standing charge): 418.712
2026-08-16 17:20:06.021150: Marginal energy costs matrix computed: min=8.0 max=27.43
2026-08-16 17:20:06.283130: Rate array import [{'start': 1040, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1040, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:20:06.284107: - Your estimated bill for today is £2.96 and tomorrow is £1.38
2026-08-16 17:20:06.284187: - Import rates are very expensive (33.8p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:20:06.284212: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-16 17:20:06.284232: - For the next 48 hours there will be no solar generation.
2026-08-16 17:20:06.284251: - You will run out of battery in 30 hours.
2026-08-16 17:20:06.293010: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:20:06.293186: 
2026-08-16 17:20:06.402252: Plan calculation took 2.28 seconds
2026-08-16 17:20:06.411723: No high rate period found
2026-08-16 17:20:06.548695: Import threshold used for optimisation was 8.0p
2026-08-16 17:20:06.749622: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:20:06.770736: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:20:06.771114: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:20:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:20:06.771299: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:20:06.771709: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:20:06.771900: No export window planned
2026-08-16 17:20:06.772165: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:20:06.772238: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:20:06.772664: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:20:06.773024: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:20:06.773160: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:20:06.773290: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:20:06.773458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.773584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.773647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.773786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.773840: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.773972: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:06.774963: Inverter 0 count register writes 0
2026-08-16 17:20:06.836079: 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-16 17:20:06.836803: Recompute is saving previous plan...
2026-08-16 17:20:06.837917: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:20:06.838012: Best export window [  ]
2026-08-16 17:20:06.838933: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:20:06.843761: Load divergence over 8.0 hours mean 609.4W, min 354.0W, max 1047.6W, std dev 221.03W, divergence 18.13%
2026-08-16 17:20:06.862654: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:20:06.863604: LoadML is_calculating True
2026-08-16 17:20:06.863770: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:20:06.874070: 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(0.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-16 17:20:06.875254: Optimise levels pass started at 2026-08-16 17:20:06
2026-08-16 17:20:06.875353: Optimise all windows, total charge 25 export 1
2026-08-16 17:20:10.308337: >> Region optimisation pass width 960 gives best_metric 484.94p, best_cost 527.62p, best_cycle 41.76kWh, best_import 29.52kWh
2026-08-16 17:20:10.662844: >> Region optimisation pass width 480 gives best_metric 484.94p, best_cost 527.62p, best_cycle 41.76kWh, best_import 29.52kWh
2026-08-16 17:20:11.211325: >> Region optimisation pass width 240 gives best_metric 484.94p, best_cost 527.62p, best_cycle 41.76kWh, best_import 29.52kWh
2026-08-16 17:20:17.960045: >> Region optimisation pass width 120 gives best_metric 479.16p, best_cost 485.56p, best_cycle 40.51kWh, best_import 24.26kWh
2026-08-16 17:20:17.960226: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:20:17.960272: Optimise levels pass ended at 2026-08-16 17:20:17, duration 11.1 seconds tried 70 combinations
2026-08-16 17:20:17.960336: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 479.16p, best_keep 0kWh, best_cycle 40.51kWh, best_carbon 0kg, best_import 24.26kWh
2026-08-16 17:20:17.988576: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 7.5, 7.5, 7.5, 7.5, 0, 0, 9.75, 9.75, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:20:36.065325: Tweak plan optimisation started metric 404.85p, cost 411.19p
2026-08-16 17:20:36.754562: Tweak optimisation finished metric 404.85p, cost 411.19p, metric_keep 0kWh, cycle 23.04kWh, carbon 0kg, import 14.96kWh, changed 8 window(s)
2026-08-16 17:20:36.828558: Swap charge optimisation started metric 404.85p, cost 411.19p, min_improvement_swap 0.1p
2026-08-16 17:20:38.468537: Swap charge optimisation finished metric 404.85p, cost 411.19p
2026-08-16 17:20:38.622200: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 403.49p -> 403.49p, plan now metric 409.13p, cost 411.19p, cycle 23.03kWh, import 14.96kWh
2026-08-16 17:20:38.639895: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 86%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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 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% ] reserve 1.12
2026-08-16 17:20:38.640595: Unclipped charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:20:38.641282: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:20:38.641547: Filtered charge windows [ 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:20:38.698846: Previous plan best metric is 404.85 (cost 411.19) and new plan best metric is 404.85 (cost 411.19)
2026-08-16 17:20:38.699121: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:20:38.699433: Plan valid is now true after recompute was False
2026-08-16 17:20:38.735952: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 669.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:00:00, load 31.74kWh, PV 0.0kWh
2026-08-16 17:20:38.958879: Battery has 19.67 hours left - now at 11.04kWh
2026-08-16 17:20:39.026251: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 697.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:30:00, load 32.85kWh, PV 0.0kWh
2026-08-16 17:20:39.137917: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 513.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.85kWh, PV 0.0kWh
2026-08-16 17:20:39.273136: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 504.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.74kWh, PV 0.0kWh
2026-08-16 17:20:39.273351: Saving plan best values to HA entities
2026-08-16 17:20:39.649913: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:20:39.668334: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:20:39.693714: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.29kWh, house 6.68kWh, export 0.0kWh, metric 504.46p, metric10 513.52p
2026-08-16 17:20:39.843329: Marginal costs baseline metric (no standing charge): 411.1885
2026-08-16 17:20:40.335903: Marginal energy costs matrix computed: min=8.0 max=27.43
2026-08-16 17:20:40.440024: Rate array import [{'start': 1040, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1040, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:20:40.440887: - Your estimated bill for today is £2.96 and tomorrow is £1.38
2026-08-16 17:20:40.440972: - Import rates are very expensive (33.8p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:20:40.441002: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-16 17:20:40.441063: - For the next 48 hours there will be no solar generation.
2026-08-16 17:20:40.441135: - You will run out of battery in 30 hours.
2026-08-16 17:20:40.441253: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:20:40.441372: 
2026-08-16 17:20:40.500298: Plan calculation took 33.66 seconds
2026-08-16 17:20:40.513051: Inverter 0: Type SK Sunsynk
2026-08-16 17:20:40.513179: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:20:40.513506: Reserve min: 7%, battery_min: 7%
2026-08-16 17:20:40.513616: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:20:40.513973: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -55W, load power 342W, PV Power 0W
2026-08-16 17:20:40.514227: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:20:40.514356: Inverter 0 scheduled charge enable is False
2026-08-16 17:20:40.514404: Inverter 0 charge windows currently []
2026-08-16 17:20:40.514440: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:20:40.514645: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:20:40.514707: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:20:40.514792: Inverter 0 scheduled discharge enable is False
2026-08-16 17:20:40.521144: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:20:40.521235: Inverter 0 discharge windows currently []
2026-08-16 17:20:40.521273: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:20:40.521383: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:20:40.521429: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:20:40.717859: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:20:40.718071: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:20:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:20:40.718181: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:20:40.718476: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:20:40.718619: No export window planned
2026-08-16 17:20:40.718803: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:20:40.718871: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:20:40.719129: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:20:40.719396: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:20:40.719505: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:20:40.719600: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:20:40.719734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.719805: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.719869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.719930: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.719991: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720049: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:20:40.720649: Inverter 0 count register writes 0
2026-08-16 17:20:40.859736: Total inverter register writes now 842
2026-08-16 17:20:40.974209: Info: Completed run status Demand
2026-08-16 17:20:41.035833: Info: record_status Demand
2026-08-16 17:20:41.067348: Saved current settings to /config/predbat_config.json
2026-08-16 17:20:41.067718: Compare, best tariff: current metric 318.25p
2026-08-16 17:20:46.836391: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0118 val_mae=0.0059 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0035 kWh ema_combined=0.0030 kWh
2026-08-16 17:21:18.355264: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:21:18.355578: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:21:18.355636: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:21:18.355847: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:21:18.355908: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:21:18.355944: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:21:18.355972: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:21:21.845794: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0150 val_mae=0.0058 kWh val_bias=+0.0009 kWh (+1.0%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-16 17:21:57.518368: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0125 val_mae=0.0049 kWh val_bias=+0.0011 kWh (+1.2%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-16 17:22:33.889007: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0115 val_mae=0.0052 kWh val_bias=-0.0023 kWh (-2.6%) combined=0.0037 kWh ema_combined=0.0032 kWh
2026-08-16 17:23:07.615781: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0123 val_mae=0.0053 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0030 kWh ema_combined=0.0031 kWh
2026-08-16 17:23:18.981822: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:23:18.982335: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:23:18.982514: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:23:18.982836: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:23:18.982992: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:23:18.983118: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:23:18.983239: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:23:44.535786: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0099 val_mae=0.0037 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-16 17:24:20.803424: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0094 val_mae=0.0038 kWh val_bias=+0.0005 kWh (+0.5%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-16 17:24:55.295655: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0093 val_mae=0.0041 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0025 kWh ema_combined=0.0026 kWh
2026-08-16 17:25:00.508910: --------------- PredBat - update at 2026-08-16 17:25:00+01:00 with clock skew 0 minutes, minutes now 1045
2026-08-16 17:25:00.510324: Saved current settings to /config/predbat_config.json
2026-08-16 17:25:00.510485: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 17:25:00.510572: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:25:00.510808: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:25:00.550613: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:25:00.550760: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:25:00.550956: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:25:00.551547: Cars 1 charging from battery False 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-16 17:25:00.551683: Predbat mode is set to Control charge & discharge
2026-08-16 17:25:00.987728: Found 21602 load_today datapoints going back 27 days
2026-08-16 17:25:00.989173: Using load_power data to fill gaps in load_today data
2026-08-16 17:25:02.512698: Processing 721 30-minute periods for power integration
2026-08-16 17:25:02.746851: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:25:02.747208: Car charging hold False, threshold 6.0kWh
2026-08-16 17:25:02.747408: Current data so far today: load 8.5kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:25:02.835527: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:25:02.849084: Standing charge is set to 46.63p
2026-08-16 17:25:03.099288: 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-16 17:25:03.099797: 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-16 17:25:03.099997: 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-16 17:25:03.100186: 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-16 17:25:03.100368: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.100576: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.100681: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.100771: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.100857: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.100977: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.101075: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.101223: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.101317: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.101525: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 2.07, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:25:03.101596: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:25:03.107333: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:25:03.107659: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:25:03.152917: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:25:03.153218: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:25:03.154622: High export rate found rates in range 99p to -99p
2026-08-16 17:25:03.190280: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:25:03.190547: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:25:03.191133: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:25:03.214055: Battery level now 11.04kWh, -1hr ago 11.33kWh, at midnight 12.21kWh, battery value change in the last hour -1.98p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:25:03.214766: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 2.89p, import 2.89p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:25:03.359949: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:25:03.360193: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:25:03.585192: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:25:03.759499: Today's load divergence 85.34%, in-day adjustment 85.22%, damping 0.95x, yesterday 82.97% today 86.07% blend 27.43%
2026-08-16 17:25:03.761479: Today's predicted so far 10.44kWh with 0.0kWh car/iBoost excluded, 6.13kWh import ignored, and 10.44kWh forecast extra.
2026-08-16 17:25:03.763099: Today's actual load so far 8.47kWh with 0.0kWh car/iBoost excluded, and 6.13kWh import ignored.
2026-08-16 17:25:03.833113: Inverter 0: Type SK Sunsynk
2026-08-16 17:25:03.833675: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:25:03.833908: Reserve min: 7%, battery_min: 7%
2026-08-16 17:25:03.834050: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:25:03.834329: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 282W, current battery voltage 51.2V, grid power -54W, load power 344W, PV Power 0W
2026-08-16 17:25:03.834546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:25:03.834808: Inverter 0 scheduled charge enable is False
2026-08-16 17:25:03.834853: Inverter 0 charge windows currently []
2026-08-16 17:25:03.834882: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:25:03.835006: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:25:03.835102: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:25:03.835156: Inverter 0 scheduled discharge enable is False
2026-08-16 17:25:03.835373: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:25:03.835610: Inverter 0 discharge windows currently []
2026-08-16 17:25:03.835663: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:25:03.835867: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:25:03.835908: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:25:03.952580: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:25:03.952778: Plan was last updated on 2026-08-16 17:20:00+01:00 and is now 5.0 minutes old
2026-08-16 17:25:03.953214: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:25:03.953280: Best export window [  ]
2026-08-16 17:25:03.954672: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:25:03.959814: Load divergence over 8.0 hours mean 612.64W, min 345.6W, max 1060.8W, std dev 212.77W, divergence 17.36%
2026-08-16 17:25:04.030689: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:25:04.030882: LoadML is_calculating True
2026-08-16 17:25:04.030982: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:25:04.126104: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 668.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.75kWh, PV 0.0kWh
2026-08-16 17:25:04.356271: Battery has 19.67 hours left - now at 11.04kWh
2026-08-16 17:25:04.415921: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 696.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 32.86kWh, PV 0.0kWh
2026-08-16 17:25:04.553907: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 516.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.86kWh, PV 0.0kWh
2026-08-16 17:25:04.737405: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 507.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.75kWh, PV 0.0kWh
2026-08-16 17:25:04.740388: Saving plan best values to HA entities
2026-08-16 17:25:05.109837: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:25:05.118348: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:25:05.126522: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.71kWh, house 6.67kWh, export 0.0kWh, metric 507.81p, metric10 516.32p
2026-08-16 17:25:05.285148: Marginal costs baseline metric (no standing charge): 414.5457
2026-08-16 17:25:05.965174: Marginal energy costs matrix computed: min=8.0 max=29.59
2026-08-16 17:25:06.099468: Rate array import [{'start': 1045, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1045, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:25:06.100281: - Your estimated bill for today is £2.96 and tomorrow is £1.37
2026-08-16 17:25:06.100347: - Import rates are very expensive (33.8p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:25:06.100388: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-16 17:25:06.100434: - For the next 48 hours there will be no solar generation.
2026-08-16 17:25:06.100455: - You will run out of battery in 30 hours.
2026-08-16 17:25:06.109060: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:25:06.109336: 
2026-08-16 17:25:06.171149: Plan calculation took 2.22 seconds
2026-08-16 17:25:06.176943: No high rate period found
2026-08-16 17:25:06.304863: Import threshold used for optimisation was 8.0p
2026-08-16 17:25:06.392779: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:25:06.402718: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:25:06.402902: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:25:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:25:06.402988: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:25:06.403207: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:25:06.403299: No export window planned
2026-08-16 17:25:06.403434: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:25:06.403481: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:25:06.403650: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:25:06.403837: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:25:06.403908: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:25:06.403967: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:25:06.404068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404368: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404566: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404737: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.404798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:25:06.405747: Inverter 0 count register writes 0
2026-08-16 17:25:06.440451: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 17:25:06.464271: Total inverter register writes now 842
2026-08-16 17:25:06.550188: Info: Completed run status Demand
2026-08-16 17:25:06.587509: Info: record_status Demand
2026-08-16 17:25:06.601788: Saved current settings to /config/predbat_config.json
2026-08-16 17:25:06.602100: Compare, best tariff: current metric 318.25p
2026-08-16 17:25:33.907795: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0088 val_mae=0.0043 kWh val_bias=+0.0014 kWh (+1.6%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-16 17:25:48.837585: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:25:48.837842: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:25:48.837888: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:25:48.838029: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:25:48.838071: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:25:48.838093: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:25:48.838111: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:26:07.961231: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0078 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-16 17:26:42.232123: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0077 val_mae=0.0035 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 17:27:18.081158: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0073 val_mae=0.0042 kWh val_bias=-0.0016 kWh (-1.8%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-16 17:27:54.233118: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0082 val_mae=0.0038 kWh val_bias=+0.0021 kWh (+2.3%) combined=0.0033 kWh ema_combined=0.0027 kWh
2026-08-16 17:28:03.569458: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:28:03.570035: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:28:03.570343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:28:03.570843: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:28:03.571098: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:28:03.571380: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:28:03.571588: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:28:26.641698: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0074 val_mae=0.0039 kWh val_bias=-0.0020 kWh (-2.3%) combined=0.0028 kWh ema_combined=0.0027 kWh
2026-08-16 17:29:00.779692: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0068 val_mae=0.0031 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 17:29:37.185628: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 17:30:00.127700: --------------- PredBat - update at 2026-08-16 17:30:00+01:00 with clock skew 0 minutes, minutes now 1050
2026-08-16 17:30:00.129083: Saved current settings to /config/predbat_config.json
2026-08-16 17:30:00.129490: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 17:30:00.129832: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:30:00.130069: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:30:00.183109: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:30:00.193027: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:30:00.193522: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:30:00.196476: Cars 1 charging from battery False 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-16 17:30:00.196688: Predbat mode is set to Control charge & discharge
2026-08-16 17:30:00.677010: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:30:00.678024: Using load_power data to fill gaps in load_today data
2026-08-16 17:30:01.958846: Processing 721 30-minute periods for power integration
2026-08-16 17:30:02.268130: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:30:02.269328: Car charging hold False, threshold 6.0kWh
2026-08-16 17:30:02.269403: Current data so far today: load 8.62kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:30:02.306943: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:30:02.308935: Standing charge is set to 46.63p
2026-08-16 17:30:02.555905: 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-16 17:30:02.556687: 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-16 17:30:02.557051: 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-16 17:30:02.557392: 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-16 17:30:02.557700: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.557906: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.558099: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.558335: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.583134: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.583471: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.583675: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.583873: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.584310: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:30:02.584470: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:30:02.594883: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:30:02.603807: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:30:02.732546: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:30:02.733278: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:30:02.734553: High export rate found rates in range 99p to -99p
2026-08-16 17:30:02.774707: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:30:02.776676: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:30:02.777212: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:30:02.794731: Battery level now 11.04kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:30:02.795218: Last hour: net energy 0.18kWh, import 0.18kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 2.17p, import 2.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:30:02.898067: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:30:02.898370: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:30:03.185853: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:30:03.292928: Today's load divergence 85.76%, in-day adjustment 85.52%, damping 0.95x, yesterday 82.97% today 86.47% blend 27.08%
2026-08-16 17:30:03.293266: Today's predicted so far 10.56kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.56kWh forecast extra.
2026-08-16 17:30:03.293356: Today's actual load so far 8.64kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 17:30:03.352642: 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.7, 'source': 'SMART'}, {'start': '2026-08-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -2.0665, '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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 17:30:03.353329: Sensor changes require a replan, will recompute the plan
2026-08-16 17:30:03.353564: Inverter 0: Type SK Sunsynk
2026-08-16 17:30:03.353617: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:30:03.353809: Reserve min: 7%, battery_min: 7%
2026-08-16 17:30:03.353946: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:30:03.354239: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -54W, load power 343W, PV Power 0W
2026-08-16 17:30:03.354417: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:30:03.354598: Inverter 0 scheduled charge enable is False
2026-08-16 17:30:03.354645: Inverter 0 charge windows currently []
2026-08-16 17:30:03.354683: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:30:03.354823: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:30:03.354992: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:30:03.355053: Inverter 0 scheduled discharge enable is False
2026-08-16 17:30:03.355252: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:30:03.356390: Inverter 0 discharge windows currently []
2026-08-16 17:30:03.356442: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:30:03.356464: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:30:03.356482: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:30:03.485266: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:30:03.485501: Will recompute the plan as it is invalid
2026-08-16 17:30:03.485745: Recompute is saving previous plan...
2026-08-16 17:30:03.487225: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:30:03.488022: Best export window [  ]
2026-08-16 17:30:03.489461: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:30:03.494403: Load divergence over 8.0 hours mean 615.93W, min 322.8W, max 1100.4W, std dev 213.71W, divergence 17.35%
2026-08-16 17:30:03.523674: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:30:03.524175: LoadML is_calculating True
2026-08-16 17:30:03.524355: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:30:03.543651: 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(0.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-16 17:30:03.544501: Optimise levels pass started at 2026-08-16 17:30:03
2026-08-16 17:30:03.544664: Optimise all windows, total charge 25 export 1
2026-08-16 17:30:06.737285: >> Region optimisation pass width 960 gives best_metric 485.22p, best_cost 527.31p, best_cycle 41.7kWh, best_import 29.48kWh
2026-08-16 17:30:07.112786: >> Region optimisation pass width 480 gives best_metric 485.22p, best_cost 527.31p, best_cycle 41.7kWh, best_import 29.48kWh
2026-08-16 17:30:08.033825: >> Region optimisation pass width 240 gives best_metric 485.06p, best_cost 525.31p, best_cycle 41.96kWh, best_import 29.23kWh
2026-08-16 17:30:13.872256: >> Region optimisation pass width 120 gives best_metric 481.21p, best_cost 498.89p, best_cycle 42.52kWh, best_import 25.93kWh
2026-08-16 17:30:13.877302: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:30:13.877592: Optimise levels pass ended at 2026-08-16 17:30:13, duration 10.3 seconds tried 86 combinations
2026-08-16 17:30:13.877822: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 481.21p, best_keep 0kWh, best_cycle 42.52kWh, best_carbon 0kg, best_import 25.93kWh
2026-08-16 17:30:13.907984: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 4.75, 4.75, 13.75, 13.75, 13.75, 0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:30:27.620227: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0037 kWh val_bias=-0.0022 kWh (-2.4%) combined=0.0032 kWh ema_combined=0.0025 kWh
2026-08-16 17:30:29.063002: Tweak plan optimisation started metric 404.49p, cost 410.83p
2026-08-16 17:30:29.810627: Tweak optimisation finished metric 404.49p, cost 410.83p, metric_keep 0kWh, cycle 22.9kWh, carbon 0kg, import 14.92kWh, changed 8 window(s)
2026-08-16 17:30:29.852584: Swap charge optimisation started metric 404.49p, cost 410.83p, min_improvement_swap 0.1p
2026-08-16 17:30:31.753422: Swap charge optimisation finished metric 404.49p, cost 410.83p
2026-08-16 17:30:31.819338: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:30:31.820017: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:30:31.820467: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:30:31.820648: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:30:31.859625: Previous plan best metric is 404.49 (cost 410.83) and new plan best metric is 404.49 (cost 410.83)
2026-08-16 17:30:31.859900: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:30:31.860177: Plan valid is now true after recompute was False
2026-08-16 17:30:31.886550: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 667.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:05:00, load 31.83kWh, PV 0.0kWh
2026-08-16 17:30:32.073936: Battery has 19.58 hours left - now at 11.04kWh
2026-08-16 17:30:32.156688: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 696.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:35:00, load 32.94kWh, PV 0.0kWh
2026-08-16 17:30:32.367789: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 513.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.94kWh, PV 0.0kWh
2026-08-16 17:30:32.586932: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 504.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.83kWh, PV 0.0kWh
2026-08-16 17:30:32.587053: Saving plan best values to HA entities
2026-08-16 17:30:33.054077: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:30:33.061393: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:30:33.082241: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.22kWh, house 6.7kWh, export 0.0kWh, metric 504.1p, metric10 513.17p
2026-08-16 17:30:33.283649: Marginal costs baseline metric (no standing charge): 410.8301
2026-08-16 17:30:34.116555: Marginal energy costs matrix computed: min=8.0 max=31.72
2026-08-16 17:30:34.255184: Rate array import [{'start': 1050, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1050, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:30:34.256339: - Your estimated bill for today is £2.95 and tomorrow is £1.37
2026-08-16 17:30:34.256404: - Import rates are very expensive (33.8p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:30:34.256489: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-16 17:30:34.256567: - For the next 48 hours there will be no solar generation.
2026-08-16 17:30:34.256627: - You will run out of battery in 30 hours.
2026-08-16 17:30:34.256704: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-16 17:30:34.256742: 
2026-08-16 17:30:34.329860: Plan calculation took 30.84 seconds
2026-08-16 17:30:34.414246: Saved plan to storage
2026-08-16 17:30:34.420845: No high rate period found
2026-08-16 17:30:34.562245: Import threshold used for optimisation was 8.0p
2026-08-16 17:30:34.687282: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:30:34.707885: Inverter 0: Type SK Sunsynk
2026-08-16 17:30:34.707991: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:30:34.708235: Reserve min: 7%, battery_min: 7%
2026-08-16 17:30:34.708328: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:30:34.708656: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 344W, PV Power 0W
2026-08-16 17:30:34.708996: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:30:34.709127: Inverter 0 scheduled charge enable is False
2026-08-16 17:30:34.709195: Inverter 0 charge windows currently []
2026-08-16 17:30:34.709232: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:30:34.709375: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:30:34.709420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:30:34.709466: Inverter 0 scheduled discharge enable is False
2026-08-16 17:30:34.709621: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:30:34.709667: Inverter 0 discharge windows currently []
2026-08-16 17:30:34.709697: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:30:34.709724: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:30:34.709748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:30:34.872720: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:30:34.872883: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:30:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:30:34.873123: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:30:34.873451: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:30:34.873637: No export window planned
2026-08-16 17:30:34.873860: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:30:34.873961: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:30:34.874588: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:30:34.874865: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:30:34.875016: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:30:34.875212: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:30:34.875414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.875622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.875790: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.876598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.877339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.877500: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.877631: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.877804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.877933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:30:34.878671: Inverter 0 count register writes 0
2026-08-16 17:30:34.916241: Total inverter register writes now 842
2026-08-16 17:30:34.981437: Info: Completed run status Demand
2026-08-16 17:30:34.994304: Info: record_status Demand
2026-08-16 17:30:35.015374: Saved current settings to /config/predbat_config.json
2026-08-16 17:30:35.021324: Compare, best tariff: current metric 318.25p
2026-08-16 17:31:09.320462: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0063 val_mae=0.0027 kWh val_bias=+0.0013 kWh (+1.4%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-16 17:31:19.257689: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:31:19.258770: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:31:19.259378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:31:19.259983: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:31:19.261145: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:31:19.261469: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:31:19.261727: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:31:43.732568: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-16 17:32:16.755623: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 17:32:54.772194: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-16 17:33:29.449231: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0055 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-16 17:33:33.738479: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:33:33.738879: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:33:33.738948: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:33:33.739162: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:33:33.739222: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:33:33.739250: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:33:33.739274: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:34:04.300157: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0031 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-16 17:34:37.442676: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0026 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-16 17:35:00.160465: --------------- PredBat - update at 2026-08-16 17:35:00+01:00 with clock skew 0 minutes, minutes now 1055
2026-08-16 17:35:00.161508: Saved current settings to /config/predbat_config.json
2026-08-16 17:35:00.161698: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 17:35:00.161849: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:35:00.162026: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:35:00.192445: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:35:00.192606: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:35:00.192816: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:35:00.193486: Cars 1 charging from battery False 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-16 17:35:00.193644: Predbat mode is set to Control charge & discharge
2026-08-16 17:35:00.508526: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:35:00.508993: Using load_power data to fill gaps in load_today data
2026-08-16 17:35:01.804335: Processing 721 30-minute periods for power integration
2026-08-16 17:35:02.081689: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:35:02.081812: Car charging hold False, threshold 6.0kWh
2026-08-16 17:35:02.081851: Current data so far today: load 8.65kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:35:02.097237: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:35:02.097982: Standing charge is set to 46.63p
2026-08-16 17:35:02.309053: 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-16 17:35:02.325480: 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-16 17:35:02.325762: 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-16 17:35:02.326107: 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-16 17:35:02.326422: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.326645: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.327334: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.327536: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.327716: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.327928: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.328133: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.328319: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.328631: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:35:02.328788: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:35:02.337253: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:35:02.337873: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:35:02.458565: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:35:02.485217: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:35:02.487442: High export rate found rates in range 99p to -99p
2026-08-16 17:35:02.531818: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:35:02.532685: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:35:02.533340: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:35:02.551355: Battery level now 11.04kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:35:02.551947: Last hour: net energy 0.15kWh, import 0.15kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.97p, import 1.97p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:35:02.629822: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:35:02.630161: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:35:02.741637: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:35:02.766950: Today's load divergence 85.71%, in-day adjustment 85.5%, damping 0.95x, yesterday 82.97% today 86.43% blend 26.74%
2026-08-16 17:35:02.768142: Today's predicted so far 10.66kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.66kWh forecast extra.
2026-08-16 17:35:02.768348: Today's actual load so far 8.73kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 17:35:02.815228: Inverter 0: Type SK Sunsynk
2026-08-16 17:35:02.815322: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:35:02.815506: Reserve min: 7%, battery_min: 7%
2026-08-16 17:35:02.815578: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:35:02.815866: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 280W, current battery voltage 51.2V, grid power -55W, load power 344W, PV Power 0W
2026-08-16 17:35:02.816039: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:35:02.816130: Inverter 0 scheduled charge enable is False
2026-08-16 17:35:02.816167: Inverter 0 charge windows currently []
2026-08-16 17:35:02.816195: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:35:02.816302: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:35:02.816338: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:35:02.816375: Inverter 0 scheduled discharge enable is False
2026-08-16 17:35:02.816498: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:35:02.816534: Inverter 0 discharge windows currently []
2026-08-16 17:35:02.816558: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:35:02.816660: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:35:02.816698: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:35:02.954705: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:35:02.955437: Plan was last updated on 2026-08-16 17:30:00+01:00 and is now 5.0 minutes old
2026-08-16 17:35:02.955914: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:35:02.955978: Best export window [  ]
2026-08-16 17:35:02.957058: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:35:02.960855: Load divergence over 8.0 hours mean 620.3W, min 342.6W, max 1131.0W, std dev 222.57W, divergence 17.94%
2026-08-16 17:35:02.992253: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:35:02.993338: LoadML is_calculating True
2026-08-16 17:35:02.993426: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:35:03.047167: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 666.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.87kWh, PV 0.0kWh
2026-08-16 17:35:03.381972: Battery has 19.58 hours left - now at 11.04kWh
2026-08-16 17:35:03.513275: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 694.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 32.97kWh, PV 0.0kWh
2026-08-16 17:35:03.747785: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 515.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.97kWh, PV 0.0kWh
2026-08-16 17:35:03.959890: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 507.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.87kWh, PV 0.0kWh
2026-08-16 17:35:03.959994: Saving plan best values to HA entities
2026-08-16 17:35:04.473488: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 17:35:04.489067: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:35:04.513233: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.65kWh, house 6.69kWh, export 0.0kWh, metric 507.47p, metric10 515.96p
2026-08-16 17:35:04.775793: Marginal costs baseline metric (no standing charge): 414.2032
2026-08-16 17:35:05.357476: Marginal energy costs matrix computed: min=8.0 max=31.7
2026-08-16 17:35:05.490521: Rate array import [{'start': 1055, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1055, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:35:05.491387: - Your estimated bill for today is £2.95 and tomorrow is £1.38
2026-08-16 17:35:05.491441: - Import rates are very expensive (33.8p) for the next 5  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:35:05.491465: - The battery is currently at 69% and is in eco mode for the next 9 hours.
2026-08-16 17:35:05.491590: - For the next 48 hours there will be no solar generation.
2026-08-16 17:35:05.491629: - You will run out of battery in 30 hours.
2026-08-16 17:35:05.491691: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:35:05.491725: 
2026-08-16 17:35:05.544162: Plan calculation took 2.59 seconds
2026-08-16 17:35:05.551749: No high rate period found
2026-08-16 17:35:05.670173: Import threshold used for optimisation was 8.0p
2026-08-16 17:35:05.794169: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:35:05.803750: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:35:05.803908: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:35:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:35:05.804013: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:35:05.804214: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:35:05.804301: No export window planned
2026-08-16 17:35:05.804448: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:35:05.804494: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:35:05.804660: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:35:05.804834: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:35:05.804893: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:35:05.804987: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:35:05.805100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805263: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:35:05.805711: Inverter 0 count register writes 0
2026-08-16 17:35:05.862611: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 17:35:05.894740: Total inverter register writes now 842
2026-08-16 17:35:06.074212: Info: Completed run status Demand
2026-08-16 17:35:06.086867: Info: record_status Demand
2026-08-16 17:35:06.114949: Saved current settings to /config/predbat_config.json
2026-08-16 17:35:06.115314: Compare, best tariff: current metric 318.25p
2026-08-16 17:35:15.034487: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0051 val_mae=0.0025 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 17:35:48.035802: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 17:35:48.406492: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:35:48.406832: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:35:48.406895: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:35:48.407126: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:35:48.407185: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:35:48.407316: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:35:48.407370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:36:25.773261: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-16 17:37:01.299365: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0024 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 17:37:36.718374: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 17:37:36.727340: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.9%)
2026-08-16 17:37:36.727578: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.9%)
2026-08-16 17:37:44.395871: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=-0.0009 kWh (-1.0%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 17:37:44.429010: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0024 kWh
2026-08-16 17:37:44.527389: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-16 17:37:44.527611: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 17:37:45.204306: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 17:37:48.870618: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:37:48.871153: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:37:48.871208: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:37:48.871361: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:37:48.876580: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:37:48.881829: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:37:48.892284: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:37:51.563672: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 17:37:51.624746: 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.8678 std=8.3496) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-16 17:37:51.719423: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 17:37:51.737729: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 17:37:51.786222: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=+0.0004 kWh
2026-08-16 17:38:28.626209: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0092 val_mae=0.0054 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-16 17:39:05.336258: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0059 kWh val_bias=+0.0037 kWh (+4.8%) combined=0.0059 kWh ema_combined=0.0038 kWh
2026-08-16 17:39:41.339948: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0135 val_mae=0.0063 kWh val_bias=-0.0030 kWh (-3.8%) combined=0.0049 kWh ema_combined=0.0041 kWh
2026-08-16 17:39:49.127359: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:39:49.128249: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:39:49.128436: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:39:49.128794: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:39:49.129000: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:39:49.129131: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:39:49.129265: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:40:00.329294: --------------- PredBat - update at 2026-08-16 17:40:00+01:00 with clock skew 0 minutes, minutes now 1060
2026-08-16 17:40:00.330454: Saved current settings to /config/predbat_config.json
2026-08-16 17:40:00.330674: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 17:40:00.330919: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:40:00.331085: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:40:00.382129: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:40:00.382868: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:40:00.383272: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:40:00.384040: Cars 1 charging from battery False 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-16 17:40:00.384307: Predbat mode is set to Control charge & discharge
2026-08-16 17:40:00.686043: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:40:00.686647: Using load_power data to fill gaps in load_today data
2026-08-16 17:40:02.454128: Processing 721 30-minute periods for power integration
2026-08-16 17:40:02.779734: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:40:02.780324: Car charging hold False, threshold 6.0kWh
2026-08-16 17:40:02.780503: Current data so far today: load 8.75kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:40:02.851810: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:40:02.853198: Standing charge is set to 46.63p
2026-08-16 17:40:03.008646: 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-16 17:40:03.010083: 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-16 17:40:03.010519: 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-16 17:40:03.010872: 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-16 17:40:03.011229: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.011427: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.011580: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.011729: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.011876: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.012048: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.012195: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.012345: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.012602: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:40:03.012714: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:40:03.019579: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:40:03.020114: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:40:03.075794: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:40:03.076504: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:40:03.078350: High export rate found rates in range 99p to -99p
2026-08-16 17:40:03.122077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:40:03.122464: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:40:03.123159: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:40:03.144236: Battery level now 11.04kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:40:03.144754: Last hour: net energy 0.12kWh, import 0.12kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 1.77p, import 1.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:40:03.226162: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:40:03.226442: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:40:03.454036: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:40:03.493727: Today's load divergence 86.09%, in-day adjustment 85.78%, damping 0.95x, yesterday 82.97% today 86.79% blend 26.39%
2026-08-16 17:40:03.493951: Today's predicted so far 10.66kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 10.66kWh forecast extra.
2026-08-16 17:40:03.493993: Today's actual load so far 8.78kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 17:40:03.572046: Inverter 0: Type SK Sunsynk
2026-08-16 17:40:03.572326: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:40:03.572671: Reserve min: 7%, battery_min: 7%
2026-08-16 17:40:03.572878: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:40:03.573372: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -55W, load power 342W, PV Power 0W
2026-08-16 17:40:03.574112: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:40:03.574724: Inverter 0 scheduled charge enable is False
2026-08-16 17:40:03.574909: Inverter 0 charge windows currently []
2026-08-16 17:40:03.575039: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:40:03.575315: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:40:03.575442: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:40:03.575595: Inverter 0 scheduled discharge enable is False
2026-08-16 17:40:03.575863: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:40:03.576032: Inverter 0 discharge windows currently []
2026-08-16 17:40:03.576140: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:40:03.576267: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:40:03.576365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:40:03.677021: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:40:03.677308: Plan was last updated on 2026-08-16 17:30:00+01:00 and is now 10.0 minutes old
2026-08-16 17:40:03.677786: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:40:03.677930: Best export window [  ]
2026-08-16 17:40:03.679176: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:40:03.683024: Load divergence over 8.0 hours mean 623.86W, min 372.0W, max 1105.2W, std dev 220.76W, divergence 17.69%
2026-08-16 17:40:03.701633: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:40:03.701855: LoadML is_calculating True
2026-08-16 17:40:03.701949: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:40:03.774621: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 666.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.99kWh, PV 0.0kWh
2026-08-16 17:40:04.029709: Battery has 19.5 hours left - now at 11.04kWh
2026-08-16 17:40:04.086221: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 694.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 33.09kWh, PV 0.0kWh
2026-08-16 17:40:04.192400: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 518.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 33.09kWh, PV 0.0kWh
2026-08-16 17:40:04.432736: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 510.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.99kWh, PV 0.0kWh
2026-08-16 17:40:04.437118: Saving plan best values to HA entities
2026-08-16 17:40:04.760499: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:40:04.783830: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:40:04.830204: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.1kWh, house 6.67kWh, export 0.0kWh, metric 510.91p, metric10 518.87p
2026-08-16 17:40:05.038732: Marginal costs baseline metric (no standing charge): 417.646
2026-08-16 17:40:05.597777: Marginal energy costs matrix computed: min=8.0 max=31.73
2026-08-16 17:40:05.720753: Rate array import [{'start': 1060, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1060, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:40:05.722055: - Your estimated bill for today is £2.95 and tomorrow is £1.37
2026-08-16 17:40:05.722141: - Import rates are very expensive (33.8p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:40:05.722180: - The battery is currently at 69% and is in eco mode for the next 9 hours.
2026-08-16 17:40:05.722285: - For the next 48 hours there will be no solar generation.
2026-08-16 17:40:05.722421: - You will run out of battery in 30 hours.
2026-08-16 17:40:05.722473: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:40:05.722560: 
2026-08-16 17:40:05.799729: Plan calculation took 2.12 seconds
2026-08-16 17:40:05.805412: No high rate period found
2026-08-16 17:40:06.009004: Import threshold used for optimisation was 8.0p
2026-08-16 17:40:06.130877: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:40:06.141971: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:40:06.142283: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:40:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:40:06.142498: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:40:06.142847: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:40:06.143011: No export window planned
2026-08-16 17:40:06.143292: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:40:06.143349: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:40:06.143640: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:40:06.147907: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:40:06.148030: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:40:06.148161: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:40:06.148397: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.148498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.148600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.148705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.148861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149741: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.149953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:06.150045: Inverter 0 count register writes 0
2026-08-16 17:40:06.194009: 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-16 17:40:06.194614: Recompute is saving previous plan...
2026-08-16 17:40:06.197066: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:40:06.197269: Best export window [  ]
2026-08-16 17:40:06.200612: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:40:06.204074: Load divergence over 8.0 hours mean 623.86W, min 372.0W, max 1105.2W, std dev 220.76W, divergence 17.69%
2026-08-16 17:40:06.262793: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:40:06.274005: LoadML is_calculating True
2026-08-16 17:40:06.288285: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:40:06.317531: 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(0.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-16 17:40:06.319974: Optimise levels pass started at 2026-08-16 17:40:06
2026-08-16 17:40:06.320185: Optimise all windows, total charge 25 export 1
2026-08-16 17:40:09.845910: >> Region optimisation pass width 960 gives best_metric 485.29p, best_cost 526.64p, best_cycle 41.67kWh, best_import 29.39kWh
2026-08-16 17:40:10.151932: >> Region optimisation pass width 480 gives best_metric 485.29p, best_cost 526.64p, best_cycle 41.67kWh, best_import 29.39kWh
2026-08-16 17:40:10.888678: >> Region optimisation pass width 240 gives best_metric 485.29p, best_cost 526.64p, best_cycle 41.67kWh, best_import 29.39kWh
2026-08-16 17:40:15.787859: >> Region optimisation pass width 120 gives best_metric 481.04p, best_cost 496.99p, best_cycle 41.57kWh, best_import 25.69kWh
2026-08-16 17:40:15.788280: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:40:15.789849: Optimise levels pass ended at 2026-08-16 17:40:15, duration 9.5 seconds tried 70 combinations
2026-08-16 17:40:15.790023: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 481.04p, best_keep 0kWh, best_cycle 41.57kWh, best_carbon 0kg, best_import 25.69kWh
2026-08-16 17:40:15.853548: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 4.25, 4.25, 13.75, 13.75, 13.75, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:40:30.894287: Tweak plan optimisation started metric 403.75p, cost 410.1p
2026-08-16 17:40:31.682050: Tweak optimisation finished metric 403.75p, cost 410.1p, metric_keep 0kWh, cycle 22.76kWh, carbon 0kg, import 14.83kWh, changed 8 window(s)
2026-08-16 17:40:31.713888: Swap charge optimisation started metric 403.75p, cost 410.1p, min_improvement_swap 0.1p
2026-08-16 17:40:33.299922: Swap charge optimisation finished metric 403.75p, cost 410.1p
2026-08-16 17:40:33.405584: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:40:33.406247: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:40:33.406646: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:40:33.407026: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:40:33.513948: Previous plan best metric is 403.75 (cost 410.1) and new plan best metric is 403.75 (cost 410.1)
2026-08-16 17:40:33.514331: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:40:33.514585: Plan valid is now true after recompute was False
2026-08-16 17:40:33.636617: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 665.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.88kWh, PV 0.0kWh
2026-08-16 17:40:33.907990: Battery has 19.5 hours left - now at 11.04kWh
2026-08-16 17:40:33.998730: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 693.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 32.98kWh, PV 0.0kWh
2026-08-16 17:40:34.227851: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.98kWh, PV 0.0kWh
2026-08-16 17:40:34.386437: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:05:00, load 31.88kWh, PV 0.0kWh
2026-08-16 17:40:34.386578: Saving plan best values to HA entities
2026-08-16 17:40:34.797103: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:40:34.805312: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:40:34.813685: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.15kWh, house 6.67kWh, export 0.0kWh, metric 503.37p, metric10 512.39p
2026-08-16 17:40:34.982732: Marginal costs baseline metric (no standing charge): 410.0978
2026-08-16 17:40:35.662986: Marginal energy costs matrix computed: min=8.0 max=31.73
2026-08-16 17:40:35.815824: Rate array import [{'start': 1060, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1060, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:40:35.816582: - Your estimated bill for today is £2.95 and tomorrow is £1.37
2026-08-16 17:40:35.816635: - Import rates are very expensive (33.8p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:40:35.816659: - The battery is currently at 69% and is in eco mode for the next 9 hours.
2026-08-16 17:40:35.816682: - For the next 48 hours there will be no solar generation.
2026-08-16 17:40:35.816718: - You will run out of battery in 30 hours.
2026-08-16 17:40:35.816747: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:40:35.816766: 
2026-08-16 17:40:35.852610: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0132 val_mae=0.0044 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0027 kWh ema_combined=0.0037 kWh
2026-08-16 17:40:35.894968: Plan calculation took 29.70 seconds
2026-08-16 17:40:35.895328: Inverter 0: Type SK Sunsynk
2026-08-16 17:40:35.895379: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:40:35.895611: Reserve min: 7%, battery_min: 7%
2026-08-16 17:40:35.895757: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:40:35.896122: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -55W, load power 342W, PV Power 0W
2026-08-16 17:40:35.899553: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:40:35.899832: Inverter 0 scheduled charge enable is False
2026-08-16 17:40:35.899993: Inverter 0 charge windows currently []
2026-08-16 17:40:35.900135: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:40:35.900373: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:40:35.900484: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:40:35.900613: Inverter 0 scheduled discharge enable is False
2026-08-16 17:40:35.900842: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:40:35.901016: Inverter 0 discharge windows currently []
2026-08-16 17:40:35.901153: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:40:35.901264: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:40:35.901352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:40:36.007252: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:40:36.007450: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:40:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:40:36.007621: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:40:36.007959: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:40:36.008115: No export window planned
2026-08-16 17:40:36.008332: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:40:36.008393: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:40:36.008639: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:40:36.008939: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:40:36.009045: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:40:36.009196: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:40:36.009362: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009628: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009740: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.009905: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:40:36.010696: Inverter 0 count register writes 0
2026-08-16 17:40:36.063920: Total inverter register writes now 842
2026-08-16 17:40:36.134190: Info: Completed run status Demand
2026-08-16 17:40:36.144845: Info: record_status Demand
2026-08-16 17:40:36.163048: Saved current settings to /config/predbat_config.json
2026-08-16 17:40:36.163803: Compare, best tariff: current metric 318.25p
2026-08-16 17:41:11.644294: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0101 val_mae=0.0045 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0028 kWh ema_combined=0.0034 kWh
2026-08-16 17:41:18.431225: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:41:18.431555: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:41:18.431612: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:41:18.431814: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:41:18.431882: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:41:18.431919: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:41:18.432044: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:41:48.072177: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0107 val_mae=0.0037 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-16 17:42:23.203788: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0047 kWh val_bias=-0.0033 kWh (-4.2%) combined=0.0051 kWh ema_combined=0.0037 kWh
2026-08-16 17:42:56.507013: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0093 val_mae=0.0036 kWh val_bias=+0.0008 kWh (+1.1%) combined=0.0028 kWh ema_combined=0.0034 kWh
2026-08-16 17:43:18.992626: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:43:18.993201: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:43:18.993377: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:43:18.993697: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:43:18.993917: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:43:18.994069: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:43:18.994239: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:43:30.321023: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0082 val_mae=0.0037 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0026 kWh ema_combined=0.0032 kWh
2026-08-16 17:44:07.317341: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0028 kWh
2026-08-16 17:44:07.317889: ML Predictor: Early stopping at epoch 10
2026-08-16 17:44:07.319477: ML Predictor: Restored best weights from epoch with val_mae=0.0047 kWh val_bias=+0.0004 kWh (+0.5%)
2026-08-16 17:44:07.320018: ML Predictor: Training complete, final val_mae=0.0047 kWh val_bias=+0.0004 kWh (+0.5%)
2026-08-16 17:44:14.608114: ML Predictor: AR rollout over holdout: ar_mae=0.0052 kWh ar_bias=+0.0004 kWh (+0.5%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-16 17:44:14.619537: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0047 kWh
2026-08-16 17:44:14.696319: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-16 17:44:14.696590: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 17:44:15.358561: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-16 17:44:21.597841: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-16 17:44:21.650231: 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.6335 std=4.5092) import_rate(mean=16.8585 std=8.3678) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-16 17:44:21.736391: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 17:44:21.751336: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 17:44:21.788134: ML Predictor: Baseline (pre-finetune) val_mae=0.0068 kWh val_bias=+0.0012 kWh
2026-08-16 17:45:00.364746: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0109 val_mae=0.0053 kWh val_bias=-0.0018 kWh (-3.2%) combined=0.0038 kWh ema_combined=0.0038 kWh
2026-08-16 17:45:00.870793: --------------- PredBat - update at 2026-08-16 17:45:00+01:00 with clock skew 0 minutes, minutes now 1065
2026-08-16 17:45:00.872855: Saved current settings to /config/predbat_config.json
2026-08-16 17:45:00.873068: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 17:45:00.873257: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:45:00.873431: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:45:00.902038: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:45:00.902326: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:45:00.902595: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:45:00.903724: Cars 1 charging from battery False 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-16 17:45:00.903967: Predbat mode is set to Control charge & discharge
2026-08-16 17:45:01.297987: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:45:01.298144: Using load_power data to fill gaps in load_today data
2026-08-16 17:45:02.761213: Processing 721 30-minute periods for power integration
2026-08-16 17:45:02.969501: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:45:02.969797: Car charging hold False, threshold 6.0kWh
2026-08-16 17:45:02.970023: Current data so far today: load 8.8kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:45:02.998731: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:45:03.000144: Standing charge is set to 46.63p
2026-08-16 17:45:03.131406: 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-16 17:45:03.132068: 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-16 17:45:03.132288: 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-16 17:45:03.132476: 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-16 17:45:03.132655: 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-16 17:45:03.132849: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133463: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133589: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133687: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133769: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133875: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.133969: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.134075: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.134318: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:45:03.134487: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:45:03.139867: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:45:03.140316: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:45:03.185974: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:45:03.186222: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:45:03.187678: High export rate found rates in range 99p to -99p
2026-08-16 17:45:03.249610: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:45:03.265332: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:45:03.266008: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:45:03.295343: Battery level now 11.04kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:45:03.296170: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.57p, import 1.57p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:45:03.418131: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:45:03.418324: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:45:03.663177: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:45:03.747177: Today's load divergence 85.81%, in-day adjustment 85.59%, damping 0.95x, yesterday 82.97% today 86.52% blend 26.04%
2026-08-16 17:45:03.757747: Today's predicted so far 10.66kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 10.66kWh forecast extra.
2026-08-16 17:45:03.757964: Today's actual load so far 8.75kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 17:45:03.841738: 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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 17:45:03.842602: Sensor changes require a replan, will recompute the plan
2026-08-16 17:45:03.843364: Inverter 0: Type SK Sunsynk
2026-08-16 17:45:03.843538: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:45:03.844005: Reserve min: 7%, battery_min: 7%
2026-08-16 17:45:03.847230: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:45:03.865775: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -54W, load power 343W, PV Power 0W
2026-08-16 17:45:03.866183: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:45:03.866464: Inverter 0 scheduled charge enable is False
2026-08-16 17:45:03.866577: Inverter 0 charge windows currently []
2026-08-16 17:45:03.866753: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:45:03.867093: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:45:03.867163: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:45:03.867344: Inverter 0 scheduled discharge enable is False
2026-08-16 17:45:03.867726: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:45:03.867852: Inverter 0 discharge windows currently []
2026-08-16 17:45:03.867965: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:45:03.868067: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:45:03.868163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:45:04.058068: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:45:04.058306: Will recompute the plan as it is invalid
2026-08-16 17:45:04.058567: Recompute is saving previous plan...
2026-08-16 17:45:04.060035: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:45:04.060214: Best export window [  ]
2026-08-16 17:45:04.061647: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:45:04.066446: Load divergence over 8.0 hours mean 627.92W, min 373.2W, max 1153.2W, std dev 222.41W, divergence 17.71%
2026-08-16 17:45:04.123205: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:45:04.123553: LoadML is_calculating True
2026-08-16 17:45:04.123749: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:45:04.154442: 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(0.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-16 17:45:04.155257: Optimise levels pass started at 2026-08-16 17:45:04
2026-08-16 17:45:04.169046: Optimise all windows, total charge 25 export 1
2026-08-16 17:45:07.471621: >> Region optimisation pass width 960 gives best_metric 485.23p, best_cost 526.17p, best_cycle 41.66kWh, best_import 29.34kWh
2026-08-16 17:45:07.812525: >> Region optimisation pass width 480 gives best_metric 485.23p, best_cost 526.17p, best_cycle 41.66kWh, best_import 29.34kWh
2026-08-16 17:45:08.390411: >> Region optimisation pass width 240 gives best_metric 485.23p, best_cost 526.17p, best_cycle 41.66kWh, best_import 29.34kWh
2026-08-16 17:45:13.138503: >> Region optimisation pass width 120 gives best_metric 481.01p, best_cost 498.72p, best_cycle 41.78kWh, best_import 25.9kWh
2026-08-16 17:45:13.138766: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:45:13.138862: Optimise levels pass ended at 2026-08-16 17:45:13, duration 9.0 seconds tried 70 combinations
2026-08-16 17:45:13.138920: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 481.01p, best_keep 0kWh, best_cycle 41.78kWh, best_carbon 0kg, best_import 25.9kWh
2026-08-16 17:45:13.218658: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 4.5, 4.5, 13.75, 13.75, 13.75, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:45:28.004173: Tweak plan optimisation started metric 403.34p, cost 409.69p
2026-08-16 17:45:28.706809: Tweak optimisation finished metric 403.34p, cost 409.69p, metric_keep 0kWh, cycle 22.67kWh, carbon 0kg, import 14.77kWh, changed 8 window(s)
2026-08-16 17:45:28.755094: Swap charge optimisation started metric 403.34p, cost 409.69p, min_improvement_swap 0.1p
2026-08-16 17:45:30.364843: Swap charge optimisation finished metric 403.34p, cost 409.69p
2026-08-16 17:45:30.447283: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:45:30.447862: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:45:30.448246: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:45:30.448558: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:45:30.506984: Previous plan best metric is 403.34 (cost 409.69) and new plan best metric is 403.34 (cost 409.69)
2026-08-16 17:45:30.507363: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:45:30.510728: Plan valid is now true after recompute was False
2026-08-16 17:45:30.613463: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 664.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:15:00, load 31.88kWh, PV 0.0kWh
2026-08-16 17:45:30.913668: Battery has 19.5 hours left - now at 11.04kWh
2026-08-16 17:45:31.006704: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 692.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:45:00, load 32.98kWh, PV 0.0kWh
2026-08-16 17:45:31.189473: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 511.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.98kWh, PV 0.0kWh
2026-08-16 17:45:31.360471: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 502.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.88kWh, PV 0.0kWh
2026-08-16 17:45:31.360598: Saving plan best values to HA entities
2026-08-16 17:45:31.713062: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:45:31.728920: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:45:31.755791: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.09kWh, house 6.68kWh, export 0.0kWh, metric 502.95p, metric10 511.95p
2026-08-16 17:45:31.986977: Marginal costs baseline metric (no standing charge): 409.6856
2026-08-16 17:45:32.704289: Marginal energy costs matrix computed: min=8.0 max=31.77
2026-08-16 17:45:32.862425: Rate array import [{'start': 1065, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1065, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:45:32.881738: - Your estimated bill for today is £2.96 and tomorrow is £1.36
2026-08-16 17:45:32.881860: - Import rates are very expensive (33.8p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:45:32.881972: - The battery is currently at 69% and is in eco mode for the next 9 hours.
2026-08-16 17:45:32.882046: - For the next 48 hours there will be no solar generation.
2026-08-16 17:45:32.882113: - You will run out of battery in 30 hours.
2026-08-16 17:45:32.882258: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:45:32.882400: 
2026-08-16 17:45:33.006521: Plan calculation took 28.95 seconds
2026-08-16 17:45:33.086247: Saved plan to storage
2026-08-16 17:45:33.090631: No high rate period found
2026-08-16 17:45:33.189791: Import threshold used for optimisation was 8.0p
2026-08-16 17:45:33.291686: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:45:33.318878: Inverter 0: Type SK Sunsynk
2026-08-16 17:45:33.319011: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:45:33.319309: Reserve min: 7%, battery_min: 7%
2026-08-16 17:45:33.319434: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:45:33.319914: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 276W, current battery voltage 51.2V, grid power -55W, load power 342W, PV Power 0W
2026-08-16 17:45:33.320170: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:45:33.320318: Inverter 0 scheduled charge enable is False
2026-08-16 17:45:33.320381: Inverter 0 charge windows currently []
2026-08-16 17:45:33.320431: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:45:33.320613: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:45:33.320682: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:45:33.320887: Inverter 0 scheduled discharge enable is False
2026-08-16 17:45:33.321195: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:45:33.321275: Inverter 0 discharge windows currently []
2026-08-16 17:45:33.321320: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:45:33.321354: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:45:33.321387: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:45:33.523026: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-16 17:45:33.523238: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:45:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:45:33.523344: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:45:33.523659: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:45:33.523814: No export window planned
2026-08-16 17:45:33.524008: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:45:33.524059: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:45:33.524307: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:45:33.524566: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:45:33.524648: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:45:33.524735: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:45:33.524883: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.524999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.525959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:45:33.526304: Inverter 0 count register writes 0
2026-08-16 17:45:33.582699: Total inverter register writes now 842
2026-08-16 17:45:33.705327: Info: Completed run status Demand
2026-08-16 17:45:33.719501: Info: record_status Demand
2026-08-16 17:45:33.741453: Saved current settings to /config/predbat_config.json
2026-08-16 17:45:33.741873: Compare, best tariff: current metric 318.25p
2026-08-16 17:45:52.349412: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0049 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0031 kWh ema_combined=0.0036 kWh
2026-08-16 17:46:03.927964: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:46:03.928382: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:46:03.928520: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:46:03.928770: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:46:03.931129: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:46:03.931273: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:46:03.931374: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:46:33.023968: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0047 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0029 kWh ema_combined=0.0034 kWh
2026-08-16 17:47:07.163752: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0121 val_mae=0.0046 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0026 kWh ema_combined=0.0031 kWh
2026-08-16 17:47:36.320737: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0105 val_mae=0.0041 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 17:48:06.359950: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0101 val_mae=0.0041 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-16 17:48:18.501712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:48:18.502025: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:48:18.502079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:48:18.502248: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:48:18.502296: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:48:18.502324: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:48:18.502447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:48:33.801809: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0041 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0028 kWh ema_combined=0.0027 kWh
2026-08-16 17:49:02.131678: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0102 val_mae=0.0041 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 17:49:31.600210: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0085 val_mae=0.0039 kWh val_bias=-0.0012 kWh (-2.2%) combined=0.0031 kWh ema_combined=0.0027 kWh
2026-08-16 17:49:58.555501: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0079 val_mae=0.0038 kWh val_bias=-0.0010 kWh (-1.8%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-16 17:50:00.869392: --------------- PredBat - update at 2026-08-16 17:50:00+01:00 with clock skew 0 minutes, minutes now 1070
2026-08-16 17:50:00.870880: Saved current settings to /config/predbat_config.json
2026-08-16 17:50:00.871083: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 17:50:00.871267: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:50:00.872175: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:50:00.954718: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:50:00.955111: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:50:00.955462: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:50:00.956205: Cars 1 charging from battery False 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-16 17:50:00.975750: Predbat mode is set to Control charge & discharge
2026-08-16 17:50:01.258464: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:50:01.259555: Using load_power data to fill gaps in load_today data
2026-08-16 17:50:02.565130: Processing 721 30-minute periods for power integration
2026-08-16 17:50:02.899193: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:50:02.899363: Car charging hold False, threshold 6.0kWh
2026-08-16 17:50:02.899422: Current data so far today: load 8.7kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:50:02.956273: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:50:02.957605: Standing charge is set to 46.63p
2026-08-16 17:50:03.268435: 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-16 17:50:03.268823: 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-16 17:50:03.276818: 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-16 17:50:03.277196: 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-16 17:50:03.277475: 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-16 17:50:03.277775: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.277925: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278061: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278197: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278339: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278508: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278653: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.278806: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.279083: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:50:03.279165: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:50:03.286520: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:50:03.287047: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:50:03.403547: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:50:03.403873: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:50:03.405934: High export rate found rates in range 99p to -99p
2026-08-16 17:50:03.444618: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:50:03.446140: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:50:03.446711: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:50:03.464421: Battery level now 11.04kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -8.03p, rate_forward 6.87p
2026-08-16 17:50:03.464904: Last hour: net energy 0.08kWh, import 0.08kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 1.37p, import 1.37p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:50:03.565329: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:50:03.565494: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:50:03.748833: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:50:03.787337: Today's load divergence 84.87%, in-day adjustment 84.95%, damping 0.95x, yesterday 82.97% today 85.63% blend 25.69%
2026-08-16 17:50:03.787565: Today's predicted so far 10.69kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 10.69kWh forecast extra.
2026-08-16 17:50:03.787644: Today's actual load so far 8.67kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 17:50:03.863998: Inverter 0: Type SK Sunsynk
2026-08-16 17:50:03.864112: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:50:03.864365: Reserve min: 7%, battery_min: 7%
2026-08-16 17:50:03.864470: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:50:03.864840: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 279W, current battery voltage 51.2V, grid power -54W, load power 343W, PV Power 0W
2026-08-16 17:50:03.865126: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:50:03.865261: Inverter 0 scheduled charge enable is False
2026-08-16 17:50:03.865319: Inverter 0 charge windows currently []
2026-08-16 17:50:03.865370: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:50:03.865546: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:50:03.865599: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:50:03.865655: Inverter 0 scheduled discharge enable is False
2026-08-16 17:50:03.865869: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:50:03.865924: Inverter 0 discharge windows currently []
2026-08-16 17:50:03.865960: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:50:03.866000: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:50:03.866026: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:50:03.991360: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:50:03.991634: Plan was last updated on 2026-08-16 17:45:00+01:00 and is now 5.0 minutes old
2026-08-16 17:50:03.992029: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:50:03.992088: Best export window [  ]
2026-08-16 17:50:03.993409: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:50:04.005132: Load divergence over 8.0 hours mean 631.03W, min 373.2W, max 1047.6W, std dev 214.26W, divergence 16.98%
2026-08-16 17:50:04.063887: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:50:04.072162: LoadML is_calculating True
2026-08-16 17:50:04.072313: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:50:04.187616: predict base end_record 08-18 03:35:00, final soc 1.12kWh, metric 666.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:10:00, load 31.74kWh, PV 0.0kWh
2026-08-16 17:50:04.451345: Battery has 19.33 hours left - now at 10.88kWh
2026-08-16 17:50:04.551877: predict base10 end_record 08-18 03:35:00, final soc 1.12kWh, metric 694.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 32.84kWh, PV 0.0kWh
2026-08-16 17:50:04.735379: predict best10 end_record 08-18 03:35:00, final soc 1.44kWh, metric 515.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.84kWh, PV 0.0kWh
2026-08-16 17:50:04.953606: predict best end_record 08-18 03:35:00, final soc 1.51kWh, metric 507.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 00:00:00, load 31.74kWh, PV 0.0kWh
2026-08-16 17:50:04.975888: Saving plan best values to HA entities
2026-08-16 17:50:05.334259: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:50:05.342783: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 17:50:05.353157: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.63kWh, house 6.67kWh, export 0.0kWh, metric 507.21p, metric10 515.63p
2026-08-16 17:50:05.492802: Marginal costs baseline metric (no standing charge): 413.9444
2026-08-16 17:50:05.893014: Marginal energy costs matrix computed: min=8.0 max=31.73
2026-08-16 17:50:06.220004: Rate array import [{'start': 1070, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3095, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1070, 'end': 3095, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:50:06.222010: - Your estimated bill for today is £2.96 and tomorrow is £1.37
2026-08-16 17:50:06.222073: - Import rates are very expensive (33.8p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:50:06.222974: - The battery is currently at 68% and is in eco mode for the next 9 hours.
2026-08-16 17:50:06.223073: - For the next 48 hours there will be no solar generation.
2026-08-16 17:50:06.223106: - You will run out of battery in 30 hours.
2026-08-16 17:50:06.223126: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:50:06.223144: 
2026-08-16 17:50:06.273386: Plan calculation took 2.28 seconds
2026-08-16 17:50:06.277186: No high rate period found
2026-08-16 17:50:06.381226: Import threshold used for optimisation was 8.0p
2026-08-16 17:50:06.568001: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:50:06.602053: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 68%, target 100%
2026-08-16 17:50:06.602241: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:50:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:50:06.602331: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:50:06.602578: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:50:06.602668: No export window planned
2026-08-16 17:50:06.602810: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:50:06.602857: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:50:06.603054: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:50:06.603242: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:50:06.603303: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:50:06.603369: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:50:06.603472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603523: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.603987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604391: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:50:06.604527: Inverter 0 count register writes 0
2026-08-16 17:50:06.656528: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 17:50:06.664993: Total inverter register writes now 842
2026-08-16 17:50:06.739714: Info: Completed run status Demand
2026-08-16 17:50:06.751596: Info: record_status Demand
2026-08-16 17:50:06.761798: Saved current settings to /config/predbat_config.json
2026-08-16 17:50:06.762020: Compare, best tariff: current metric 318.25p
2026-08-16 17:50:31.887824: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0073 val_mae=0.0034 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 17:50:48.957542: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:50:48.957854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:50:48.957908: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:50:48.958057: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:50:48.958099: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:50:48.958122: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:50:48.958146: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:51:00.255739: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0037 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 17:51:28.908506: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0072 val_mae=0.0031 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-16 17:51:58.611128: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0068 val_mae=0.0033 kWh val_bias=-0.0012 kWh (-2.2%) combined=0.0031 kWh ema_combined=0.0025 kWh
2026-08-16 17:52:29.097095: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0076 val_mae=0.0037 kWh val_bias=+0.0013 kWh (+2.4%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-16 17:52:56.853038: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-16 17:53:03.433049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:53:03.433327: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:53:03.433376: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:53:03.433532: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:53:03.433575: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:53:03.433597: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:53:03.433627: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:53:25.348082: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0063 val_mae=0.0032 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 17:53:54.048425: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0068 val_mae=0.0030 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-16 17:54:21.614555: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0030 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 17:54:48.180114: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-16 17:55:00.841659: --------------- PredBat - update at 2026-08-16 17:55:00+01:00 with clock skew 0 minutes, minutes now 1075
2026-08-16 17:55:00.842654: Saved current settings to /config/predbat_config.json
2026-08-16 17:55:00.842824: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 17:55:00.843036: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:55:00.843164: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:55:00.899171: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:55:00.899348: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:55:00.899599: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:55:00.900323: Cars 1 charging from battery False 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-16 17:55:00.900488: Predbat mode is set to Control charge & discharge
2026-08-16 17:55:01.288600: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:55:01.289270: Using load_power data to fill gaps in load_today data
2026-08-16 17:55:02.750883: Processing 721 30-minute periods for power integration
2026-08-16 17:55:02.945395: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:55:02.945576: Car charging hold False, threshold 6.0kWh
2026-08-16 17:55:02.945653: Current data so far today: load 8.7kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:55:02.972597: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['16:00:00'], battery size [58.6]kWh
2026-08-16 17:55:02.973904: Standing charge is set to 46.63p
2026-08-16 17:55:03.264083: 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-16 17:55:03.270409: 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-16 17:55:03.270836: 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-16 17:55:03.271161: 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-16 17:55:03.271472: 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-16 17:55:03.272421: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.272715: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.273009: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.273275: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.273507: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.273729: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.273928: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.274114: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.274410: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:55:03.274576: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:55:03.280195: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:55:03.280890: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:55:03.326172: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:55:03.327054: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:55:03.328720: High export rate found rates in range 99p to -99p
2026-08-16 17:55:03.363297: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:55:03.363739: Car 0 plan charging from 31.644000000000002kWh to 100.0% (58.6kWh), with slots [{'start': 1410, 'end': 1440, 'average': 8.0}, {'start': 1440, 'end': 1470, 'average': 8.0}, {'start': 1470, 'end': 1500, 'average': 8.0}, {'start': 1500, 'end': 1530, 'average': 8.0}, {'start': 1530, 'end': 1560, 'average': 8.0}, {'start': 1560, 'end': 1590, 'average': 8.0}, {'start': 1590, 'end': 1620, 'average': 8.0}, {'start': 1620, 'end': 1650, 'average': 8.0}, {'start': 1650, 'end': 1680, 'average': 8.0}, {'start': 1680, 'end': 1710, 'average': 8.0}, {'start': 1710, 'end': 1740, 'average': 8.0}, {'start': 1740, 'end': 1770, 'average': 8.0}, {'start': 1890, 'end': 1920, 'average': 8.0}, {'start': 2850, 'end': 2880, 'average': 8.0}, {'start': 2880, 'end': 2910, 'average': 8.0}, {'start': 2910, 'end': 2940, 'average': 8.0}, {'start': 2940, 'end': 2970, 'average': 8.0}, {'start': 2970, 'end': 3000, 'average': 8.0}, {'start': 3000, 'end': 3030, 'average': 8.0}, {'start': 3030, 'end': 3060, 'average': 8.0}, {'start': 3060, 'end': 3090, 'average': 8.0}, {'start': 3090, 'end': 3120, 'average': 8.0}, {'start': 3120, 'end': 3150, 'average': 8.0}, {'start': 3150, 'end': 3180, 'average': 8.0}, {'start': 3180, 'end': 3210, 'average': 8.0}], ready by 16:00:00
2026-08-16 17:55:03.364396: Car 0 charging plan is: [{'start': 1410, 'end': 1440, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1440, 'end': 1470, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1470, 'end': 1500, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1500, 'end': 1530, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1530, 'end': 1560, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1560, 'end': 1590, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1590, 'end': 1620, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'octopus': False}, {'start': 1620, 'end': 1650, 'kwh': 3.4, 'average': 8.0, 'cost': 27.2, 'octopus': False}]
2026-08-16 17:55:03.386389: Battery level now 10.88kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -9.13p, rate_forward 6.87p
2026-08-16 17:55:03.387029: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.17p, import 1.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:55:03.526966: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:55:03.527171: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:55:03.718600: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:55:03.861757: Today's load divergence 84.71%, in-day adjustment 84.84%, damping 0.95x, yesterday 82.97% today 85.47% blend 25.35%
2026-08-16 17:55:03.861904: Today's predicted so far 10.71kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 10.71kWh forecast extra.
2026-08-16 17:55:03.861962: Today's actual load so far 8.67kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 17:55:03.962814: Inverter 0: Type SK Sunsynk
2026-08-16 17:55:03.963112: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:55:03.963620: Reserve min: 7%, battery_min: 7%
2026-08-16 17:55:03.963810: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:55:03.964152: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -55W, load power 340W, PV Power 0W
2026-08-16 17:55:03.964447: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:55:03.964561: Inverter 0 scheduled charge enable is False
2026-08-16 17:55:03.964592: Inverter 0 charge windows currently []
2026-08-16 17:55:03.964619: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:55:03.964751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:55:03.964789: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:55:03.964829: Inverter 0 scheduled discharge enable is False
2026-08-16 17:55:03.964995: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:55:03.965038: Inverter 0 discharge windows currently []
2026-08-16 17:55:03.965083: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:55:03.965103: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:55:03.965122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:55:04.078182: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:55:04.078321: Plan was last updated on 2026-08-16 17:45:00+01:00 and is now 10.0 minutes old
2026-08-16 17:55:04.078602: Best charge window [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 17:55:04.078653: Best export window [  ]
2026-08-16 17:55:04.080067: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:55:04.084906: Load divergence over 8.0 hours mean 634.24W, min 345.6W, max 1060.8W, std dev 207.78W, divergence 16.38%
2026-08-16 17:55:04.141953: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:55:04.142306: LoadML is_calculating True
2026-08-16 17:55:04.142484: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:55:04.279969: predict base end_record 08-18 03:40:00, final soc 1.12kWh, metric 665.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:15:00, load 31.75kWh, PV 0.0kWh
2026-08-16 17:55:04.566465: Battery has 19.33 hours left - now at 10.88kWh
2026-08-16 17:55:04.622422: predict base10 end_record 08-18 03:40:00, final soc 1.12kWh, metric 693.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 32.85kWh, PV 0.0kWh
2026-08-16 17:55:04.735062: predict best10 end_record 08-18 03:40:00, final soc 1.77kWh, metric 518.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.85kWh, PV 0.0kWh
2026-08-16 17:55:04.920213: predict best end_record 08-18 03:40:00, final soc 1.9kWh, metric 510.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.75kWh, PV 0.0kWh
2026-08-16 17:55:04.921478: Saving plan best values to HA entities
2026-08-16 17:55:05.270460: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:55:05.278212: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:55:05.302424: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 9.06kWh, house 6.67kWh, export 0.0kWh, metric 510.59p, metric10 518.45p
2026-08-16 17:55:05.474008: Marginal costs baseline metric (no standing charge): 417.3226
2026-08-16 17:55:06.096369: Marginal energy costs matrix computed: min=8.0 max=31.73
2026-08-16 17:55:06.258533: Rate array import [{'start': 1075, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3100, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1075, 'end': 3100, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:55:06.259798: - Your estimated bill for today is £2.96 and tomorrow is £1.36
2026-08-16 17:55:06.259970: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:55:06.260153: - The battery is currently at 68% and is in eco mode for the next 9 hours.
2026-08-16 17:55:06.260327: - For the next 48 hours there will be no solar generation.
2026-08-16 17:55:06.260494: - You will run out of battery in 30 hours.
2026-08-16 17:55:06.260657: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:55:06.260866: 
2026-08-16 17:55:06.365488: Plan calculation took 2.29 seconds
2026-08-16 17:55:06.370908: No high rate period found
2026-08-16 17:55:06.495864: Import threshold used for optimisation was 8.0p
2026-08-16 17:55:06.572073: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:55:06.579429: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 68%, target 100%
2026-08-16 17:55:06.579563: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:55:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:55:06.579640: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:55:06.579849: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:55:06.579931: No export window planned
2026-08-16 17:55:06.580033: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:55:06.580070: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:55:06.580207: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:55:06.580364: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:55:06.580416: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:55:06.580464: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:55:06.580547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580590: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580619: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580669: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.580943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.581002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.581145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:06.581278: Inverter 0 count register writes 0
2026-08-16 17:55:06.603506: 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-16 17:55:06.603855: Recompute is saving previous plan...
2026-08-16 17:55:06.604932: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:55:06.605137: Best export window [  ]
2026-08-16 17:55:06.606118: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:55:06.609404: Load divergence over 8.0 hours mean 634.24W, min 345.6W, max 1060.8W, std dev 207.78W, divergence 16.38%
2026-08-16 17:55:06.627128: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:55:06.647196: LoadML is_calculating True
2026-08-16 17:55:06.647268: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:55:06.684808: 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(0.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-16 17:55:06.685323: Optimise levels pass started at 2026-08-16 17:55:06
2026-08-16 17:55:06.685373: Optimise all windows, total charge 25 export 1
2026-08-16 17:55:09.539931: >> Region optimisation pass width 960 gives best_metric 486.02p, best_cost 526.28p, best_cycle 41.63kWh, best_import 29.35kWh
2026-08-16 17:55:09.898125: >> Region optimisation pass width 480 gives best_metric 486.02p, best_cost 526.28p, best_cycle 41.63kWh, best_import 29.35kWh
2026-08-16 17:55:10.413272: >> Region optimisation pass width 240 gives best_metric 486.02p, best_cost 526.28p, best_cycle 41.63kWh, best_import 29.35kWh
2026-08-16 17:55:14.757212: >> Region optimisation pass width 120 gives best_metric 481.87p, best_cost 498.83p, best_cycle 41.78kWh, best_import 25.92kWh
2026-08-16 17:55:14.789877: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 21
2026-08-16 17:55:14.789952: Optimise levels pass ended at 2026-08-16 17:55:14, duration 8.1 seconds tried 70 combinations
2026-08-16 17:55:14.790089: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 481.87p, best_keep 0kWh, best_cycle 41.78kWh, best_carbon 0kg, best_import 25.92kWh
2026-08-16 17:55:14.819814: Starting detailed optimisation end_record 08-18 03: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, 13.75, 13.75, 13.75, 13.75, 0, 0, 0, 0, 4.5, 4.5, 13.75, 13.75, 13.75, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-16 17:55:26.248602: Successfully loaded apps.yaml from apps.yaml
2026-08-16 17:55:27.199303: Tweak plan optimisation started metric 403.44p, cost 409.8p
2026-08-16 17:55:27.773625: Tweak optimisation finished metric 403.44p, cost 409.8p, metric_keep 0kWh, cycle 22.56kWh, carbon 0kg, import 14.79kWh, changed 8 window(s)
2026-08-16 17:55:27.809686: Swap charge optimisation started metric 403.44p, cost 409.8p, min_improvement_swap 0.1p
2026-08-16 17:55:29.285781: Swap charge optimisation finished metric 403.44p, cost 409.8p
2026-08-16 17:55:29.409898: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 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 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 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% ] reserve 1.12
2026-08-16 17:55:29.414211: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:55:29.414722: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:55:29.415154: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 100%, 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 86%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:55:29.533944: Previous plan best metric is 403.44 (cost 409.8) and new plan best metric is 403.44 (cost 409.8)
2026-08-16 17:55:29.534515: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 17:55:29.534686: Plan valid is now true after recompute was False
2026-08-16 17:55:29.597255: predict base end_record 08-18 03:30:00, final soc 1.12kWh, metric 664.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 13:15:00, load 31.64kWh, PV 0.0kWh
2026-08-16 17:55:29.866168: Battery has 19.33 hours left - now at 10.88kWh
2026-08-16 17:55:29.980735: predict base10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 692.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 12:40:00, load 32.73kWh, PV 0.0kWh
2026-08-16 17:55:30.174245: predict best10 end_record 08-18 03:30:00, final soc 1.12kWh, metric 512.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 32.73kWh, PV 0.0kWh
2026-08-16 17:55:30.327804: predict best end_record 08-18 03:30:00, final soc 1.12kWh, metric 503.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 31.64kWh, PV 0.0kWh
2026-08-16 17:55:30.328011: Saving plan best values to HA entities
2026-08-16 17:55:30.690458: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:55:30.698560: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:55:30.734042: Best charging limit SoC's [16.0, 12.0, 13.75, 16.0]kWh, export []kWh gives import battery 8.12kWh, house 6.67kWh, export 0.0kWh, metric 503.06p, metric10 512.0p
2026-08-16 17:55:30.887466: Marginal costs baseline metric (no standing charge): 409.7952
2026-08-16 17:55:31.529892: Marginal energy costs matrix computed: min=8.0 max=31.73
2026-08-16 17:55:31.640829: Rate array import [{'start': 1075, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 3090, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1075, 'end': 3090, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:55:31.641753: - Your estimated bill for today is £2.96 and tomorrow is £1.36
2026-08-16 17:55:31.641914: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:55:31.642031: - The battery is currently at 68% and is in eco mode for the next 9 hours.
2026-08-16 17:55:31.642136: - For the next 48 hours there will be no solar generation.
2026-08-16 17:55:31.642231: - You will run out of battery in 30 hours.
2026-08-16 17:55:31.642334: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-16 17:55:31.642428: 
2026-08-16 17:55:31.739418: Plan calculation took 25.14 seconds
2026-08-16 17:55:31.739899: Inverter 0: Type SK Sunsynk
2026-08-16 17:55:31.740044: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:55:31.740335: Reserve min: 7%, battery_min: 7%
2026-08-16 17:55:31.740505: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:55:31.740896: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -54W, load power 341W, PV Power 0W
2026-08-16 17:55:31.741216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:55:31.741411: Inverter 0 scheduled charge enable is False
2026-08-16 17:55:31.741576: Inverter 0 charge windows currently []
2026-08-16 17:55:31.741717: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:55:31.741946: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:55:31.742072: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:55:31.742193: Inverter 0 scheduled discharge enable is False
2026-08-16 17:55:31.742434: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:55:31.742562: Inverter 0 discharge windows currently []
2026-08-16 17:55:31.742659: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:55:31.742779: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:55:31.742908: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:55:31.833424: Inverter 0 Charge window will be: 2026-08-17 03:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 68%, target 100%
2026-08-16 17:55:31.833824: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:55:00 target set_window_minutes 30 charge start time 08-17 03:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:55:31.833967: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:55:31.834345: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:55:31.834491: No export window planned
2026-08-16 17:55:31.834780: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:55:31.834926: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:55:31.835317: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:55:31.835755: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:55:31.835983: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:55:31.836208: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 17:55:31.836478: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.836650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.836863: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.837086: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.837448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.837811: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.838154: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.838728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.839038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.839534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.839856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.840191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.840493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.841032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:55:31.841345: Inverter 0 count register writes 0
2026-08-16 17:55:31.948803: Total inverter register writes now 842
2026-08-16 17:55:32.054414: Info: Completed run status Demand
2026-08-16 17:55:32.062944: Info: record_status Demand
2026-08-16 17:55:32.071413: Saved current settings to /config/predbat_config.json
2026-08-16 17:55:32.071711: Compare, best tariff: current metric 318.25p
2026-08-16 17:55:38.396236: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 17:56:04.223261: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:56:04.223589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:56:04.223646: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:56:04.223893: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:56:04.223955: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:56:04.223985: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:56:04.224014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:56:07.112215: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 17:56:34.634941: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 17:56:49.057289: MCP POST: Received request from 10.0.10.73
2026-08-16 17:56:49.057618: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:56:49.057707: MCP: Token verification failed: Not enough segments
2026-08-16 17:56:49.057759: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:56:53.513563: MCP POST: Received request from 10.0.10.73
2026-08-16 17:56:53.513809: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:56:53.513864: MCP: Token verification failed: Not enough segments
2026-08-16 17:56:53.513894: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:56:57.636209: MCP POST: Received request from 10.0.10.73
2026-08-16 17:56:57.636426: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:56:57.636468: MCP: Token verification failed: Not enough segments
2026-08-16 17:56:57.636497: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:02.808205: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 17:57:05.922359: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:05.922552: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:05.922597: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:05.922622: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:28.874326: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:28.874677: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:28.874835: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:28.874939: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:32.007839: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 17:57:49.601749: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:49.601905: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:49.601935: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:49.601953: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:49.617140: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:49.617375: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:49.617432: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:49.617471: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:49.635060: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:49.635302: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:49.635346: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:49.635367: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:54.616101: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:54.616366: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:54.616431: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:54.616453: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:54.616759: switch_event: switch.predbat_octopus_intelligent_charging = True
2026-08-16 17:57:54.669723: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:54.669915: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:54.669968: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:54.669997: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:54.670239: switch_event: switch.predbat_octopus_intelligent_ignore_unplugged = True
2026-08-16 17:57:54.746779: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:54.746996: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:54.747050: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:54.747080: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:57:54.749122: switch_event: switch.predbat_car_charging_from_battery = True
2026-08-16 17:57:54.759296: Set reset inverter true due to reset_inverter on item car_charging_from_battery
2026-08-16 17:57:59.020052: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0056 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-16 17:57:59.700546: MCP POST: Received request from 10.0.10.73
2026-08-16 17:57:59.700766: MCP: Could not even decode without verification: Not enough segments
2026-08-16 17:57:59.700821: MCP: Token verification failed: Not enough segments
2026-08-16 17:57:59.700973: MCP POST: Authenticated via legacy bearer token
2026-08-16 17:58:03.684517: Refreshing Predbat configuration
2026-08-16 17:58:05.118265: Saved current settings to /config/predbat_config.json
2026-08-16 17:58:05.119856: Validation of apps.yaml was successful
2026-08-16 17:58:05.120019: --------------- PredBat - update at 2026-08-16 17:55:00+01:00 with clock skew 0 minutes, minutes now 1075
2026-08-16 17:58:05.120705: Saved current settings to /config/predbat_config.json
2026-08-16 17:58:05.120825: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 63.1 minutes
2026-08-16 17:58:05.120938: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 17:58:05.121056: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 17:58:05.169840: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 17:58:05.169979: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 17:58:05.170143: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 17:58:05.170690: 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-16 17:58:05.170883: Predbat mode is set to Control charge & discharge
2026-08-16 17:58:05.545382: Found 21602 load_today datapoints going back 28 days
2026-08-16 17:58:05.545549: Using load_power data to fill gaps in load_today data
2026-08-16 17:58:06.674624: Processing 721 30-minute periods for power integration
2026-08-16 17:58:07.021975: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 17:58:07.023338: Car charging hold False, threshold 6.0kWh
2026-08-16 17:58:07.023442: Current data so far today: load 8.8kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 17:58:07.046978: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 17:58:07.047123: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 17:58:07.047910: Standing charge is set to 46.63p
2026-08-16 17:58:07.220873: 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-16 17:58:07.221254: 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-16 17:58:07.221557: 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-16 17:58:07.221842: 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-16 17:58:07.222098: 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-16 17:58:07.222355: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.222522: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.222686: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.222838: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.222986: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.223132: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.223281: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.223424: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.223688: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 17:58:07.223800: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 17:58:07.230548: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 17:58:07.232317: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 17:58:07.326196: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 17:58:07.326990: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 17:58:07.328463: High export rate found rates in range 99p to -99p
2026-08-16 17:58:07.364801: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 17:58:07.365270: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 17:58:07.366054: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 17:58:07.394377: Battery level now 10.88kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -9.13p, rate_forward 6.87p
2026-08-16 17:58:07.395036: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 1.17p, import 1.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 17:58:07.507937: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 17:58:07.508163: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 17:58:07.701630: Using weighted-bucket historical load forecast over 14 days
2026-08-16 17:58:07.740326: Today's load divergence 85.45%, in-day adjustment 85.37%, damping 0.95x, yesterday 82.97% today 86.18% blend 25.35%
2026-08-16 17:58:07.740515: Today's predicted so far 10.71kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 10.71kWh forecast extra.
2026-08-16 17:58:07.740568: Today's actual load so far 8.76kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 17:58:07.807568: Inverter 0: Type SK Sunsynk
2026-08-16 17:58:07.807693: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:58:07.807888: Reserve min: 7%, battery_min: 7%
2026-08-16 17:58:07.807964: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:58:07.808236: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 277W, current battery voltage 51.2V, grid power -55W, load power 341W, PV Power 0W
2026-08-16 17:58:07.808411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:58:07.808506: Inverter 0 scheduled charge enable is False
2026-08-16 17:58:07.808543: Inverter 0 charge windows currently []
2026-08-16 17:58:07.808571: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:58:07.808708: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:58:07.808750: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:58:07.808787: Inverter 0 scheduled discharge enable is False
2026-08-16 17:58:07.808923: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:58:07.808995: Inverter 0 discharge windows currently []
2026-08-16 17:58:07.809025: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:58:07.809044: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:58:07.809069: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:58:07.942236: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 17:58:07.942348: Will recompute the plan as it is invalid
2026-08-16 17:58:07.942402: Recompute, previous plan is invalid...
2026-08-16 17:58:07.943768: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 17:58:07.943835: Best export window [  ]
2026-08-16 17:58:07.945142: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 17:58:07.950009: Load divergence over 8.0 hours mean 634.24W, min 345.6W, max 1060.8W, std dev 207.78W, divergence 16.38%
2026-08-16 17:58:08.051462: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 17:58:08.051699: LoadML is_calculating True
2026-08-16 17:58:08.051750: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 17:58:08.071258: 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(0.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-16 17:58:08.073134: Optimise levels pass started at 2026-08-16 17:58:08
2026-08-16 17:58:08.073206: Optimise all windows, total charge 25 export 1
2026-08-16 17:58:10.372266: >> Region optimisation pass width 960 gives best_metric 486.25p, best_cost 526.5p, best_cycle 41.67kWh, best_import 29.38kWh
2026-08-16 17:58:10.763351: >> Region optimisation pass width 480 gives best_metric 486.25p, best_cost 526.5p, best_cycle 41.67kWh, best_import 29.38kWh
2026-08-16 17:58:11.291867: >> Region optimisation pass width 240 gives best_metric 486.25p, best_cost 526.5p, best_cycle 41.67kWh, best_import 29.38kWh
2026-08-16 17:58:14.984650: >> Region optimisation pass width 120 gives best_metric 482.09p, best_cost 499.06p, best_cycle 41.82kWh, best_import 25.95kWh
2026-08-16 17:58:14.985118: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 17:58:14.985225: Optimise levels pass ended at 2026-08-16 17:58:14, duration 6.9 seconds tried 76 combinations
2026-08-16 17:58:14.985428: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 482.09p, best_keep 0kWh, best_cycle 41.82kWh, best_carbon 0kg, best_import 25.95kWh
2026-08-16 17:58:15.014168: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 17:58:27.295565: Tweak plan optimisation started metric 374.11p, cost 384.69p
2026-08-16 17:58:29.743715: Tweak optimisation finished metric 374.11p, cost 384.69p, metric_keep 0kWh, cycle 22.05kWh, carbon 0kg, import 11.65kWh, changed 8 window(s)
2026-08-16 17:58:29.764844: Swap charge optimisation started metric 374.11p, cost 384.69p, min_improvement_swap 0.1p
2026-08-16 17:58:31.642925: Swap charge optimisation finished metric 374.11p, cost 384.69p
2026-08-16 17:58:31.808612: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 373.02p -> 372.85p, plan now metric 375.47p, cost 381.66p, cycle 22.56kWh, import 11.27kWh
2026-08-16 17:58:31.824676: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 17:58:31.825375: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:58:31.825870: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:58:31.826282: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 17:58:31.826459: Plan valid is now true after recompute was False
2026-08-16 17:58:31.868882: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 677.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:40:00, load 28.06kWh, PV 0.0kWh
2026-08-16 17:58:32.122437: Battery has 13.75 hours left - now at 10.88kWh
2026-08-16 17:58:32.214427: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 712.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:35:00, load 28.98kWh, PV 0.0kWh
2026-08-16 17:58:32.331913: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.98kWh, PV 0.0kWh
2026-08-16 17:58:32.443037: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 428.3p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.06kWh, PV 0.0kWh
2026-08-16 17:58:32.443221: Saving plan best values to HA entities
2026-08-16 17:58:32.794061: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 17:58:32.801193: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 17:58:32.809210: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.27kWh, house 0.0kWh, export 0.0kWh, metric 428.3p, metric10 444.68p
2026-08-16 17:58:32.970172: Marginal costs baseline metric (no standing charge): 381.6629
2026-08-16 17:58:33.334447: Marginal energy costs matrix computed: min=8.0 max=33.11
2026-08-16 17:58:33.457849: Rate array import [{'start': 1075, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1075, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 17:58:33.458841: - Your estimated bill for today is £3.16 and tomorrow is £1.38
2026-08-16 17:58:33.458900: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 17:58:33.458930: - The battery is currently at 68% and is in eco mode for the next 5 and a half hours.
2026-08-16 17:58:33.458955: - For the next 48 hours there will be no solar generation.
2026-08-16 17:58:33.458979: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 17:58:33.459013: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-16 17:58:33.459070: 
2026-08-16 17:58:33.534176: Plan calculation took 25.59 seconds
2026-08-16 17:58:33.591491: Saved plan to storage
2026-08-16 17:58:33.596864: No high rate period found
2026-08-16 17:58:33.699189: Import threshold used for optimisation was 8.0p
2026-08-16 17:58:33.786261: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 17:58:33.795188: Inverter 0: Type SK Sunsynk
2026-08-16 17:58:33.795303: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 17:58:33.795584: Reserve min: 7%, battery_min: 7%
2026-08-16 17:58:33.795692: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 17:58:33.796089: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 276W, current battery voltage 51.2V, grid power -54W, load power 341W, PV Power 0W
2026-08-16 17:58:33.796312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:58:33.796439: Inverter 0 scheduled charge enable is False
2026-08-16 17:58:33.796488: Inverter 0 charge windows currently []
2026-08-16 17:58:33.796523: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 17:58:33.796667: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:58:33.796735: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:58:33.796785: Inverter 0 scheduled discharge enable is False
2026-08-16 17:58:33.796980: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:58:33.797035: Inverter 0 discharge windows currently []
2026-08-16 17:58:33.797065: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:58:33.797183: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:58:33.797229: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:58:33.886155: Reset inverter settings to safe mode (set_charge_window=True set_export_window=True force=)
2026-08-16 17:58:33.886385: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:58:33.886762: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:58:33.886993: 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-16 17:58:33.986639: 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-16 17:58:34.104518: 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-16 17:58:34.175309: 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-16 17:58:34.278043: 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-16 17:58:34.381921: 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-16 17:58:34.506091: 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-16 17:58:34.614262: Inverter 0 Current charge limit is 7% and new target is 100%
2026-08-16 17:58:39.719821: Inverter 0 write_and_poll_value: Wrote 100 to charge_limit, successfully now 100.0
2026-08-16 17:58:39.720456: Inverter 0 Current Reserve is 1% and new target is 7%
2026-08-16 17:58:44.740110: Inverter 0 write_and_poll_value: Wrote 7 to reserve, successfully now 7.0
2026-08-16 17:58:44.740467: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:58:44.740524: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:58:44.740854: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:58:44.741192: 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-16 17:58:44.794503: 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-16 17:58:44.905190: 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-16 17:58:45.003317: 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-16 17:58:45.107357: 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-16 17:58:45.149178: 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-16 17:58:45.253663: 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-16 17:58:45.368437: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 17:58:45.368637: Inverter 0 disabled charge window while waiting for schedule (now 08-16 17:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 17:58:45.368758: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:58:45.369064: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:58:45.369174: No export window planned
2026-08-16 17:58:45.369338: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 17:58:45.369484: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 17:58:45.369835: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 17:58:45.370157: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 17:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 17:58:45.370356: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 17:58:45.370532: Inverter 0 Current charge limit is 100% and new target is 7%
2026-08-16 17:58:46.377429: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0051 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-16 17:58:50.477249: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-16 17:58:50.477570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477703: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477769: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.477923: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.478969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.479097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 17:58:50.479207: Inverter 0 count register writes 2
2026-08-16 17:58:50.533660: Total inverter register writes now 844
2026-08-16 17:58:50.596088: Info: Completed run status Demand
2026-08-16 17:58:50.619570: Info: record_status Demand
2026-08-16 17:58:50.627412: Saved current settings to /config/predbat_config.json
2026-08-16 17:58:50.627783: Compare, best tariff: current metric 318.25p
2026-08-16 17:58:50.742997: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 17:59:14.896700: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-16 17:59:33.818198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 17:59:33.819698: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 17:59:33.819863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 17:59:33.820130: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 17:59:33.820257: Note: Inverter does not support discharge freeze - disabled
2026-08-16 17:59:33.820364: Note: Inverter does not support charge freeze - disabled
2026-08-16 17:59:33.820467: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 17:59:43.247085: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 18:00:00.987969: --------------- PredBat - update at 2026-08-16 18:00:00+01:00 with clock skew 0 minutes, minutes now 1080
2026-08-16 18:00:00.989446: Saved current settings to /config/predbat_config.json
2026-08-16 18:00:00.989769: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 18:00:00.990000: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:00:00.990199: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:00:01.043998: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:00:01.044163: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:00:01.044386: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:00:01.045345: 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-16 18:00:01.045623: Predbat mode is set to Control charge & discharge
2026-08-16 18:00:01.433037: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:00:01.433481: Using load_power data to fill gaps in load_today data
2026-08-16 18:00:03.222943: Processing 721 30-minute periods for power integration
2026-08-16 18:00:03.403815: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:00:03.403963: Car charging hold False, threshold 6.0kWh
2026-08-16 18:00:03.404003: Current data so far today: load 8.82kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:00:03.419307: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:00:03.419417: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:00:03.420056: Standing charge is set to 46.63p
2026-08-16 18:00:03.813729: 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-16 18:00:03.814172: 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-16 18:00:03.814497: 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-16 18:00:03.814807: 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-16 18:00:03.815139: 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-16 18:00:03.815449: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.815612: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.815805: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.816047: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.816290: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.816565: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.816832: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.817115: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.817655: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:00:03.817729: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:00:03.823672: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:00:03.824248: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:00:03.875187: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:00:03.875322: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:00:03.876680: High export rate found rates in range 99p to -99p
2026-08-16 18:00:03.919262: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:00:03.919501: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:00:03.919603: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:00:03.940776: Battery level now 10.88kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:00:03.941207: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:00:04.092274: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 18:00:04.092481: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:00:04.355979: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:00:04.386924: Today's load divergence 85.08%, in-day adjustment 85.11%, damping 0.95x, yesterday 82.97% today 85.82% blend 25.0%
2026-08-16 18:00:04.387032: Today's predicted so far 10.84kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.84kWh forecast extra.
2026-08-16 18:00:04.387066: Today's actual load so far 8.84kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 18:00:04.466644: Inverter 0: Type SK Sunsynk
2026-08-16 18:00:04.466768: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:00:04.467043: Reserve min: 7%, battery_min: 7%
2026-08-16 18:00:04.467159: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:00:04.467532: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -56W, load power 337W, PV Power 0W
2026-08-16 18:00:04.467755: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:00:04.467877: Inverter 0 scheduled charge enable is False
2026-08-16 18:00:04.467946: Inverter 0 charge windows currently []
2026-08-16 18:00:04.467985: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:00:04.468139: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:00:04.468212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:00:04.468372: Inverter 0 scheduled discharge enable is False
2026-08-16 18:00:04.469075: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:00:04.469147: Inverter 0 discharge windows currently []
2026-08-16 18:00:04.469998: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:00:04.470166: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:00:04.470311: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:00:04.633119: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:00:04.633258: Plan was last updated on 2026-08-16 17:55:00+01:00 and is now 5.0 minutes old
2026-08-16 18:00:04.633566: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:00:04.633620: Best export window [  ]
2026-08-16 18:00:04.634535: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:00:04.638021: Load divergence over 8.0 hours mean 634.28W, min 322.8W, max 1100.4W, std dev 208.93W, divergence 16.47%
2026-08-16 18:00:04.680183: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:00:04.680326: LoadML is_calculating True
2026-08-16 18:00:04.680355: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 18:00:04.749292: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 678.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.16kWh, PV 0.0kWh
2026-08-16 18:00:05.053331: Battery has 13.75 hours left - now at 10.88kWh
2026-08-16 18:00:05.190459: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 712.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 29.08kWh, PV 0.0kWh
2026-08-16 18:00:05.436550: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 448.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.08kWh, PV 0.0kWh
2026-08-16 18:00:05.664771: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 432.12p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.16kWh, PV 0.0kWh
2026-08-16 18:00:05.664879: Saving plan best values to HA entities
2026-08-16 18:00:06.029378: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:00:06.047969: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 18:00:06.085882: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.75kWh, house 0.0kWh, export 0.0kWh, metric 432.12p, metric10 448.2p
2026-08-16 18:00:06.275321: Marginal costs baseline metric (no standing charge): 385.483
2026-08-16 18:00:06.804689: Marginal energy costs matrix computed: min=8.0 max=33.13
2026-08-16 18:00:06.999276: Rate array import [{'start': 1080, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1080, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:00:07.021711: - Your estimated bill for today is £3.15 and tomorrow is £1.37
2026-08-16 18:00:07.021955: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:00:07.022076: - The battery is currently at 68% and is in eco mode for the next 5 and a half hours.
2026-08-16 18:00:07.022143: - For the next 48 hours there will be no solar generation.
2026-08-16 18:00:07.022203: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:00:07.022233: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-16 18:00:07.022254: 
2026-08-16 18:00:07.149765: Plan calculation took 2.52 seconds
2026-08-16 18:00:07.171561: No high rate period found
2026-08-16 18:00:07.366082: Import threshold used for optimisation was 8.0p
2026-08-16 18:00:07.589645: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:00:07.605371: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:00:07.605535: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:00:07.605610: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:00:07.605870: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:00:07.606013: No export window planned
2026-08-16 18:00:07.606152: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:00:07.606297: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:00:07.606507: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:00:07.606680: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:00:07.606865: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:00:07.607079: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:00:07.607277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.607451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.607572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.607617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.608983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.609130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.609175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:00:07.609201: Inverter 0 count register writes 0
2026-08-16 18:00:07.645415: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 18:00:07.657553: Total inverter register writes now 844
2026-08-16 18:00:07.736886: Info: Completed run status Demand
2026-08-16 18:00:07.773096: Info: record_status Demand
2026-08-16 18:00:07.791640: Saved current settings to /config/predbat_config.json
2026-08-16 18:00:07.794844: Compare, best tariff: current metric 318.25p
2026-08-16 18:00:22.609521: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0024 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-16 18:00:22.610544: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 18:00:22.610701: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-16 18:00:27.699918: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 18:00:27.725243: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0023 kWh
2026-08-16 18:00:27.726823: ML Predictor: Curriculum final pass 5/5: full dataset (58.1 days)
2026-08-16 18:00:27.726959: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 18:00:28.503881: ML Predictor: Creating dataset with 1394 hours of training data, 48 hours validation
2026-08-16 18:00:34.619870: ML Predictor: Created 16451 training samples, 576 validation samples
2026-08-16 18:00:34.671112: 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.6385 std=4.5149) import_rate(mean=16.8520 std=8.3861) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1918 std=0.5268)
2026-08-16 18:00:34.760315: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 18:00:34.777356: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 18:00:34.819467: ML Predictor: Baseline (pre-finetune) val_mae=0.0027 kWh val_bias=-0.0002 kWh
2026-08-16 18:00:49.158245: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:00:49.158574: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:00:49.158632: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:00:49.158806: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:00:49.158855: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:00:49.158883: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:00:49.159041: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:01:02.176765: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0083 val_mae=0.0037 kWh val_bias=+0.0008 kWh (+1.5%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-16 18:01:31.252214: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0120 val_mae=0.0049 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0029 kWh ema_combined=0.0025 kWh
2026-08-16 18:02:01.569712: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0154 val_mae=0.0048 kWh val_bias=-0.0023 kWh (-4.3%) combined=0.0046 kWh ema_combined=0.0031 kWh
2026-08-16 18:02:31.343985: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0154 val_mae=0.0038 kWh val_bias=+0.0009 kWh (+1.7%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-16 18:03:00.071928: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0100 val_mae=0.0039 kWh val_bias=+0.0008 kWh (+1.6%) combined=0.0034 kWh ema_combined=0.0032 kWh
2026-08-16 18:03:03.717405: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:03:03.717662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:03:03.717719: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:03:03.717861: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:03:03.717898: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:03:03.717920: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:03:03.717939: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:03:28.416911: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0088 val_mae=0.0033 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0028 kWh
2026-08-16 18:03:57.567372: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0089 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 18:04:25.030799: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0090 val_mae=0.0032 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-16 18:04:54.454864: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0089 val_mae=0.0038 kWh val_bias=+0.0013 kWh (+2.4%) combined=0.0038 kWh ema_combined=0.0029 kWh
2026-08-16 18:05:00.142952: --------------- PredBat - update at 2026-08-16 18:05:00+01:00 with clock skew 0 minutes, minutes now 1085
2026-08-16 18:05:00.144025: Saved current settings to /config/predbat_config.json
2026-08-16 18:05:00.144230: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 18:05:00.144432: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:05:00.144563: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:05:00.183696: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:05:00.183866: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:05:00.184239: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:05:00.185032: 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-16 18:05:00.185204: Predbat mode is set to Control charge & discharge
2026-08-16 18:05:00.551932: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:05:00.552119: Using load_power data to fill gaps in load_today data
2026-08-16 18:05:02.016132: Processing 721 30-minute periods for power integration
2026-08-16 18:05:02.227259: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:05:02.227427: Car charging hold False, threshold 6.0kWh
2026-08-16 18:05:02.227496: Current data so far today: load 8.85kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:05:02.251585: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:05:02.251716: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:05:02.252653: Standing charge is set to 46.63p
2026-08-16 18:05:02.497825: 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-16 18:05:02.498745: 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-16 18:05:02.498965: 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-16 18:05:02.499156: 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-16 18:05:02.499461: 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-16 18:05:02.499827: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.499954: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500046: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500123: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500198: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500271: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500373: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500462: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500675: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:05:02.500816: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:05:02.506569: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:05:02.507142: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:05:02.552813: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:05:02.553163: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:05:02.555010: High export rate found rates in range 99p to -99p
2026-08-16 18:05:02.585796: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:05:02.586114: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:05:02.586304: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:05:02.620144: Battery level now 10.88kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:05:02.620781: 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-16 18:05:02.752760: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 18:05:02.753025: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:05:03.080761: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:05:03.118656: Today's load divergence 85.05%, in-day adjustment 85.1%, damping 0.95x, yesterday 82.97% today 85.8% blend 24.65%
2026-08-16 18:05:03.119205: Today's predicted so far 10.93kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 10.93kWh forecast extra.
2026-08-16 18:05:03.119291: Today's actual load so far 8.93kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 18:05:03.168863: Inverter 0: Type SK Sunsynk
2026-08-16 18:05:03.168993: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:05:03.169197: Reserve min: 7%, battery_min: 7%
2026-08-16 18:05:03.169274: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:05:03.169555: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -54W, load power 341W, PV Power 0W
2026-08-16 18:05:03.169717: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:05:03.169810: Inverter 0 scheduled charge enable is False
2026-08-16 18:05:03.169850: Inverter 0 charge windows currently []
2026-08-16 18:05:03.169878: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:05:03.169991: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:05:03.170030: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:05:03.170067: Inverter 0 scheduled discharge enable is False
2026-08-16 18:05:03.170191: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:05:03.170230: Inverter 0 discharge windows currently []
2026-08-16 18:05:03.170253: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:05:03.170274: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:05:03.170293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:05:03.249434: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:05:03.249560: Plan was last updated on 2026-08-16 17:55:00+01:00 and is now 10.0 minutes old
2026-08-16 18:05:03.249824: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:05:03.249868: Best export window [  ]
2026-08-16 18:05:03.250871: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:05:03.254686: Load divergence over 8.0 hours mean 634.32W, min 342.6W, max 1131.0W, std dev 219.64W, divergence 17.31%
2026-08-16 18:05:03.279366: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:05:03.279617: LoadML is_calculating True
2026-08-16 18:05:03.279748: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 18:05:03.335990: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 678.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.27kWh, PV 0.0kWh
2026-08-16 18:05:03.578866: Battery has 13.67 hours left - now at 10.88kWh
2026-08-16 18:05:03.666811: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 711.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 29.19kWh, PV 0.0kWh
2026-08-16 18:05:03.825119: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.19kWh, PV 0.0kWh
2026-08-16 18:05:04.005139: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 436.1p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.27kWh, PV 0.0kWh
2026-08-16 18:05:04.005400: Saving plan best values to HA entities
2026-08-16 18:05:04.370800: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:05:04.385303: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:05:04.408218: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.25kWh, house 0.0kWh, export 0.0kWh, metric 436.1p, metric10 451.34p
2026-08-16 18:05:04.584750: Marginal costs baseline metric (no standing charge): 389.4693
2026-08-16 18:05:04.992579: Marginal energy costs matrix computed: min=7.84 max=33.1
2026-08-16 18:05:05.177691: Rate array import [{'start': 1085, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1085, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:05:05.178502: - Your estimated bill for today is £3.15 and tomorrow is £1.37
2026-08-16 18:05:05.178548: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:05:05.178572: - The battery is currently at 68% and is in eco mode for the next 5 and a half hours.
2026-08-16 18:05:05.178593: - For the next 48 hours there will be no solar generation.
2026-08-16 18:05:05.178613: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:05:05.178632: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-16 18:05:05.178653: 
2026-08-16 18:05:05.230354: Plan calculation took 1.98 seconds
2026-08-16 18:05:05.234673: No high rate period found
2026-08-16 18:05:05.329547: Import threshold used for optimisation was 8.0p
2026-08-16 18:05:05.467494: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:05:05.484739: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:05:05.484929: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:05:05.485090: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:05:05.485376: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:05:05.485482: No export window planned
2026-08-16 18:05:05.485630: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:05:05.485684: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:05:05.486089: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:05:05.486367: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:05:05.486443: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:05:05.486510: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:05:05.486616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486728: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.486925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:05.487364: Inverter 0 count register writes 0
2026-08-16 18:05:05.545958: 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-16 18:05:05.546249: Recompute is saving previous plan...
2026-08-16 18:05:05.547716: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:05:05.547911: Best export window [  ]
2026-08-16 18:05:05.548732: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:05:05.552248: Load divergence over 8.0 hours mean 634.32W, min 342.6W, max 1131.0W, std dev 219.64W, divergence 17.31%
2026-08-16 18:05:05.571632: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:05:05.571810: LoadML is_calculating True
2026-08-16 18:05:05.571838: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 18:05:05.582758: 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(0.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-16 18:05:05.583724: Optimise levels pass started at 2026-08-16 18:05:05
2026-08-16 18:05:05.583863: Optimise all windows, total charge 25 export 1
2026-08-16 18:05:08.344618: >> Region optimisation pass width 960 gives best_metric 486.3p, best_cost 525.93p, best_cycle 41.54kWh, best_import 29.31kWh
2026-08-16 18:05:08.660710: >> Region optimisation pass width 480 gives best_metric 486.3p, best_cost 525.93p, best_cycle 41.54kWh, best_import 29.31kWh
2026-08-16 18:05:09.140998: >> Region optimisation pass width 240 gives best_metric 486.3p, best_cost 525.93p, best_cycle 41.54kWh, best_import 29.31kWh
2026-08-16 18:05:11.612135: >> Region optimisation pass width 120 gives best_metric 485.79p, best_cost 519.35p, best_cycle 42.4kWh, best_import 28.48kWh
2026-08-16 18:05:11.612513: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:05:11.612599: Optimise levels pass ended at 2026-08-16 18:05:11, duration 6.0 seconds tried 74 combinations
2026-08-16 18:05:11.612653: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 485.79p, best_keep 0kWh, best_cycle 42.4kWh, best_carbon 0kg, best_import 28.48kWh
2026-08-16 18:05:11.638302: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:05:24.466892: Tweak plan optimisation started metric 373.47p, cost 384.17p
2026-08-16 18:05:26.911154: Tweak optimisation finished metric 373.47p, cost 384.17p, metric_keep 0kWh, cycle 21.84kWh, carbon 0kg, import 11.59kWh, changed 8 window(s)
2026-08-16 18:05:26.929415: Swap charge optimisation started metric 373.47p, cost 384.17p, min_improvement_swap 0.1p
2026-08-16 18:05:28.342467: Swap charge optimisation finished metric 373.47p, cost 384.17p
2026-08-16 18:05:28.793583: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 372.4p -> 372.13p, plan now metric 374.93p, cost 380.69p, cycle 22.29kWh, import 11.15kWh
2026-08-16 18:05:28.805961: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:05:28.806571: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:05:28.806910: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:05:28.807238: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:05:28.843185: Previous plan best metric is 373.48 (cost 384.21) and new plan best metric is 373.47 (cost 384.17)
2026-08-16 18:05:28.844098: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:05:28.844225: Plan valid is now true after recompute was False
2026-08-16 18:05:28.869540: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 677.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.05kWh, PV 0.0kWh
2026-08-16 18:05:29.113125: Battery has 13.67 hours left - now at 10.88kWh
2026-08-16 18:05:29.172712: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 710.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:45:00, load 28.96kWh, PV 0.0kWh
2026-08-16 18:05:29.301187: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 443.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.96kWh, PV 0.0kWh
2026-08-16 18:05:29.436472: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 427.7p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.05kWh, PV 0.0kWh
2026-08-16 18:05:29.436585: Saving plan best values to HA entities
2026-08-16 18:05:29.860552: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:05:29.880839: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:05:29.890285: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.2kWh, house 0.0kWh, export 0.0kWh, metric 427.7p, metric10 443.96p
2026-08-16 18:05:30.044164: Marginal costs baseline metric (no standing charge): 381.0682
2026-08-16 18:05:30.624097: Marginal energy costs matrix computed: min=7.84 max=33.1
2026-08-16 18:05:30.827923: Rate array import [{'start': 1085, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1085, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:05:30.828757: - Your estimated bill for today is £3.15 and tomorrow is £1.37
2026-08-16 18:05:30.828810: - Import rates are very expensive (33.8p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:05:30.828838: - The battery is currently at 68% and is in eco mode for the next 5 and a half hours.
2026-08-16 18:05:30.828863: - For the next 48 hours there will be no solar generation.
2026-08-16 18:05:30.831605: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:05:30.831842: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-16 18:05:30.831973: 
2026-08-16 18:05:30.902033: Plan calculation took 25.36 seconds
2026-08-16 18:05:30.902359: Inverter 0: Type SK Sunsynk
2026-08-16 18:05:30.902416: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:05:30.902577: Reserve min: 7%, battery_min: 7%
2026-08-16 18:05:30.902640: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:05:30.902860: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 278W, current battery voltage 51.2V, grid power -54W, load power 341W, PV Power 0W
2026-08-16 18:05:30.903008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:05:30.903090: Inverter 0 scheduled charge enable is False
2026-08-16 18:05:30.903120: Inverter 0 charge windows currently []
2026-08-16 18:05:30.903501: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:05:30.903629: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:05:30.903666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:05:30.903699: Inverter 0 scheduled discharge enable is False
2026-08-16 18:05:30.903813: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:05:30.903951: Inverter 0 discharge windows currently []
2026-08-16 18:05:30.903984: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:05:30.904002: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:05:30.904016: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:05:30.971438: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:05:30.971587: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:05:30.971665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:05:30.971850: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:05:30.971925: No export window planned
2026-08-16 18:05:30.972036: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:05:30.972064: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:05:30.972218: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:05:30.972359: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:05:30.972427: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:05:30.972474: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:05:30.972558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.972967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.973004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.973040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:05:30.973063: Inverter 0 count register writes 0
2026-08-16 18:05:31.009561: Total inverter register writes now 844
2026-08-16 18:05:31.066353: Info: Completed run status Demand
2026-08-16 18:05:31.076998: Info: record_status Demand
2026-08-16 18:05:31.089029: Saved current settings to /config/predbat_config.json
2026-08-16 18:05:31.089312: Compare, best tariff: current metric 318.25p
2026-08-16 18:05:42.188213: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0091 val_mae=0.0032 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-16 18:05:42.188518: ML Predictor: Early stopping at epoch 10
2026-08-16 18:05:42.189679: ML Predictor: Restored best weights from epoch with val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 18:05:42.190024: ML Predictor: Training complete, final val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 18:05:49.923726: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=-0.0002 kWh (-0.4%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 18:05:49.931190: ML Predictor: Curriculum training complete, final val_mae=0.0027 kWh
2026-08-16 18:05:49.969052: ML Component: Training successful, val_mae=0.0027 kWh
2026-08-16 18:05:50.129213: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 18:05:50.133940: ML Component: Generating predictions load data age 58.0 days, 16740 data points
2026-08-16 18:05:50.261283: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0288 max_dow {0: 0.08800624999813736, 1: 0.09609374963007868, 2: 0.11056249959506095, 3: 0.10459062534738332, 4: 0.1370531253574416, 5: 0.09903888897581234, 6: 0.10566944482541746}
2026-08-16 18:05:53.533274: ML Component: Generated 576 predictions (total 26.49 kWh over 48h)
2026-08-16 18:05:53.579064: ML Component: Prediction cycle completed
2026-08-16 18:05:53.711351: ML Component: Saved 16740 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 18:06:04.280632: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:06:04.280999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:06:04.281076: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:06:04.281304: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:06:04.281390: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:06:04.281450: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:06:04.281485: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:08:18.548163: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:08:18.548433: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:08:18.548479: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:08:18.548653: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:08:18.548695: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:08:18.548716: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:08:18.548734: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:10:00.764555: --------------- PredBat - update at 2026-08-16 18:10:00+01:00 with clock skew 0 minutes, minutes now 1090
2026-08-16 18:10:00.765562: Saved current settings to /config/predbat_config.json
2026-08-16 18:10:00.765745: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 18:10:00.765885: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:10:00.765991: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:10:00.789666: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:10:00.789803: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:10:00.789959: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:10:00.790453: 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-16 18:10:00.790568: Predbat mode is set to Control charge & discharge
2026-08-16 18:10:01.005443: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:10:01.005891: Using load_power data to fill gaps in load_today data
2026-08-16 18:10:01.786084: Processing 721 30-minute periods for power integration
2026-08-16 18:10:01.960439: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:10:01.960823: Car charging hold False, threshold 6.0kWh
2026-08-16 18:10:01.960875: Current data so far today: load 8.8kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:10:01.982851: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:10:01.982994: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:10:01.983981: Standing charge is set to 46.63p
2026-08-16 18:10:02.063236: 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-16 18:10:02.063550: 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-16 18:10:02.063835: 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-16 18:10:02.064072: 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-16 18:10:02.064297: 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-16 18:10:02.064528: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.064685: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.064827: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.064985: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065151: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065282: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065419: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065549: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065788: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:10:02.065863: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:10:02.070624: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:10:02.070965: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:10:02.108092: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:10:02.108212: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:10:02.109469: High export rate found rates in range 99p to -99p
2026-08-16 18:10:02.136685: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:10:02.136800: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:10:02.136879: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:10:02.150024: Battery level now 10.88kWh, -1hr ago 11.2kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:10:02.150412: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:10:02.204113: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 18:10:02.204254: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:10:02.279726: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:10:02.308478: Today's load divergence 84.29%, in-day adjustment 84.56%, damping 0.95x, yesterday 82.97% today 85.07% blend 24.31%
2026-08-16 18:10:02.308569: Today's predicted so far 10.94kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 10.94kWh forecast extra.
2026-08-16 18:10:02.308642: Today's actual load so far 8.85kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 18:10:02.346968: Inverter 0: Type SK Sunsynk
2026-08-16 18:10:02.347066: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:10:02.347249: Reserve min: 7%, battery_min: 7%
2026-08-16 18:10:02.347321: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:10:02.347576: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -55W, load power 335W, PV Power 0W
2026-08-16 18:10:02.347785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:10:02.347885: Inverter 0 scheduled charge enable is False
2026-08-16 18:10:02.347914: Inverter 0 charge windows currently []
2026-08-16 18:10:02.347941: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:10:02.348050: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:10:02.348089: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:10:02.348127: Inverter 0 scheduled discharge enable is False
2026-08-16 18:10:02.348251: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:10:02.348288: Inverter 0 discharge windows currently []
2026-08-16 18:10:02.348311: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:10:02.348329: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:10:02.348348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:10:02.410003: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:10:02.410116: Plan was last updated on 2026-08-16 18:05:00+01:00 and is now 5.0 minutes old
2026-08-16 18:10:02.410378: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:10:02.410421: Best export window [  ]
2026-08-16 18:10:02.411251: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:10:02.414588: Load divergence over 8.0 hours mean 634.98W, min 372.0W, max 1105.2W, std dev 217.77W, divergence 17.15%
2026-08-16 18:10:02.434881: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:10:02.435010: LoadML is_calculating False
2026-08-16 18:10:02.435071: Creating pool of 12 processes to match your CPU count
2026-08-16 18:10:02.631513: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 677.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 28.03kWh, PV 0.0kWh
2026-08-16 18:10:02.802438: Battery has 13.75 hours left - now at 10.88kWh
2026-08-16 18:10:02.841120: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 708.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 06:55:00, load 28.95kWh, PV 0.0kWh
2026-08-16 18:10:02.915520: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.95kWh, PV 0.0kWh
2026-08-16 18:10:02.989154: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 431.17p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.03kWh, PV 0.0kWh
2026-08-16 18:10:02.989243: Saving plan best values to HA entities
2026-08-16 18:10:03.151591: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:10:03.157202: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 18:10:03.162726: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.63kWh, house 0.0kWh, export 0.0kWh, metric 431.17p, metric10 447.19p
2026-08-16 18:10:03.248721: Marginal costs baseline metric (no standing charge): 384.5357
2026-08-16 18:10:03.494371: Marginal energy costs matrix computed: min=7.77 max=33.14
2026-08-16 18:10:03.567624: Rate array import [{'start': 1090, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1090, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:10:03.568332: - Your estimated bill for today is £3.15 and tomorrow is £1.36
2026-08-16 18:10:03.568380: - Import rates are very expensive (33.8p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:10:03.568402: - The battery is currently at 68% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 18:10:03.568421: - For the next 48 hours there will be no solar generation.
2026-08-16 18:10:03.568438: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:10:03.568455: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 18:10:03.568474: 
2026-08-16 18:10:03.622717: Plan calculation took 1.21 seconds
2026-08-16 18:10:03.626709: No high rate period found
2026-08-16 18:10:03.694939: Import threshold used for optimisation was 8.0p
2026-08-16 18:10:03.783958: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:10:03.791645: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:10:03.791791: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:10:03.791917: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:10:03.792185: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:10:03.792278: No export window planned
2026-08-16 18:10:03.792399: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:10:03.792436: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:10:03.792575: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:10:03.792773: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:10:03.792863: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:10:03.792927: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:10:03.793083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793361: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:10:03.793693: Inverter 0 count register writes 0
2026-08-16 18:10:03.812052: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 18:10:03.817988: Total inverter register writes now 844
2026-08-16 18:10:03.850437: Info: Completed run status Demand
2026-08-16 18:10:03.856308: Info: record_status Demand
2026-08-16 18:10:03.863548: Saved current settings to /config/predbat_config.json
2026-08-16 18:10:03.863907: Compare, best tariff: current metric 318.25p
2026-08-16 18:10:33.970640: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:10:33.971047: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:10:33.971150: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:10:33.971471: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:10:33.971561: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:10:33.971604: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:10:33.971661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:12:34.220620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:12:34.221017: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:12:34.221069: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:12:34.221213: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:12:34.221266: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:12:34.221284: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:12:34.221299: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:14:16.620355: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 18:14:16.783260: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 18:14:33.606085: Info: HAHistory: Pruning history data started.
2026-08-16 18:14:33.608717: Info: HAHistory: Pruning history data completed.
2026-08-16 18:14:48.474939: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:14:48.475201: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:14:48.475245: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:14:48.475426: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:14:48.475481: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:14:48.475514: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:14:48.475537: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:15:00.571264: --------------- PredBat - update at 2026-08-16 18:15:00+01:00 with clock skew 0 minutes, minutes now 1095
2026-08-16 18:15:00.572093: Saved current settings to /config/predbat_config.json
2026-08-16 18:15:00.572223: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 18:15:00.572292: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:15:00.572409: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:15:00.592791: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:15:00.592925: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:15:00.593173: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:15:00.593909: 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-16 18:15:00.594045: Predbat mode is set to Control charge & discharge
2026-08-16 18:15:00.772287: Found 21602 load_today datapoints going back 27 days
2026-08-16 18:15:00.772428: Using load_power data to fill gaps in load_today data
2026-08-16 18:15:01.556444: Processing 721 30-minute periods for power integration
2026-08-16 18:15:01.706680: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:15:01.706826: Car charging hold False, threshold 6.0kWh
2026-08-16 18:15:01.706866: Current data so far today: load 8.8kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:15:01.722390: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:15:01.722486: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:15:01.723105: Standing charge is set to 46.63p
2026-08-16 18:15:01.795827: 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-16 18:15:01.796054: 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-16 18:15:01.796234: 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-16 18:15:01.796385: 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-16 18:15:01.796526: 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-16 18:15:01.796667: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.796745: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.796825: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.796887: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.796968: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.797044: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.797107: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.797186: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.797397: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:15:01.797452: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:15:01.801901: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:15:01.802258: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:15:01.837078: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:15:01.837212: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:15:01.838363: High export rate found rates in range 99p to -99p
2026-08-16 18:15:01.865202: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:15:01.865306: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:15:01.865358: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:15:01.880834: Battery level now 10.88kWh, -1hr ago 11.16kWh, at midnight 12.21kWh, battery value change in the last hour -1.92p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:15:01.881301: 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-16 18:15:01.935174: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 291.49p, import 244.86p, export 0.0p, carbon 0.0kg
2026-08-16 18:15:01.935315: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:15:02.013565: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:15:02.037874: Today's load divergence 83.53%, in-day adjustment 84.03%, damping 0.95x, yesterday 82.97% today 84.36% blend 23.96%
2026-08-16 18:15:02.037958: Today's predicted so far 10.95kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 10.95kWh forecast extra.
2026-08-16 18:15:02.038001: Today's actual load so far 8.78kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 18:15:02.072497: Inverter 0: Type SK Sunsynk
2026-08-16 18:15:02.072574: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:15:02.072804: Reserve min: 7%, battery_min: 7%
2026-08-16 18:15:02.072903: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:15:02.073221: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -55W, load power 332W, PV Power 0W
2026-08-16 18:15:02.073418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:15:02.073526: Inverter 0 scheduled charge enable is False
2026-08-16 18:15:02.073561: Inverter 0 charge windows currently []
2026-08-16 18:15:02.073599: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:15:02.073736: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:15:02.073786: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:15:02.073837: Inverter 0 scheduled discharge enable is False
2026-08-16 18:15:02.073982: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:15:02.074019: Inverter 0 discharge windows currently []
2026-08-16 18:15:02.074056: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:15:02.074085: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:15:02.074114: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:15:02.130137: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:15:02.130241: Plan was last updated on 2026-08-16 18:05:00+01:00 and is now 10.0 minutes old
2026-08-16 18:15:02.130551: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:15:02.130600: Best export window [  ]
2026-08-16 18:15:02.131302: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:15:02.133896: Load divergence over 8.0 hours mean 634.84W, min 379.8W, max 1153.2W, std dev 219.3W, divergence 17.27%
2026-08-16 18:15:02.149229: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:15:02.149345: LoadML is_calculating False
2026-08-16 18:15:02.149425: Creating pool of 12 processes to match your CPU count
2026-08-16 18:15:02.264993: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 676.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 28.08kWh, PV 0.0kWh
2026-08-16 18:15:02.404601: Battery has 13.92 hours left - now at 10.88kWh
2026-08-16 18:15:02.451575: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 707.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 29.0kWh, PV 0.0kWh
2026-08-16 18:15:02.538966: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 450.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.0kWh, PV 0.0kWh
2026-08-16 18:15:02.627325: predict best end_record 08-17 23:40:00, final soc 2.04kWh, metric 434.75p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.08kWh, PV 0.0kWh
2026-08-16 18:15:02.627425: Saving plan best values to HA entities
2026-08-16 18:15:02.817841: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:15:02.824001: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:15:02.837206: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.08kWh, house 0kWh, export 0.0kWh, metric 434.75p, metric10 450.52p
2026-08-16 18:15:02.922811: Marginal costs baseline metric (no standing charge): 388.1137
2026-08-16 18:15:03.209811: Marginal energy costs matrix computed: min=8.0 max=33.17
2026-08-16 18:15:03.278693: Rate array import [{'start': 1095, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1095, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:15:03.279500: - Your estimated bill for today is £3.15 and tomorrow is £1.36
2026-08-16 18:15:03.279555: - Import rates are very expensive (33.8p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:15:03.279584: - The battery is currently at 68% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 18:15:03.279622: - For the next 48 hours there will be no solar generation.
2026-08-16 18:15:03.279654: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:15:03.279679: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 18:15:03.279703: 
2026-08-16 18:15:03.332046: Plan calculation took 1.20 seconds
2026-08-16 18:15:03.335629: No high rate period found
2026-08-16 18:15:03.432203: Import threshold used for optimisation was 8.0p
2026-08-16 18:15:03.507048: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:15:03.512554: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:15:03.512680: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:15:03.512792: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:15:03.513112: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:15:03.513208: No export window planned
2026-08-16 18:15:03.513325: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:15:03.513362: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:15:03.513500: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:15:03.513673: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:15:03.513801: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:15:03.513875: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:15:03.513989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514033: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514066: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:03.514430: Inverter 0 count register writes 0
2026-08-16 18:15:03.538636: 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-16 18:15:03.538843: Recompute is saving previous plan...
2026-08-16 18:15:03.539845: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:15:03.539916: Best export window [  ]
2026-08-16 18:15:03.540796: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:15:03.544100: Load divergence over 8.0 hours mean 634.84W, min 379.8W, max 1153.2W, std dev 219.3W, divergence 17.27%
2026-08-16 18:15:03.563221: Calculating data from yesterday for savings calculation
2026-08-16 18:15:03.577674: 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-16 18:15:03.626549: predict yesterday end_record 08-17 00:00:00, final soc 10.51kWh, metric 236.54p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 18:15:03.642886: predict yesterday10 end_record 08-17 00:00:00, final soc 10.12kWh, metric 233.2p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 18:15:03.665654: predict yesterday end_record 08-17 00:00:00, final soc 10.51kWh, metric 236.54p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 18:15:03.704380: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.28) with import 23.74kWh, export 0.0kWh, battery_cycle 25.33kWh, start_soc 1.12kWh,  final_soc 10.51kWh and battery_value 72.21kWh
2026-08-16 18:15:03.812397: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 334.52p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 18:15:03.812656: Yesterday: No Battery/PV system cost predicted was £3.35 (adjusted £3.35) vs £5.77 (adjusted £4.93), saving £-2.42 (adjusted £-1.58) with import 12.54kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 18:15:03.832487: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:15:03.833897: LoadML is_calculating False
2026-08-16 18:15:03.834025: Creating pool of 12 processes to match your CPU count
2026-08-16 18:15:03.966853: 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(0.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-16 18:15:03.968408: Optimise levels pass started at 2026-08-16 18:15:03
2026-08-16 18:15:03.969303: Optimise all windows, total charge 25 export 1
2026-08-16 18:15:04.372681: >> Region optimisation pass width 960 gives best_metric 485.81p, best_cost 524.53p, best_cycle 41.46kWh, best_import 29.13kWh
2026-08-16 18:15:04.533501: >> Region optimisation pass width 480 gives best_metric 485.81p, best_cost 524.53p, best_cycle 41.46kWh, best_import 29.13kWh
2026-08-16 18:15:04.801064: >> Region optimisation pass width 240 gives best_metric 485.81p, best_cost 524.53p, best_cycle 41.46kWh, best_import 29.13kWh
2026-08-16 18:15:05.508892: >> Region optimisation pass width 120 gives best_metric 485.31p, best_cost 518.07p, best_cycle 42.3kWh, best_import 28.32kWh
2026-08-16 18:15:05.509157: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:15:05.509231: Optimise levels pass ended at 2026-08-16 18:15:05, duration 1.5 seconds tried 74 combinations
2026-08-16 18:15:05.509297: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 485.31p, best_keep 0kWh, best_cycle 42.3kWh, best_carbon 0kg, best_import 28.32kWh
2026-08-16 18:15:05.529444: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:15:08.441279: Tweak plan optimisation started metric 372.2p, cost 382.73p
2026-08-16 18:15:08.767792: Tweak optimisation finished metric 372.2p, cost 382.73p, metric_keep 0kWh, cycle 21.59kWh, carbon 0kg, import 11.41kWh, changed 8 window(s)
2026-08-16 18:15:08.788612: Swap charge optimisation started metric 372.2p, cost 382.73p, min_improvement_swap 0.1p
2026-08-16 18:15:09.880728: Swap charge optimisation finished metric 372.2p, cost 382.73p
2026-08-16 18:15:10.050957: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.12p -> 370.85p, plan now metric 373.72p, cost 379.27p, cycle 22.05kWh, import 10.97kWh
2026-08-16 18:15:10.064940: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:15:10.065486: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:15:10.065924: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:15:10.067061: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:15:10.115646: Previous plan best metric is 372.2 (cost 382.73) and new plan best metric is 372.2 (cost 382.73)
2026-08-16 18:15:10.115914: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:15:10.116088: Plan valid is now true after recompute was False
2026-08-16 18:15:10.151680: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 674.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 27.86kWh, PV 0.0kWh
2026-08-16 18:15:10.289723: Battery has 13.92 hours left - now at 10.88kWh
2026-08-16 18:15:10.346932: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 705.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:05:00, load 28.77kWh, PV 0.0kWh
2026-08-16 18:15:10.464399: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 443.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.77kWh, PV 0.0kWh
2026-08-16 18:15:10.636521: predict best end_record 08-17 23:30:00, final soc 1.27kWh, metric 426.29p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 27.86kWh, PV 0.0kWh
2026-08-16 18:15:10.636620: Saving plan best values to HA entities
2026-08-16 18:15:10.810339: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:15:10.816151: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:15:10.821866: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.02kWh, house 0kWh, export 0.0kWh, metric 426.29p, metric10 443.09p
2026-08-16 18:15:10.903177: Marginal costs baseline metric (no standing charge): 379.6542
2026-08-16 18:15:11.190973: Marginal energy costs matrix computed: min=8.0 max=33.17
2026-08-16 18:15:11.263052: Rate array import [{'start': 1095, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1095, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:15:11.263753: - Your estimated bill for today is £3.15 and tomorrow is £1.36
2026-08-16 18:15:11.263824: - Import rates are very expensive (33.8p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:15:11.263848: - The battery is currently at 68% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 18:15:11.263866: - For the next 48 hours there will be no solar generation.
2026-08-16 18:15:11.263884: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:15:11.263905: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 18:15:11.263923: 
2026-08-16 18:15:11.324283: Plan calculation took 7.79 seconds
2026-08-16 18:15:11.324714: Inverter 0: Type SK Sunsynk
2026-08-16 18:15:11.324803: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:15:11.325135: Reserve min: 7%, battery_min: 7%
2026-08-16 18:15:11.325230: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:15:11.325609: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -55W, load power 332W, PV Power 0W
2026-08-16 18:15:11.325915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:15:11.326058: Inverter 0 scheduled charge enable is False
2026-08-16 18:15:11.326108: Inverter 0 charge windows currently []
2026-08-16 18:15:11.326151: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:15:11.326315: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:15:11.326363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:15:11.326449: Inverter 0 scheduled discharge enable is False
2026-08-16 18:15:11.326639: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:15:11.326684: Inverter 0 discharge windows currently []
2026-08-16 18:15:11.326712: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:15:11.326753: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:15:11.326817: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:15:11.388129: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:15:11.388333: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:15:11.388446: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:15:11.388705: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:15:11.388840: No export window planned
2026-08-16 18:15:11.389062: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:15:11.389124: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:15:11.389348: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:15:11.389582: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:15:11.389663: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:15:11.389756: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:15:11.389936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390075: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390494: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:15:11.390621: Inverter 0 count register writes 0
2026-08-16 18:15:11.421741: Total inverter register writes now 844
2026-08-16 18:15:11.465426: Info: Completed run status Demand
2026-08-16 18:15:11.474100: Info: record_status Demand
2026-08-16 18:15:11.484043: Saved current settings to /config/predbat_config.json
2026-08-16 18:15:11.484449: Compare, best tariff: current metric 318.25p
2026-08-16 18:15:48.608014: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:15:48.608267: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:15:48.608310: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:15:48.608445: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:15:48.608483: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:15:48.608505: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:15:48.608523: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:17:48.892101: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:17:48.892455: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:17:48.892596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:17:48.892818: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:17:48.892925: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:17:48.893023: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:17:48.893065: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:19:49.177472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:19:49.177815: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:19:49.177901: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:19:49.178087: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:19:49.178130: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:19:49.178152: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:19:49.178171: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:19:54.500236: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 18:19:55.365559: Processing 1297 30-minute periods for power integration
2026-08-16 18:19:55.445110: ML Component: Car charging hold False, car energy reported load False
2026-08-16 18:19:55.523689: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:19:55.603724: ML Temperature data points: 47866
2026-08-16 18:19:55.813795: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-16 18:19:55.848630: ML Component: Data fetch completed, load data age 58.0 days, 16755 data points
2026-08-16 18:19:55.848739: ML Component: No training needed, model age is 0.15 hours
2026-08-16 18:19:55.848795: ML Component: Generating predictions load data age 58.0 days, 16755 data points
2026-08-16 18:19:55.977063: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0247 max_dow {0: 0.09059374999813735, 1: 0.09851874950341881, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-16 18:20:00.285485: --------------- PredBat - update at 2026-08-16 18:20:00+01:00 with clock skew 0 minutes, minutes now 1100
2026-08-16 18:20:00.286648: Saved current settings to /config/predbat_config.json
2026-08-16 18:20:00.286945: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 18:20:00.287158: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:20:00.287367: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:20:00.325617: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:20:00.325950: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:20:00.326308: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:20:00.327062: 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-16 18:20:00.327295: Predbat mode is set to Control charge & discharge
2026-08-16 18:20:00.773635: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:20:00.773826: Using load_power data to fill gaps in load_today data
2026-08-16 18:20:03.334580: Processing 721 30-minute periods for power integration
2026-08-16 18:20:03.848908: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:20:03.850481: Car charging hold False, threshold 6.0kWh
2026-08-16 18:20:03.850563: Current data so far today: load 8.92kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:20:03.901683: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:20:03.913059: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:20:03.914257: Standing charge is set to 46.63p
2026-08-16 18:20:04.240091: 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-16 18:20:04.240467: 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-16 18:20:04.240776: 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-16 18:20:04.241237: 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-16 18:20:04.241533: 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-16 18:20:04.241819: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242003: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242148: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242290: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242424: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242562: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242707: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.242842: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.243130: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:20:04.243221: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:20:04.287123: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:20:04.309478: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:20:04.439758: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:20:04.440885: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:20:04.442917: High export rate found rates in range 99p to -99p
2026-08-16 18:20:04.559814: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:20:04.564205: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:20:04.564286: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:20:04.598238: Battery level now 10.88kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:20:04.598955: Last hour: net energy 0.08kWh, import 0.08kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 2.65p, import 2.65p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:20:04.756144: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 294.86p, import 248.23p, export 0.0p, carbon 0.0kg
2026-08-16 18:20:04.756460: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:20:05.081075: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:20:05.193367: Today's load divergence 84.16%, in-day adjustment 84.49%, damping 0.95x, yesterday 82.97% today 84.96% blend 23.61%
2026-08-16 18:20:05.194391: Today's predicted so far 10.99kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 10.99kWh forecast extra.
2026-08-16 18:20:05.194455: Today's actual load so far 8.89kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 18:20:05.255570: Inverter 0: Type SK Sunsynk
2026-08-16 18:20:05.255687: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:20:05.255971: Reserve min: 7%, battery_min: 7%
2026-08-16 18:20:05.256093: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:20:05.256493: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 273W, current battery voltage 51.2V, grid power -54W, load power 335W, PV Power 0W
2026-08-16 18:20:05.256739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:20:05.256894: Inverter 0 scheduled charge enable is False
2026-08-16 18:20:05.257099: Inverter 0 charge windows currently []
2026-08-16 18:20:05.257262: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:20:05.257553: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:20:05.257718: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:20:05.257908: Inverter 0 scheduled discharge enable is False
2026-08-16 18:20:05.258219: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:20:05.258380: Inverter 0 discharge windows currently []
2026-08-16 18:20:05.258518: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:20:05.258657: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:20:05.258791: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:20:05.398557: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:20:05.398846: Plan was last updated on 2026-08-16 18:15:00+01:00 and is now 5.0 minutes old
2026-08-16 18:20:05.399278: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:20:05.399461: Best export window [  ]
2026-08-16 18:20:05.400899: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:20:05.405743: Load divergence over 8.0 hours mean 633.17W, min 373.2W, max 1047.6W, std dev 213.59W, divergence 16.87%
2026-08-16 18:20:05.460251: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:20:05.460471: LoadML is_calculating True
2026-08-16 18:20:05.460681: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 18:20:05.612413: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 676.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 28.03kWh, PV 0.0kWh
2026-08-16 18:20:05.876076: Battery has 13.92 hours left - now at 10.88kWh
2026-08-16 18:20:06.013654: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 707.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.94kWh, PV 0.0kWh
2026-08-16 18:20:06.207397: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 449.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.94kWh, PV 0.0kWh
2026-08-16 18:20:06.402754: predict best end_record 08-17 23:35:00, final soc 1.68kWh, metric 433.45p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 28.03kWh, PV 0.0kWh
2026-08-16 18:20:06.403050: Saving plan best values to HA entities
2026-08-16 18:20:06.736110: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:20:06.744431: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:20:06.759264: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.49kWh, house 0.0kWh, export 0.0kWh, metric 433.45p, metric10 449.09p
2026-08-16 18:20:06.779648: ML Component: Generated 576 predictions (total 26.53 kWh over 48h)
2026-08-16 18:20:06.843743: ML Component: Prediction cycle completed
2026-08-16 18:20:06.983117: Marginal costs baseline metric (no standing charge): 386.8209
2026-08-16 18:20:07.090553: ML Component: Saved 16755 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 18:20:07.263259: Marginal energy costs matrix computed: min=8.0 max=33.09
2026-08-16 18:20:07.328553: Rate array import [{'start': 1100, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1100, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:20:07.329167: - Your estimated bill for today is £3.19 and tomorrow is £1.35
2026-08-16 18:20:07.329211: - Import rates are very expensive (33.8p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:20:07.329231: - The battery is currently at 68% and is in eco mode for the next 5 and a quarter hours.
2026-08-16 18:20:07.329246: - For the next 48 hours there will be no solar generation.
2026-08-16 18:20:07.329271: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:20:07.329301: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 18:20:07.329330: 
2026-08-16 18:20:07.359444: Plan calculation took 1.96 seconds
2026-08-16 18:20:07.362340: No high rate period found
2026-08-16 18:20:07.406272: Import threshold used for optimisation was 8.0p
2026-08-16 18:20:07.454699: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:20:07.460778: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 68%, target 100%
2026-08-16 18:20:07.460920: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:20:07.461054: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:20:07.461253: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:20:07.461330: No export window planned
2026-08-16 18:20:07.461428: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:20:07.461463: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:20:07.461662: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:20:07.461833: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:20:07.461899: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:20:07.461965: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:20:07.462044: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462076: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462373: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:20:07.462474: Inverter 0 count register writes 0
2026-08-16 18:20:07.478499: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 18:20:07.483683: Total inverter register writes now 844
2026-08-16 18:20:07.517841: Info: Completed run status Demand
2026-08-16 18:20:07.525441: Info: record_status Demand
2026-08-16 18:20:07.534359: Saved current settings to /config/predbat_config.json
2026-08-16 18:20:07.534563: Compare, best tariff: current metric 318.25p
2026-08-16 18:20:48.657382: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:20:48.657632: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:20:48.657667: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:20:48.657838: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:20:48.657877: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:20:48.657917: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:20:48.657936: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:22:48.918436: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:22:48.918677: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:22:48.918712: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:22:48.918890: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:22:48.918961: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:22:48.918983: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:22:48.919001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:24:49.145078: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:24:49.145329: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:24:49.145372: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:24:49.145513: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:24:49.145552: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:24:49.145574: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:24:49.145592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:25:00.261818: --------------- PredBat - update at 2026-08-16 18:25:00+01:00 with clock skew 0 minutes, minutes now 1105
2026-08-16 18:25:00.262614: Saved current settings to /config/predbat_config.json
2026-08-16 18:25:00.262725: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 18:25:00.262795: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:25:00.262892: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:25:00.283515: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:25:00.283657: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:25:00.283816: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:25:00.284326: 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-16 18:25:00.284443: Predbat mode is set to Control charge & discharge
2026-08-16 18:25:00.507293: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:25:00.507452: Using load_power data to fill gaps in load_today data
2026-08-16 18:25:01.352826: Processing 721 30-minute periods for power integration
2026-08-16 18:25:01.553125: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:25:01.553605: Car charging hold False, threshold 6.0kWh
2026-08-16 18:25:01.553667: Current data so far today: load 8.95kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:25:01.572311: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:25:01.572433: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:25:01.573160: Standing charge is set to 46.63p
2026-08-16 18:25:01.664499: 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-16 18:25:01.664757: 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-16 18:25:01.665085: 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-16 18:25:01.665446: 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-16 18:25:01.665819: 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-16 18:25:01.666254: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.666433: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.666628: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.666811: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667003: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667175: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667385: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667565: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667842: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:25:01.667934: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:25:01.674598: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:25:01.675001: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:25:01.719314: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:25:01.719435: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:25:01.720787: High export rate found rates in range 99p to -99p
2026-08-16 18:25:01.756158: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:25:01.756299: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:25:01.756372: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:25:01.770577: Battery level now 10.88kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -1.1p, change today -9.13p, rate_forward 6.87p
2026-08-16 18:25:01.771064: Last hour: net energy 0.07kWh, import 0.07kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 2.41p, import 2.41p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:25:01.840655: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 294.86p, import 248.23p, export 0.0p, carbon 0.0kg
2026-08-16 18:25:01.840814: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:25:01.934687: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:25:01.965987: Today's load divergence 84.15%, in-day adjustment 84.49%, damping 0.95x, yesterday 82.97% today 84.94% blend 23.26%
2026-08-16 18:25:01.966114: Today's predicted so far 11.02kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 11.02kWh forecast extra.
2026-08-16 18:25:01.966168: Today's actual load so far 8.92kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 18:25:02.000708: Inverter 0: Type SK Sunsynk
2026-08-16 18:25:02.000816: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:25:02.001092: Reserve min: 7%, battery_min: 7%
2026-08-16 18:25:02.001217: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:25:02.001604: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -55W, load power 334W, PV Power 0W
2026-08-16 18:25:02.001785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:25:02.001903: Inverter 0 scheduled charge enable is False
2026-08-16 18:25:02.001987: Inverter 0 charge windows currently []
2026-08-16 18:25:02.002034: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:25:02.002197: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:25:02.002263: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:25:02.002325: Inverter 0 scheduled discharge enable is False
2026-08-16 18:25:02.002479: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:25:02.002517: Inverter 0 discharge windows currently []
2026-08-16 18:25:02.002541: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:25:02.002563: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:25:02.002581: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:25:02.070900: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:25:02.071037: Plan was last updated on 2026-08-16 18:15:00+01:00 and is now 10.0 minutes old
2026-08-16 18:25:02.071286: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:25:02.071321: Best export window [  ]
2026-08-16 18:25:02.072196: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:25:02.075366: Load divergence over 8.0 hours mean 631.23W, min 345.6W, max 1060.8W, std dev 210.11W, divergence 16.64%
2026-08-16 18:25:02.094303: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:25:02.094416: LoadML is_calculating False
2026-08-16 18:25:02.094483: Creating pool of 12 processes to match your CPU count
2026-08-16 18:25:02.221827: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 681.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 28.12kWh, PV 0.0kWh
2026-08-16 18:25:02.357166: Battery has 13.58 hours left - now at 10.72kWh
2026-08-16 18:25:02.405838: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 711.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 29.03kWh, PV 0.0kWh
2026-08-16 18:25:02.491225: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 453.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.03kWh, PV 0.0kWh
2026-08-16 18:25:02.575209: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 438.59p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.12kWh, PV 0.0kWh
2026-08-16 18:25:02.575313: Saving plan best values to HA entities
2026-08-16 18:25:02.778984: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:25:02.787286: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:25:02.795208: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.14kWh, house 0.0kWh, export 0.0kWh, metric 438.59p, metric10 453.82p
2026-08-16 18:25:02.910282: Marginal costs baseline metric (no standing charge): 391.9573
2026-08-16 18:25:03.250758: Marginal energy costs matrix computed: min=8.0 max=33.11
2026-08-16 18:25:03.344924: Rate array import [{'start': 1105, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1105, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:25:03.345656: - Your estimated bill for today is £3.19 and tomorrow is £1.36
2026-08-16 18:25:03.345704: - Import rates are very expensive (33.8p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:25:03.345727: - The battery is currently at 67% and is in eco mode for the next 5 hours.
2026-08-16 18:25:03.345745: - For the next 48 hours there will be no solar generation.
2026-08-16 18:25:03.345762: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:25:03.345785: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-16 18:25:03.345803: 
2026-08-16 18:25:03.404787: Plan calculation took 1.33 seconds
2026-08-16 18:25:03.408585: No high rate period found
2026-08-16 18:25:03.463367: Import threshold used for optimisation was 8.0p
2026-08-16 18:25:03.519594: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:25:03.526210: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 67%, target 100%
2026-08-16 18:25:03.526366: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:25:03.526473: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:25:03.526766: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:25:03.526857: No export window planned
2026-08-16 18:25:03.526999: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:25:03.527040: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:25:03.527224: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:25:03.527410: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:25:03.527475: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:25:03.527537: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:25:03.527626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527724: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527774: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.527997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.528023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.528046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:03.528067: Inverter 0 count register writes 0
2026-08-16 18:25:03.545242: 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-16 18:25:03.545422: Recompute is saving previous plan...
2026-08-16 18:25:03.546439: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:25:03.546513: Best export window [  ]
2026-08-16 18:25:03.547354: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:25:03.550584: Load divergence over 8.0 hours mean 631.23W, min 345.6W, max 1060.8W, std dev 210.11W, divergence 16.64%
2026-08-16 18:25:03.568292: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:25:03.568432: LoadML is_calculating False
2026-08-16 18:25:03.568534: Creating pool of 12 processes to match your CPU count
2026-08-16 18:25:03.661293: 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(0.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-16 18:25:03.662398: Optimise levels pass started at 2026-08-16 18:25:03
2026-08-16 18:25:03.662489: Optimise all windows, total charge 25 export 1
2026-08-16 18:25:04.099662: >> Region optimisation pass width 960 gives best_metric 490.51p, best_cost 528.39p, best_cycle 41.52kWh, best_import 29.19kWh
2026-08-16 18:25:04.306868: >> Region optimisation pass width 480 gives best_metric 490.51p, best_cost 528.39p, best_cycle 41.52kWh, best_import 29.19kWh
2026-08-16 18:25:04.630166: >> Region optimisation pass width 240 gives best_metric 490.51p, best_cost 528.39p, best_cycle 41.52kWh, best_import 29.19kWh
2026-08-16 18:25:05.406747: >> Region optimisation pass width 120 gives best_metric 490.0p, best_cost 521.88p, best_cycle 42.37kWh, best_import 28.38kWh
2026-08-16 18:25:05.406973: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:25:05.407051: Optimise levels pass ended at 2026-08-16 18:25:05, duration 1.7 seconds tried 74 combinations
2026-08-16 18:25:05.407145: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 490.0p, best_keep 0kWh, best_cycle 42.37kWh, best_carbon 0kg, best_import 28.38kWh
2026-08-16 18:25:05.428364: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:25:08.229111: Tweak plan optimisation started metric 375.97p, cost 386.57p
2026-08-16 18:25:08.595729: Tweak optimisation finished metric 375.97p, cost 386.57p, metric_keep 0kWh, cycle 21.56kWh, carbon 0kg, import 11.46kWh, changed 8 window(s)
2026-08-16 18:25:08.616515: Swap charge optimisation started metric 375.97p, cost 386.57p, min_improvement_swap 0.1p
2026-08-16 18:25:09.609556: Swap charge optimisation finished metric 375.97p, cost 386.57p
2026-08-16 18:25:09.778428: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 374.91p -> 374.74p, plan now metric 377.34p, cost 383.55p, cycle 22.07kWh, import 11.09kWh
2026-08-16 18:25:09.789344: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:25:09.789784: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:25:09.790096: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:25:09.790328: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:25:09.832706: Previous plan best metric is 375.97 (cost 386.57) and new plan best metric is 375.97 (cost 386.57)
2026-08-16 18:25:09.833000: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:25:09.833228: Plan valid is now true after recompute was False
2026-08-16 18:25:09.866181: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 679.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 27.9kWh, PV 0.0kWh
2026-08-16 18:25:09.978247: Battery has 13.58 hours left - now at 10.72kWh
2026-08-16 18:25:10.025437: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 709.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:00:00, load 28.8kWh, PV 0.0kWh
2026-08-16 18:25:10.105890: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 446.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.8kWh, PV 0.0kWh
2026-08-16 18:25:10.195198: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 430.18p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.9kWh, PV 0.0kWh
2026-08-16 18:25:10.195930: Saving plan best values to HA entities
2026-08-16 18:25:10.352478: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:25:10.358570: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:25:10.364389: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.09kWh, house 0.0kWh, export 0.0kWh, metric 430.18p, metric10 446.44p
2026-08-16 18:25:10.457531: Marginal costs baseline metric (no standing charge): 383.5474
2026-08-16 18:25:10.772201: Marginal energy costs matrix computed: min=8.0 max=33.11
2026-08-16 18:25:10.859600: Rate array import [{'start': 1105, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1105, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:25:10.860322: - Your estimated bill for today is £3.19 and tomorrow is £1.36
2026-08-16 18:25:10.860371: - Import rates are very expensive (33.8p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:25:10.860394: - The battery is currently at 67% and is in eco mode for the next 5 hours.
2026-08-16 18:25:10.860412: - For the next 48 hours there will be no solar generation.
2026-08-16 18:25:10.860429: - You will reach a minimum of 8% battery in 29 hours.
2026-08-16 18:25:10.860452: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-16 18:25:10.860471: 
2026-08-16 18:25:10.920982: Plan calculation took 7.38 seconds
2026-08-16 18:25:10.921349: Inverter 0: Type SK Sunsynk
2026-08-16 18:25:10.921406: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:25:10.921632: Reserve min: 7%, battery_min: 7%
2026-08-16 18:25:10.921711: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:25:10.922046: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 272W, current battery voltage 51.2V, grid power -55W, load power 334W, PV Power 0W
2026-08-16 18:25:10.922298: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:25:10.922434: Inverter 0 scheduled charge enable is False
2026-08-16 18:25:10.922478: Inverter 0 charge windows currently []
2026-08-16 18:25:10.922511: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:25:10.922633: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:25:10.922674: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:25:10.922711: Inverter 0 scheduled discharge enable is False
2026-08-16 18:25:10.922844: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:25:10.922882: Inverter 0 discharge windows currently []
2026-08-16 18:25:10.922905: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:25:10.922924: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:25:10.922970: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:25:10.983022: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 67%, target 100%
2026-08-16 18:25:10.983243: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:25:10.983365: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:25:10.983676: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:25:10.983780: No export window planned
2026-08-16 18:25:10.983939: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:25:10.984028: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:25:10.984230: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:25:10.984476: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:25:10.984539: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:25:10.984663: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:25:10.984810: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.984869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.984923: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985114: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:25:10.985738: Inverter 0 count register writes 0
2026-08-16 18:25:11.008828: Total inverter register writes now 844
2026-08-16 18:25:11.047492: Info: Completed run status Demand
2026-08-16 18:25:11.055428: Info: record_status Demand
2026-08-16 18:25:11.063487: Saved current settings to /config/predbat_config.json
2026-08-16 18:25:11.063783: Compare, best tariff: current metric 318.25p
2026-08-16 18:25:49.184568: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:25:49.184813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:25:49.184851: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:25:49.185034: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:25:49.185080: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:25:49.185102: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:25:49.185119: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:28:03.470341: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:28:03.470548: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:28:03.470580: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:28:03.470689: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:28:03.470721: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:28:03.470739: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:28:03.470753: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:30:00.692324: --------------- PredBat - update at 2026-08-16 18:30:00+01:00 with clock skew 0 minutes, minutes now 1110
2026-08-16 18:30:00.693223: Saved current settings to /config/predbat_config.json
2026-08-16 18:30:00.693384: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 18:30:00.693483: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:30:00.693600: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:30:00.719214: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:30:00.719349: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:30:00.719519: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:30:00.720068: 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-16 18:30:00.720201: Predbat mode is set to Control charge & discharge
2026-08-16 18:30:00.918362: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:30:00.918515: Using load_power data to fill gaps in load_today data
2026-08-16 18:30:01.807916: Processing 721 30-minute periods for power integration
2026-08-16 18:30:02.020067: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:30:02.020213: Car charging hold False, threshold 6.0kWh
2026-08-16 18:30:02.020261: Current data so far today: load 8.9kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:30:02.038694: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:30:02.038832: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:30:02.039563: Standing charge is set to 46.63p
2026-08-16 18:30:02.126506: 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-16 18:30:02.126777: 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-16 18:30:02.126988: 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-16 18:30:02.127190: 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-16 18:30:02.127367: 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-16 18:30:02.127542: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.127634: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.127715: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.127791: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.127863: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.128013: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.128104: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.128178: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.128343: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:30:02.128401: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:30:02.133983: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:30:02.134395: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:30:02.177891: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:30:02.178031: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:30:02.179305: High export rate found rates in range 99p to -99p
2026-08-16 18:30:02.211920: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:30:02.212052: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:30:02.212116: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:30:02.229995: Battery level now 10.72kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -10.23p, rate_forward 6.87p
2026-08-16 18:30:02.230403: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 2.17p, import 2.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:30:02.317723: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 294.86p, import 248.23p, export 0.0p, carbon 0.0kg
2026-08-16 18:30:02.317888: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:30:02.424764: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:30:02.457030: Today's load divergence 83.03%, in-day adjustment 83.67%, damping 0.95x, yesterday 82.97% today 83.88% blend 22.92%
2026-08-16 18:30:02.457169: Today's predicted so far 11.16kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.16kWh forecast extra.
2026-08-16 18:30:02.457204: Today's actual load so far 8.93kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 18:30:02.497356: 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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T00:30:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 18:30:02.497931: Sensor changes require a replan, will recompute the plan
2026-08-16 18:30:02.498082: Inverter 0: Type SK Sunsynk
2026-08-16 18:30:02.498116: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:30:02.498264: Reserve min: 7%, battery_min: 7%
2026-08-16 18:30:02.498318: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:30:02.498531: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 274W, current battery voltage 51.2V, grid power -55W, load power 336W, PV Power 0W
2026-08-16 18:30:02.498667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:30:02.498744: Inverter 0 scheduled charge enable is False
2026-08-16 18:30:02.498789: Inverter 0 charge windows currently []
2026-08-16 18:30:02.498827: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:30:02.498978: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:30:02.499034: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:30:02.499068: Inverter 0 scheduled discharge enable is False
2026-08-16 18:30:02.499206: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:30:02.499238: Inverter 0 discharge windows currently []
2026-08-16 18:30:02.499257: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:30:02.499271: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:30:02.499289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:30:02.556867: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:30:02.556965: Will recompute the plan as it is invalid
2026-08-16 18:30:02.557076: Recompute is saving previous plan...
2026-08-16 18:30:02.557819: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:30:02.557858: Best export window [  ]
2026-08-16 18:30:02.558585: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:30:02.561178: Load divergence over 8.0 hours mean 628.17W, min 322.8W, max 1100.4W, std dev 210.91W, divergence 16.79%
2026-08-16 18:30:02.576746: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:30:02.577026: LoadML is_calculating False
2026-08-16 18:30:02.577102: Creating pool of 12 processes to match your CPU count
2026-08-16 18:30:02.670602: 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(0.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-16 18:30:02.671560: Optimise levels pass started at 2026-08-16 18:30:02
2026-08-16 18:30:02.671622: Optimise all windows, total charge 25 export 1
2026-08-16 18:30:03.131502: >> Region optimisation pass width 960 gives best_metric 490.29p, best_cost 527.76p, best_cycle 41.39kWh, best_import 29.11kWh
2026-08-16 18:30:03.282920: >> Region optimisation pass width 480 gives best_metric 490.29p, best_cost 527.76p, best_cycle 41.39kWh, best_import 29.11kWh
2026-08-16 18:30:03.565383: >> Region optimisation pass width 240 gives best_metric 490.29p, best_cost 527.76p, best_cycle 41.39kWh, best_import 29.11kWh
2026-08-16 18:30:04.348980: >> Region optimisation pass width 120 gives best_metric 489.78p, best_cost 521.23p, best_cycle 42.24kWh, best_import 28.3kWh
2026-08-16 18:30:04.349374: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:30:04.349613: Optimise levels pass ended at 2026-08-16 18:30:04, duration 1.7 seconds tried 74 combinations
2026-08-16 18:30:04.349764: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 489.78p, best_keep 0kWh, best_cycle 42.24kWh, best_carbon 0kg, best_import 28.3kWh
2026-08-16 18:30:04.375506: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:30:07.658192: Tweak plan optimisation started metric 375.27p, cost 385.92p
2026-08-16 18:30:08.069118: Tweak optimisation finished metric 375.27p, cost 385.92p, metric_keep 0kWh, cycle 21.37kWh, carbon 0kg, import 11.38kWh, changed 8 window(s)
2026-08-16 18:30:08.093968: Swap charge optimisation started metric 375.27p, cost 385.92p, min_improvement_swap 0.1p
2026-08-16 18:30:09.147382: Swap charge optimisation finished metric 375.27p, cost 385.92p
2026-08-16 18:30:09.359224: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 374.21p -> 373.94p, plan now metric 376.78p, cost 382.42p, cycle 21.83kWh, import 10.94kWh
2026-08-16 18:30:09.374221: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:30:09.375077: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:30:09.375740: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:30:09.376273: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:30:09.426408: Previous plan best metric is 375.27 (cost 385.95) and new plan best metric is 375.27 (cost 385.92)
2026-08-16 18:30:09.426736: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:30:09.426956: Plan valid is now true after recompute was False
2026-08-16 18:30:09.461522: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 676.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 27.78kWh, PV 0.0kWh
2026-08-16 18:30:09.595770: Battery has 13.75 hours left - now at 10.72kWh
2026-08-16 18:30:09.653286: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 707.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:10:00, load 28.68kWh, PV 0.0kWh
2026-08-16 18:30:09.749172: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 445.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.68kWh, PV 0.0kWh
2026-08-16 18:30:09.827090: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 429.46p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.78kWh, PV 0.0kWh
2026-08-16 18:30:09.827176: Saving plan best values to HA entities
2026-08-16 18:30:10.021721: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:30:10.027680: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:30:10.033351: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.99kWh, house 0.0kWh, export 0.0kWh, metric 429.46p, metric10 445.9p
2026-08-16 18:30:10.121657: Marginal costs baseline metric (no standing charge): 382.823
2026-08-16 18:30:10.439515: Marginal energy costs matrix computed: min=8.0 max=33.13
2026-08-16 18:30:12.283954: Rate array import [{'start': 1110, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1110, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:30:12.284564: - Your estimated bill for today is £3.19 and tomorrow is £1.35
2026-08-16 18:30:12.284614: - Import rates are very expensive (33.8p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:30:12.284634: - The battery is currently at 67% and is in eco mode for the next 5 hours.
2026-08-16 18:30:12.284661: - For the next 48 hours there will be no solar generation.
2026-08-16 18:30:12.284713: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:30:12.284745: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-16 18:30:12.284766: 
2026-08-16 18:30:12.346281: Plan calculation took 9.79 seconds
2026-08-16 18:30:12.351686: Saved plan to storage
2026-08-16 18:30:12.355383: No high rate period found
2026-08-16 18:30:12.417579: Import threshold used for optimisation was 8.0p
2026-08-16 18:30:12.472495: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:30:12.478393: Inverter 0: Type SK Sunsynk
2026-08-16 18:30:12.478469: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:30:12.478653: Reserve min: 7%, battery_min: 7%
2026-08-16 18:30:12.478721: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:30:12.478977: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -54W, load power 337W, PV Power 0W
2026-08-16 18:30:12.479191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:30:12.479280: Inverter 0 scheduled charge enable is False
2026-08-16 18:30:12.479311: Inverter 0 charge windows currently []
2026-08-16 18:30:12.479336: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:30:12.479429: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:30:12.479463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:30:12.479495: Inverter 0 scheduled discharge enable is False
2026-08-16 18:30:12.479606: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:30:12.479638: Inverter 0 discharge windows currently []
2026-08-16 18:30:12.479656: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:30:12.479671: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:30:12.479685: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:30:12.533326: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 67%, target 100%
2026-08-16 18:30:12.533484: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:30:12.533557: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:30:12.533742: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:30:12.533826: No export window planned
2026-08-16 18:30:12.533934: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:30:12.533993: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:30:12.534156: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:30:12.534324: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:30:12.534379: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:30:12.534432: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:30:12.534531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:30:12.534942: Inverter 0 count register writes 0
2026-08-16 18:30:12.554562: Total inverter register writes now 844
2026-08-16 18:30:12.594847: Info: Completed run status Demand
2026-08-16 18:30:12.601812: Info: record_status Demand
2026-08-16 18:30:12.609943: Saved current settings to /config/predbat_config.json
2026-08-16 18:30:12.610302: Compare, best tariff: current metric 318.25p
2026-08-16 18:30:48.737275: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:30:48.737550: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:30:48.737610: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:30:48.737800: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:30:48.737847: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:30:48.737867: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:30:48.737886: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:32:48.979695: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:32:48.979980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:32:48.980316: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:32:48.980513: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:32:48.980554: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:32:48.980576: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:32:48.980594: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:34:49.207667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:34:49.207928: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:34:49.207988: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:34:49.208146: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:34:49.208186: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:34:49.208208: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:34:49.208226: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:35:00.298187: --------------- PredBat - update at 2026-08-16 18:35:00+01:00 with clock skew 0 minutes, minutes now 1115
2026-08-16 18:35:00.299098: Saved current settings to /config/predbat_config.json
2026-08-16 18:35:00.299281: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 18:35:00.299400: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:35:00.299572: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:35:00.319231: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:35:00.319361: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:35:00.319528: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:35:00.320196: 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-16 18:35:00.320378: Predbat mode is set to Control charge & discharge
2026-08-16 18:35:00.512827: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:35:00.513048: Using load_power data to fill gaps in load_today data
2026-08-16 18:35:01.397599: Processing 721 30-minute periods for power integration
2026-08-16 18:35:01.584588: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:35:01.584722: Car charging hold False, threshold 6.0kWh
2026-08-16 18:35:01.584768: Current data so far today: load 8.9kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:35:01.604334: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:35:01.604442: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:35:01.605439: Standing charge is set to 46.63p
2026-08-16 18:35:01.713064: 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-16 18:35:01.713339: 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-16 18:35:01.713533: 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-16 18:35:01.713746: 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-16 18:35:01.713922: 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-16 18:35:01.714121: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714216: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714301: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714374: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714453: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714527: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714612: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.714683: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.715044: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:35:01.715112: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:35:01.721142: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:35:01.721599: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:35:01.768004: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:35:01.768132: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:35:01.769554: High export rate found rates in range 99p to -99p
2026-08-16 18:35:01.804810: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:35:01.805093: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:35:01.805645: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:35:01.819938: Battery level now 10.72kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -10.23p, rate_forward 6.87p
2026-08-16 18:35:01.820335: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.2kWh, net cost 1.93p, import 1.93p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:35:01.881251: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 294.86p, import 248.23p, export 0.0p, carbon 0.0kg
2026-08-16 18:35:01.881409: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:35:01.976751: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:35:02.007253: Today's load divergence 82.45%, in-day adjustment 83.25%, damping 0.95x, yesterday 82.97% today 83.33% blend 22.57%
2026-08-16 18:35:02.007348: Today's predicted so far 11.29kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.29kWh forecast extra.
2026-08-16 18:35:02.007380: Today's actual load so far 9.0kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 18:35:02.044044: Inverter 0: Type SK Sunsynk
2026-08-16 18:35:02.044148: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:35:02.044391: Reserve min: 7%, battery_min: 7%
2026-08-16 18:35:02.044500: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:35:02.044851: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 383W, current battery voltage 51.2V, grid power -54W, load power 446W, PV Power 0W
2026-08-16 18:35:02.045104: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:35:02.045237: Inverter 0 scheduled charge enable is False
2026-08-16 18:35:02.045285: Inverter 0 charge windows currently []
2026-08-16 18:35:02.045333: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:35:02.045529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:35:02.045590: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:35:02.045657: Inverter 0 scheduled discharge enable is False
2026-08-16 18:35:02.045842: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:35:02.045888: Inverter 0 discharge windows currently []
2026-08-16 18:35:02.045925: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:35:02.045979: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:35:02.046004: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:35:02.108790: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:35:02.108902: Plan was last updated on 2026-08-16 18:30:00+01:00 and is now 5.0 minutes old
2026-08-16 18:35:02.109220: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:35:02.109268: Best export window [  ]
2026-08-16 18:35:02.110113: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:35:02.113387: Load divergence over 8.0 hours mean 625.01W, min 342.6W, max 1131.0W, std dev 222.08W, divergence 17.77%
2026-08-16 18:35:02.132068: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:35:02.132246: LoadML is_calculating False
2026-08-16 18:35:02.132318: Creating pool of 12 processes to match your CPU count
2026-08-16 18:35:02.264057: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 675.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 27.81kWh, PV 0.0kWh
2026-08-16 18:35:02.406247: Battery has 13.83 hours left - now at 10.72kWh
2026-08-16 18:35:02.456421: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 705.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:20:00, load 28.71kWh, PV 0.0kWh
2026-08-16 18:35:02.543460: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 448.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.71kWh, PV 0.0kWh
2026-08-16 18:35:02.645638: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 433.0p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.81kWh, PV 0.0kWh
2026-08-16 18:35:02.645732: Saving plan best values to HA entities
2026-08-16 18:35:02.830712: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:35:02.836819: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:35:02.843192: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.44kWh, house 0.0kWh, export 0.0kWh, metric 433.0p, metric10 448.57p
2026-08-16 18:35:02.927580: Marginal costs baseline metric (no standing charge): 386.3654
2026-08-16 18:35:03.219880: Marginal energy costs matrix computed: min=8.0 max=32.45
2026-08-16 18:35:03.295803: Rate array import [{'start': 1115, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 18:35:03.296598: - Your estimated bill for today is £3.18 and tomorrow is £1.35
2026-08-16 18:35:03.296654: - Import rates are very expensive (33.8p) for the next 4  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:35:03.296678: - The battery is currently at 67% and is in eco mode for the next 4  hours.
2026-08-16 18:35:03.296697: - For the next 48 hours there will be no solar generation.
2026-08-16 18:35:03.296715: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:35:03.296733: - Your next charge slot will be in 4  hours where import rates will be cheap (8.0p).
2026-08-16 18:35:03.296750: 
2026-08-16 18:35:03.364314: Plan calculation took 1.26 seconds
2026-08-16 18:35:03.369326: No high rate period found
2026-08-16 18:35:03.449894: Import threshold used for optimisation was 8.0p
2026-08-16 18:35:03.508911: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:35:03.520409: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 67%, target 100%
2026-08-16 18:35:03.520595: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:35:03.520738: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:35:03.521126: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:35:03.521226: No export window planned
2026-08-16 18:35:03.521343: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:35:03.521381: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:35:03.521533: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:35:03.521717: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:35:03.521783: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:35:03.521873: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:35:03.522007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522117: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522168: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522376: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:35:03.522452: Inverter 0 count register writes 0
2026-08-16 18:35:03.543190: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 18:35:03.549480: Total inverter register writes now 844
2026-08-16 18:35:03.585341: Info: Completed run status Demand
2026-08-16 18:35:03.591831: Info: record_status Demand
2026-08-16 18:35:03.601114: Saved current settings to /config/predbat_config.json
2026-08-16 18:35:03.601534: Compare, best tariff: current metric 318.25p
2026-08-16 18:35:33.706852: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:35:33.707225: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:35:33.707290: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:35:33.707489: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:35:33.707543: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:35:33.707567: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:35:33.707604: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:37:33.958188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:37:33.958437: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:37:33.958476: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:37:33.958643: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:37:33.958690: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:37:33.958711: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:37:33.958728: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:39:34.186527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:39:34.186794: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:39:34.186831: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:39:34.186996: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:39:34.187052: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:39:34.187077: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:39:34.187094: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:40:00.305741: --------------- PredBat - update at 2026-08-16 18:40:00+01:00 with clock skew 0 minutes, minutes now 1120
2026-08-16 18:40:00.306579: Saved current settings to /config/predbat_config.json
2026-08-16 18:40:00.306709: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 18:40:00.306811: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:40:00.306973: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:40:00.326443: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:40:00.326565: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:40:00.326733: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:40:00.327245: 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-16 18:40:00.327367: Predbat mode is set to Control charge & discharge
2026-08-16 18:40:00.529340: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:40:00.529550: Using load_power data to fill gaps in load_today data
2026-08-16 18:40:01.354190: Processing 721 30-minute periods for power integration
2026-08-16 18:40:01.516002: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:40:01.516147: Car charging hold False, threshold 6.0kWh
2026-08-16 18:40:01.516196: Current data so far today: load 9.02kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:40:01.533706: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:40:01.533813: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:40:01.534483: Standing charge is set to 46.63p
2026-08-16 18:40:01.610735: 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-16 18:40:01.611835: 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-16 18:40:01.612046: 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-16 18:40:01.612207: 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-16 18:40:01.612357: 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-16 18:40:01.612503: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.612604: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.612676: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.612745: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.612808: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.612885: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.613004: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.613088: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.613237: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:40:01.613286: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:40:01.618014: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:40:01.618343: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:40:01.661083: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:40:01.661203: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:40:01.662451: High export rate found rates in range 99p to -99p
2026-08-16 18:40:01.691130: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:40:01.691265: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:40:01.691318: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:40:01.707056: Battery level now 10.72kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -10.23p, rate_forward 6.87p
2026-08-16 18:40:01.707435: 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-16 18:40:01.773176: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 294.86p, import 248.23p, export 0.0p, carbon 0.0kg
2026-08-16 18:40:01.773330: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:40:01.854130: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:40:01.879181: Today's load divergence 82.99%, in-day adjustment 83.65%, damping 0.95x, yesterday 82.97% today 83.84% blend 22.22%
2026-08-16 18:40:01.879307: Today's predicted so far 11.31kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 11.31kWh forecast extra.
2026-08-16 18:40:01.879339: Today's actual load so far 9.07kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 18:40:01.910910: Inverter 0: Type SK Sunsynk
2026-08-16 18:40:01.911006: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:40:01.911183: Reserve min: 7%, battery_min: 7%
2026-08-16 18:40:01.911251: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:40:01.911527: Inverter 0 SoC: 10.7kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -54W, load power 429W, PV Power 0W
2026-08-16 18:40:01.911667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:40:01.911741: Inverter 0 scheduled charge enable is False
2026-08-16 18:40:01.911765: Inverter 0 charge windows currently []
2026-08-16 18:40:01.911787: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:40:01.911905: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:40:01.911955: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:40:01.911985: Inverter 0 scheduled discharge enable is False
2026-08-16 18:40:01.912086: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:40:01.912122: Inverter 0 discharge windows currently []
2026-08-16 18:40:01.912140: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:40:01.912155: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:40:01.912169: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:40:01.967545: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:40:01.967641: Plan was last updated on 2026-08-16 18:30:00+01:00 and is now 10.0 minutes old
2026-08-16 18:40:01.967905: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:40:01.967946: Best export window [  ]
2026-08-16 18:40:01.968616: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:40:01.971162: Load divergence over 8.0 hours mean 623.59W, min 372.0W, max 1105.2W, std dev 221.71W, divergence 17.78%
2026-08-16 18:40:01.986502: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:40:01.986619: LoadML is_calculating False
2026-08-16 18:40:01.986678: Creating pool of 12 processes to match your CPU count
2026-08-16 18:40:02.101947: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 675.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.01kWh, PV 0.0kWh
2026-08-16 18:40:02.236179: Battery has 13.83 hours left - now at 10.7kWh
2026-08-16 18:40:02.283697: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 705.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.91kWh, PV 0.0kWh
2026-08-16 18:40:02.365036: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 452.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.91kWh, PV 0.0kWh
2026-08-16 18:40:02.440621: predict best end_record 08-17 23:40:00, final soc 2.05kWh, metric 436.95p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.01kWh, PV 0.0kWh
2026-08-16 18:40:02.440706: Saving plan best values to HA entities
2026-08-16 18:40:02.619809: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:40:02.625635: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 18:40:02.638298: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.93kWh, house 0.0kWh, export 0.0kWh, metric 436.95p, metric10 452.31p
2026-08-16 18:40:02.716168: Marginal costs baseline metric (no standing charge): 390.3176
2026-08-16 18:40:03.003902: Marginal energy costs matrix computed: min=8.0 max=32.52
2026-08-16 18:40:03.092901: Rate array import [{'start': 1120, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 18:40:03.093647: - Your estimated bill for today is £3.19 and tomorrow is £1.34
2026-08-16 18:40:03.093695: - Import rates are very expensive (33.8p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:40:03.093717: - The battery is currently at 67% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 18:40:03.093736: - For the next 48 hours there will be no solar generation.
2026-08-16 18:40:03.093753: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:40:03.093775: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 18:40:03.093793: 
2026-08-16 18:40:03.154962: Plan calculation took 1.19 seconds
2026-08-16 18:40:03.158012: No high rate period found
2026-08-16 18:40:03.204205: Import threshold used for optimisation was 8.0p
2026-08-16 18:40:03.248385: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:40:03.254063: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 67%, target 100%
2026-08-16 18:40:03.254219: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:40:03.254373: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:40:03.254711: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:40:03.254821: No export window planned
2026-08-16 18:40:03.255044: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:40:03.255089: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:40:03.255311: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:40:03.255561: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:40:03.255640: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:40:03.255734: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:40:03.255912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.255994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256043: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256562: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:03.256638: Inverter 0 count register writes 0
2026-08-16 18:40:03.270943: 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-16 18:40:03.271097: Recompute is saving previous plan...
2026-08-16 18:40:03.271957: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:40:03.272003: Best export window [  ]
2026-08-16 18:40:03.272673: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:40:03.275272: Load divergence over 8.0 hours mean 623.59W, min 372.0W, max 1105.2W, std dev 221.71W, divergence 17.78%
2026-08-16 18:40:03.289963: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:40:03.290053: LoadML is_calculating False
2026-08-16 18:40:03.290129: Creating pool of 12 processes to match your CPU count
2026-08-16 18:40:03.374376: 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(0.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-16 18:40:03.375352: Optimise levels pass started at 2026-08-16 18:40:03
2026-08-16 18:40:03.375412: Optimise all windows, total charge 25 export 1
2026-08-16 18:40:03.722915: >> Region optimisation pass width 960 gives best_metric 488.96p, best_cost 511.52p, best_cycle 43.3kWh, best_import 27.08kWh
2026-08-16 18:40:03.887688: >> Region optimisation pass width 480 gives best_metric 488.96p, best_cost 511.52p, best_cycle 43.3kWh, best_import 27.08kWh
2026-08-16 18:40:04.137633: >> Region optimisation pass width 240 gives best_metric 488.96p, best_cost 511.52p, best_cycle 43.3kWh, best_import 27.08kWh
2026-08-16 18:40:04.768713: >> Region optimisation pass width 120 gives best_metric 488.96p, best_cost 511.52p, best_cycle 43.3kWh, best_import 27.08kWh
2026-08-16 18:40:04.769231: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:40:04.769338: Optimise levels pass ended at 2026-08-16 18:40:04, duration 1.4 seconds tried 69 combinations
2026-08-16 18:40:04.769428: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 488.96p, best_keep 0kWh, best_cycle 43.3kWh, best_carbon 0kg, best_import 27.08kWh
2026-08-16 18:40:04.789579: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:40:07.704000: Tweak plan optimisation started metric 374.33p, cost 384.98p
2026-08-16 18:40:08.076266: Tweak optimisation finished metric 374.33p, cost 384.98p, metric_keep 0kWh, cycle 21.14kWh, carbon 0kg, import 11.26kWh, changed 8 window(s)
2026-08-16 18:40:08.100444: Swap charge optimisation started metric 374.33p, cost 384.98p, min_improvement_swap 0.1p
2026-08-16 18:40:08.898154: Swap charge optimisation finished metric 374.33p, cost 384.98p
2026-08-16 18:40:09.036044: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 373.28p -> 373.01p, plan now metric 375.81p, cost 381.54p, cycle 21.58kWh, import 10.83kWh
2026-08-16 18:40:09.046523: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:40:09.047344: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:40:09.047687: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:40:09.047925: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:40:09.081699: Previous plan best metric is 374.33 (cost 385.01) and new plan best metric is 374.33 (cost 384.98)
2026-08-16 18:40:09.081941: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:40:09.082127: Plan valid is now true after recompute was False
2026-08-16 18:40:09.106796: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 673.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 27.79kWh, PV 0.0kWh
2026-08-16 18:40:09.216799: Battery has 13.83 hours left - now at 10.7kWh
2026-08-16 18:40:09.261380: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 703.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.68kWh, PV 0.0kWh
2026-08-16 18:40:09.343886: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.68kWh, PV 0.0kWh
2026-08-16 18:40:09.422297: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 428.53p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.79kWh, PV 0.0kWh
2026-08-16 18:40:09.422389: Saving plan best values to HA entities
2026-08-16 18:40:09.570283: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:40:09.575624: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 18:40:09.580782: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.88kWh, house 0.0kWh, export 0.0kWh, metric 428.53p, metric10 444.91p
2026-08-16 18:40:09.657590: Marginal costs baseline metric (no standing charge): 381.8957
2026-08-16 18:40:09.927323: Marginal energy costs matrix computed: min=8.0 max=32.52
2026-08-16 18:40:09.993296: Rate array import [{'start': 1120, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1120, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:40:09.994067: - Your estimated bill for today is £3.19 and tomorrow is £1.34
2026-08-16 18:40:09.994132: - Import rates are very expensive (33.8p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:40:09.994168: - The battery is currently at 67% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 18:40:09.994197: - For the next 48 hours there will be no solar generation.
2026-08-16 18:40:09.994223: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:40:09.994256: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 18:40:09.994283: 
2026-08-16 18:40:10.050653: Plan calculation took 6.78 seconds
2026-08-16 18:40:10.051025: Inverter 0: Type SK Sunsynk
2026-08-16 18:40:10.051076: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:40:10.051306: Reserve min: 7%, battery_min: 7%
2026-08-16 18:40:10.051385: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:40:10.051721: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 374W, current battery voltage 51.2V, grid power -55W, load power 429W, PV Power 0W
2026-08-16 18:40:10.051999: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:40:10.052112: Inverter 0 scheduled charge enable is False
2026-08-16 18:40:10.052150: Inverter 0 charge windows currently []
2026-08-16 18:40:10.052180: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:40:10.052299: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:40:10.052340: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:40:10.052378: Inverter 0 scheduled discharge enable is False
2026-08-16 18:40:10.052516: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:40:10.052553: Inverter 0 discharge windows currently []
2026-08-16 18:40:10.052577: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:40:10.052595: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:40:10.052613: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:40:10.116244: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 18:40:10.116442: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:40:10.116529: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:40:10.116729: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:40:10.116812: No export window planned
2026-08-16 18:40:10.117013: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:40:10.117065: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:40:10.117213: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:40:10.117423: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:40:10.117485: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:40:10.117542: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:40:10.117636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117759: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.117989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.118036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.118062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.118086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.118120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:40:10.118142: Inverter 0 count register writes 0
2026-08-16 18:40:10.144090: Total inverter register writes now 844
2026-08-16 18:40:10.182098: Info: Completed run status Demand
2026-08-16 18:40:10.188459: Info: record_status Demand
2026-08-16 18:40:10.195095: Saved current settings to /config/predbat_config.json
2026-08-16 18:40:10.195445: Compare, best tariff: current metric 318.25p
2026-08-16 18:40:49.310438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:40:49.310719: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:40:49.310769: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:40:49.311059: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:40:49.311125: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:40:49.311160: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:40:49.311180: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:43:03.555810: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:43:03.556052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:43:03.556088: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:43:03.556237: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:43:03.556279: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:43:03.556296: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:43:03.556311: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:45:00.788422: --------------- PredBat - update at 2026-08-16 18:45:00+01:00 with clock skew 0 minutes, minutes now 1125
2026-08-16 18:45:00.789270: Saved current settings to /config/predbat_config.json
2026-08-16 18:45:00.789409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 18:45:00.789512: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:45:00.789604: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:45:00.808492: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:45:00.808675: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:45:00.808940: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:45:00.809745: 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-16 18:45:00.809937: Predbat mode is set to Control charge & discharge
2026-08-16 18:45:01.015251: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:45:01.015402: Using load_power data to fill gaps in load_today data
2026-08-16 18:45:01.702914: Processing 721 30-minute periods for power integration
2026-08-16 18:45:01.855901: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:45:01.856048: Car charging hold False, threshold 6.0kWh
2026-08-16 18:45:01.856087: Current data so far today: load 9.05kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:45:01.871332: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:45:01.871426: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:45:01.872040: Standing charge is set to 46.63p
2026-08-16 18:45:01.949536: 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-16 18:45:01.949816: 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-16 18:45:01.950065: 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-16 18:45:01.950314: 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-16 18:45:01.950537: 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-16 18:45:01.950750: 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-16 18:45:01.950985: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951098: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951208: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951319: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951447: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951573: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951719: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.951848: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.952024: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:45:01.952126: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:45:01.957695: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:45:01.958411: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:45:01.998773: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:45:01.998896: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:45:02.000005: High export rate found rates in range 99p to -99p
2026-08-16 18:45:02.030616: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:45:02.030780: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:45:02.030864: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:45:02.046572: Battery level now 10.7kWh, -1hr ago 11.04kWh, at midnight 12.21kWh, battery value change in the last hour -2.31p, change today -10.34p, rate_forward 6.87p
2026-08-16 18:45:02.046918: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.93p, import 0.93p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:45:02.106566: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 18:45:02.106706: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:45:02.183378: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:45:02.207587: Today's load divergence 82.5%, in-day adjustment 83.29%, damping 0.95x, yesterday 82.97% today 83.38% blend 21.88%
2026-08-16 18:45:02.207675: Today's predicted so far 11.31kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 11.31kWh forecast extra.
2026-08-16 18:45:02.207706: Today's actual load so far 9.02kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 18:45:02.238027: 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-17T00:30:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 18:45:02.238524: Sensor changes require a replan, will recompute the plan
2026-08-16 18:45:02.238654: Inverter 0: Type SK Sunsynk
2026-08-16 18:45:02.238685: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:45:02.238860: Reserve min: 7%, battery_min: 7%
2026-08-16 18:45:02.238919: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:45:02.239172: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 371W, current battery voltage 51.2V, grid power -54W, load power 427W, PV Power 0W
2026-08-16 18:45:02.239311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:45:02.239385: Inverter 0 scheduled charge enable is False
2026-08-16 18:45:02.239411: Inverter 0 charge windows currently []
2026-08-16 18:45:02.239432: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:45:02.239520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:45:02.239549: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:45:02.239579: Inverter 0 scheduled discharge enable is False
2026-08-16 18:45:02.239683: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:45:02.239713: Inverter 0 discharge windows currently []
2026-08-16 18:45:02.239732: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:45:02.239748: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:45:02.239762: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:45:02.295224: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:45:02.295304: Will recompute the plan as it is invalid
2026-08-16 18:45:02.295439: Recompute is saving previous plan...
2026-08-16 18:45:02.296304: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:45:02.296361: Best export window [  ]
2026-08-16 18:45:02.297123: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:45:02.299670: Load divergence over 8.0 hours mean 622.55W, min 379.8W, max 1153.2W, std dev 224.42W, divergence 18.02%
2026-08-16 18:45:02.314998: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:45:02.315123: LoadML is_calculating False
2026-08-16 18:45:02.315232: Creating pool of 12 processes to match your CPU count
2026-08-16 18:45:02.397379: 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(0.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-16 18:45:02.398235: Optimise levels pass started at 2026-08-16 18:45:02
2026-08-16 18:45:02.398306: Optimise all windows, total charge 25 export 1
2026-08-16 18:45:02.778241: >> Region optimisation pass width 960 gives best_metric 489.0p, best_cost 511.14p, best_cycle 43.43kWh, best_import 27.17kWh
2026-08-16 18:45:02.934141: >> Region optimisation pass width 480 gives best_metric 489.0p, best_cost 511.14p, best_cycle 43.43kWh, best_import 27.17kWh
2026-08-16 18:45:03.206759: >> Region optimisation pass width 240 gives best_metric 489.0p, best_cost 511.14p, best_cycle 43.43kWh, best_import 27.17kWh
2026-08-16 18:45:03.789355: >> Region optimisation pass width 120 gives best_metric 489.0p, best_cost 511.14p, best_cycle 43.43kWh, best_import 27.17kWh
2026-08-16 18:45:03.789559: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:45:03.789615: Optimise levels pass ended at 2026-08-16 18:45:03, duration 1.4 seconds tried 67 combinations
2026-08-16 18:45:03.789672: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 489.0p, best_keep 0kWh, best_cycle 43.43kWh, best_carbon 0kg, best_import 27.17kWh
2026-08-16 18:45:03.807239: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:45:06.616821: Tweak plan optimisation started metric 374.03p, cost 384.59p
2026-08-16 18:45:06.972308: Tweak optimisation finished metric 374.03p, cost 384.59p, metric_keep 0kWh, cycle 21.2kWh, carbon 0kg, import 11.35kWh, changed 8 window(s)
2026-08-16 18:45:06.995338: Swap charge optimisation started metric 374.03p, cost 384.59p, min_improvement_swap 0.1p
2026-08-16 18:45:07.922276: Swap charge optimisation finished metric 374.03p, cost 384.59p
2026-08-16 18:45:08.040519: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 372.97p -> 372.71p, plan now metric 375.56p, cost 381.13p, cycle 21.65kWh, import 10.92kWh
2026-08-16 18:45:08.049372: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:45:08.049675: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:45:08.049881: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:45:08.050028: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:45:08.082060: Previous plan best metric is 374.04 (cost 384.58) and new plan best metric is 374.03 (cost 384.59)
2026-08-16 18:45:08.082268: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:45:08.082415: Plan valid is now true after recompute was False
2026-08-16 18:45:08.109023: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 675.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 27.77kWh, PV 0.0kWh
2026-08-16 18:45:08.232031: Battery has 13.5 hours left - now at 10.56kWh
2026-08-16 18:45:08.271122: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 705.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.66kWh, PV 0.0kWh
2026-08-16 18:45:08.345195: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.66kWh, PV 0.0kWh
2026-08-16 18:45:08.421409: predict best end_record 08-17 23:30:00, final soc 1.27kWh, metric 428.15p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 27.77kWh, PV 0.0kWh
2026-08-16 18:45:08.421506: Saving plan best values to HA entities
2026-08-16 18:45:08.590527: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:45:08.596321: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:45:08.602566: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.97kWh, house 0kWh, export 0.0kWh, metric 428.15p, metric10 444.8p
2026-08-16 18:45:08.674756: Marginal costs baseline metric (no standing charge): 381.5124
2026-08-16 18:45:08.967953: Marginal energy costs matrix computed: min=8.0 max=32.59
2026-08-16 18:45:09.044441: Rate array import [{'start': 1125, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1125, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:45:09.045293: - Your estimated bill for today is £3.18 and tomorrow is £1.35
2026-08-16 18:45:09.045368: - Import rates are very expensive (33.8p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:45:09.045393: - The battery is currently at 66% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 18:45:09.045412: - For the next 48 hours there will be no solar generation.
2026-08-16 18:45:09.045431: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:45:09.045448: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 18:45:09.045466: 
2026-08-16 18:45:09.104087: Plan calculation took 6.81 seconds
2026-08-16 18:45:09.109637: Saved plan to storage
2026-08-16 18:45:09.113649: No high rate period found
2026-08-16 18:45:09.174593: Import threshold used for optimisation was 8.0p
2026-08-16 18:45:09.231877: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:45:09.239356: Inverter 0: Type SK Sunsynk
2026-08-16 18:45:09.239446: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:45:09.239678: Reserve min: 7%, battery_min: 7%
2026-08-16 18:45:09.239759: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:45:09.240094: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 371W, current battery voltage 51.2V, grid power -54W, load power 427W, PV Power 0W
2026-08-16 18:45:09.240359: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:45:09.240467: Inverter 0 scheduled charge enable is False
2026-08-16 18:45:09.240503: Inverter 0 charge windows currently []
2026-08-16 18:45:09.240534: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:45:09.240650: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:45:09.240690: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:45:09.240727: Inverter 0 scheduled discharge enable is False
2026-08-16 18:45:09.240885: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:45:09.240926: Inverter 0 discharge windows currently []
2026-08-16 18:45:09.240982: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:45:09.241013: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:45:09.241032: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:45:09.305111: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 18:45:09.305273: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:45:09.305351: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:45:09.305556: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:45:09.305645: No export window planned
2026-08-16 18:45:09.305759: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:45:09.305812: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:45:09.305966: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:45:09.306147: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:45:09.306204: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:45:09.306263: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:45:09.306367: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306413: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306469: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306517: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306544: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306713: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:45:09.306831: Inverter 0 count register writes 0
2026-08-16 18:45:09.331274: Total inverter register writes now 844
2026-08-16 18:45:09.367387: Info: Completed run status Demand
2026-08-16 18:45:09.374396: Info: record_status Demand
2026-08-16 18:45:09.382778: Saved current settings to /config/predbat_config.json
2026-08-16 18:45:09.383179: Compare, best tariff: current metric 318.25p
2026-08-16 18:45:48.500509: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:45:48.500755: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:45:48.500810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:45:48.501018: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:45:48.501062: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:45:48.501084: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:45:48.501102: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:47:48.723549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:47:48.723812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:47:48.723850: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:47:48.723985: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:47:48.724024: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:47:48.724045: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:47:48.724063: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:49:48.950619: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:49:48.950891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:49:48.950936: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:49:48.951072: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:49:48.951111: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:49:48.951131: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:49:48.951149: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:50:00.064537: --------------- PredBat - update at 2026-08-16 18:50:00+01:00 with clock skew 0 minutes, minutes now 1130
2026-08-16 18:50:00.065509: Saved current settings to /config/predbat_config.json
2026-08-16 18:50:00.065701: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 18:50:00.065876: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:50:00.066006: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:50:00.092895: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:50:00.093106: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:50:00.093301: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:50:00.093868: 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-16 18:50:00.094004: Predbat mode is set to Control charge & discharge
2026-08-16 18:50:00.352178: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:50:00.352336: Using load_power data to fill gaps in load_today data
2026-08-16 18:50:01.102747: Processing 721 30-minute periods for power integration
2026-08-16 18:50:01.284871: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:50:01.285084: Car charging hold False, threshold 6.0kWh
2026-08-16 18:50:01.285158: Current data so far today: load 9.15kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:50:01.303958: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:50:01.304061: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:50:01.304678: Standing charge is set to 46.63p
2026-08-16 18:50:01.397181: 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-16 18:50:01.397412: 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-16 18:50:01.397595: 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-16 18:50:01.397761: 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-16 18:50:01.397928: 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-16 18:50:01.398072: 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-16 18:50:01.398215: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398291: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398356: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398417: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398498: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398568: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398662: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398730: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398887: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:50:01.398938: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:50:01.403472: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:50:01.403859: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:50:01.443499: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:50:01.443639: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:50:01.444853: High export rate found rates in range 99p to -99p
2026-08-16 18:50:01.472245: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:50:01.472388: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:50:01.472442: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:50:01.486676: Battery level now 10.56kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -11.33p, rate_forward 6.87p
2026-08-16 18:50:01.487016: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.88p, import 0.88p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:50:01.550299: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 18:50:01.550441: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:50:01.628049: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:50:01.653093: Today's load divergence 83.06%, in-day adjustment 83.71%, damping 0.95x, yesterday 82.97% today 83.91% blend 21.53%
2026-08-16 18:50:01.653209: Today's predicted so far 11.34kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 11.34kWh forecast extra.
2026-08-16 18:50:01.653236: Today's actual load so far 9.11kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 18:50:01.685707: Inverter 0: Type SK Sunsynk
2026-08-16 18:50:01.685801: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:50:01.685959: Reserve min: 7%, battery_min: 7%
2026-08-16 18:50:01.686020: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:50:01.686253: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 302W, current battery voltage 51.2V, grid power -54W, load power 360W, PV Power 0W
2026-08-16 18:50:01.686386: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:50:01.686460: Inverter 0 scheduled charge enable is False
2026-08-16 18:50:01.686484: Inverter 0 charge windows currently []
2026-08-16 18:50:01.686505: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:50:01.686620: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:50:01.686651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:50:01.686682: Inverter 0 scheduled discharge enable is False
2026-08-16 18:50:01.686797: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:50:01.686829: Inverter 0 discharge windows currently []
2026-08-16 18:50:01.686848: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:50:01.686863: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:50:01.686877: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:50:01.740006: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:50:01.740100: Plan was last updated on 2026-08-16 18:45:00+01:00 and is now 5.0 minutes old
2026-08-16 18:50:01.740305: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:50:01.740340: Best export window [  ]
2026-08-16 18:50:01.741044: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:50:01.743533: Load divergence over 8.0 hours mean 620.55W, min 363.6W, max 1047.6W, std dev 219.83W, divergence 17.71%
2026-08-16 18:50:01.758598: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:50:01.758685: LoadML is_calculating False
2026-08-16 18:50:01.758739: Creating pool of 12 processes to match your CPU count
2026-08-16 18:50:01.879986: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 674.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 27.91kWh, PV 0.0kWh
2026-08-16 18:50:01.996383: Battery has 13.58 hours left - now at 10.56kWh
2026-08-16 18:50:02.034913: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 704.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.81kWh, PV 0.0kWh
2026-08-16 18:50:02.110806: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.81kWh, PV 0.0kWh
2026-08-16 18:50:02.182313: predict best end_record 08-17 23:35:00, final soc 1.68kWh, metric 431.96p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 27.91kWh, PV 0.0kWh
2026-08-16 18:50:02.182422: Saving plan best values to HA entities
2026-08-16 18:50:02.333128: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:50:02.339244: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 18:50:02.344744: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.45kWh, house 0.0kWh, export 0.0kWh, metric 431.96p, metric10 447.45p
2026-08-16 18:50:02.424179: Marginal costs baseline metric (no standing charge): 385.326
2026-08-16 18:50:02.661838: Marginal energy costs matrix computed: min=8.0 max=32.44
2026-08-16 18:50:02.725232: Rate array import [{'start': 1130, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1130, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:50:02.725864: - Your estimated bill for today is £3.18 and tomorrow is £1.35
2026-08-16 18:50:02.725931: - Import rates are very expensive (33.8p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 18:50:02.725952: - The battery is currently at 66% and is in eco mode for the next 4 and three quarters hours.
2026-08-16 18:50:02.725968: - For the next 48 hours there will be no solar generation.
2026-08-16 18:50:02.725982: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:50:02.725996: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 18:50:02.726010: 
2026-08-16 18:50:02.781710: Plan calculation took 1.04 seconds
2026-08-16 18:50:02.786726: No high rate period found
2026-08-16 18:50:02.848363: Import threshold used for optimisation was 8.0p
2026-08-16 18:50:02.906468: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:50:02.912541: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 18:50:02.912676: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:50:02.912828: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:50:02.913179: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:50:02.913279: No export window planned
2026-08-16 18:50:02.913399: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:50:02.913437: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:50:02.913576: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:50:02.913754: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:50:02.913844: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:50:02.913917: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:50:02.914015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914373: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:50:02.914496: Inverter 0 count register writes 0
2026-08-16 18:50:02.931107: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 18:50:02.938380: Total inverter register writes now 844
2026-08-16 18:50:02.975015: Info: Completed run status Demand
2026-08-16 18:50:02.981464: Info: record_status Demand
2026-08-16 18:50:02.988501: Saved current settings to /config/predbat_config.json
2026-08-16 18:50:02.988866: Compare, best tariff: current metric 318.25p
2026-08-16 18:50:08.699996: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 18:50:09.793964: Processing 1345 30-minute periods for power integration
2026-08-16 18:50:09.900123: ML Component: Car charging hold False, car energy reported load False
2026-08-16 18:50:10.004461: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:50:10.108669: ML Temperature data points: 49271
2026-08-16 18:50:10.397367: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 18:50:10.437296: ML Component: Data fetch completed, load data age 58.0 days, 16762 data points
2026-08-16 18:50:10.437882: ML Component: No training needed, model age is 0.74 hours
2026-08-16 18:50:10.437962: ML Component: Generating predictions load data age 58.0 days, 16762 data points
2026-08-16 18:50:10.571380: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0256 max_dow {0: 0.09092812499813735, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-16 18:50:11.038079: ML Component: Generated 576 predictions (total 26.48 kWh over 48h)
2026-08-16 18:50:11.070315: ML Component: Prediction cycle completed
2026-08-16 18:50:11.172557: ML Component: Saved 16762 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 18:50:34.113560: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:50:34.113995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:50:34.114071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:50:34.114301: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:50:34.114362: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:50:34.114408: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:50:34.114426: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:52:48.369631: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:52:48.369930: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:52:48.369997: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:52:48.370139: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:52:48.370178: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:52:48.370198: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:52:48.370216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:54:48.589560: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:54:48.589824: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:54:48.589870: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:54:48.590046: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:54:48.590091: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:54:48.590113: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:54:48.590132: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:55:00.685377: --------------- PredBat - update at 2026-08-16 18:55:00+01:00 with clock skew 0 minutes, minutes now 1135
2026-08-16 18:55:00.686305: Saved current settings to /config/predbat_config.json
2026-08-16 18:55:00.686510: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-16 18:55:00.686634: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 18:55:00.686720: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 18:55:00.707681: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 18:55:00.707833: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 18:55:00.708002: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 18:55:00.708508: 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-16 18:55:00.708627: Predbat mode is set to Control charge & discharge
2026-08-16 18:55:00.917779: Found 21602 load_today datapoints going back 28 days
2026-08-16 18:55:00.917940: Using load_power data to fill gaps in load_today data
2026-08-16 18:55:01.815289: Processing 721 30-minute periods for power integration
2026-08-16 18:55:01.968602: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 18:55:01.968742: Car charging hold False, threshold 6.0kWh
2026-08-16 18:55:01.968801: Current data so far today: load 9.2kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 18:55:01.987317: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 18:55:01.987417: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 18:55:01.988188: Standing charge is set to 46.63p
2026-08-16 18:55:02.067133: 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-16 18:55:02.067385: 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-16 18:55:02.067594: 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-16 18:55:02.067845: 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-16 18:55:02.068035: 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-16 18:55:02.068221: 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-16 18:55:02.068394: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068474: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068560: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068632: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068711: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068805: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068887: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.068978: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.069159: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 18:55:02.069217: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 18:55:02.074597: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 18:55:02.075157: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 18:55:02.118613: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 18:55:02.118724: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 18:55:02.119996: High export rate found rates in range 99p to -99p
2026-08-16 18:55:02.154429: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 18:55:02.154553: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 18:55:02.154639: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 18:55:02.167848: Battery level now 10.56kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -11.33p, rate_forward 6.87p
2026-08-16 18:55:02.168150: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.82p, import 0.82p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 18:55:02.221009: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 18:55:02.221176: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 18:55:02.296124: Using weighted-bucket historical load forecast over 14 days
2026-08-16 18:55:02.319870: Today's load divergence 83.32%, in-day adjustment 83.9%, damping 0.95x, yesterday 82.97% today 84.15% blend 21.18%
2026-08-16 18:55:02.319962: Today's predicted so far 11.36kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 11.36kWh forecast extra.
2026-08-16 18:55:02.320266: Today's actual load so far 9.16kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 18:55:02.352073: Inverter 0: Type SK Sunsynk
2026-08-16 18:55:02.352154: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:55:02.352308: Reserve min: 7%, battery_min: 7%
2026-08-16 18:55:02.352370: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:55:02.352592: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 303W, current battery voltage 51.2V, grid power -54W, load power 361W, PV Power 0W
2026-08-16 18:55:02.352724: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:55:02.352806: Inverter 0 scheduled charge enable is False
2026-08-16 18:55:02.352832: Inverter 0 charge windows currently []
2026-08-16 18:55:02.352854: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:55:02.352968: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:55:02.353012: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:55:02.353063: Inverter 0 scheduled discharge enable is False
2026-08-16 18:55:02.353190: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:55:02.353221: Inverter 0 discharge windows currently []
2026-08-16 18:55:02.353240: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:55:02.353256: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:55:02.353269: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:55:02.412293: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 18:55:02.412404: Plan was last updated on 2026-08-16 18:45:00+01:00 and is now 10.0 minutes old
2026-08-16 18:55:02.412654: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 18:55:02.412698: Best export window [  ]
2026-08-16 18:55:02.413573: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:55:02.416688: Load divergence over 8.0 hours mean 619.13W, min 339.0W, max 1060.8W, std dev 217.34W, divergence 17.55%
2026-08-16 18:55:02.435021: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:55:02.435123: LoadML is_calculating False
2026-08-16 18:55:02.435242: Creating pool of 12 processes to match your CPU count
2026-08-16 18:55:02.568926: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 674.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.04kWh, PV 0.0kWh
2026-08-16 18:55:02.712901: Battery has 13.58 hours left - now at 10.56kWh
2026-08-16 18:55:02.767123: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 704.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:30:00, load 28.94kWh, PV 0.0kWh
2026-08-16 18:55:02.851231: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 450.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.94kWh, PV 0.0kWh
2026-08-16 18:55:02.939902: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 435.83p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.04kWh, PV 0.0kWh
2026-08-16 18:55:02.940505: Saving plan best values to HA entities
2026-08-16 18:55:03.113481: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:55:03.118891: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:55:03.124016: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.93kWh, house 0.0kWh, export 0.0kWh, metric 435.83p, metric10 450.93p
2026-08-16 18:55:03.200764: Marginal costs baseline metric (no standing charge): 389.1972
2026-08-16 18:55:03.436927: Marginal energy costs matrix computed: min=8.0 max=32.48
2026-08-16 18:55:03.533947: Rate array import [{'start': 1135, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1135, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:55:03.534596: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 18:55:03.534641: - 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-16 18:55:03.534660: - The battery is currently at 66% and is in eco mode for the next 4 and a half hours.
2026-08-16 18:55:03.534675: - For the next 48 hours there will be no solar generation.
2026-08-16 18:55:03.534689: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:55:03.534703: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-16 18:55:03.534718: 
2026-08-16 18:55:03.587549: Plan calculation took 1.18 seconds
2026-08-16 18:55:03.591498: No high rate period found
2026-08-16 18:55:03.644271: Import threshold used for optimisation was 8.0p
2026-08-16 18:55:03.700480: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 18:55:03.706557: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 18:55:03.706683: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:55:03.706800: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:55:03.707038: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:55:03.707114: No export window planned
2026-08-16 18:55:03.707212: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:55:03.707243: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:55:03.707358: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:55:03.707505: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:55:03.707579: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:55:03.707637: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:55:03.707712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707745: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707809: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.707979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.708002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.708026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.708046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.708066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:03.708082: Inverter 0 count register writes 0
2026-08-16 18:55:03.729584: 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-16 18:55:03.729873: Recompute is saving previous plan...
2026-08-16 18:55:03.731188: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 18:55:03.731249: Best export window [  ]
2026-08-16 18:55:03.732065: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 18:55:03.735610: Load divergence over 8.0 hours mean 619.13W, min 339.0W, max 1060.8W, std dev 217.34W, divergence 17.55%
2026-08-16 18:55:03.752478: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 18:55:03.752610: LoadML is_calculating False
2026-08-16 18:55:03.752676: Creating pool of 12 processes to match your CPU count
2026-08-16 18:55:03.837496: 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(0.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-16 18:55:03.838444: Optimise levels pass started at 2026-08-16 18:55:03
2026-08-16 18:55:03.838505: Optimise all windows, total charge 25 export 1
2026-08-16 18:55:04.262298: >> Region optimisation pass width 960 gives best_metric 490.4p, best_cost 525.63p, best_cycle 41.36kWh, best_import 28.98kWh
2026-08-16 18:55:04.433142: >> Region optimisation pass width 480 gives best_metric 490.4p, best_cost 525.63p, best_cycle 41.36kWh, best_import 28.98kWh
2026-08-16 18:55:04.662054: >> Region optimisation pass width 240 gives best_metric 490.4p, best_cost 525.63p, best_cycle 41.36kWh, best_import 28.98kWh
2026-08-16 18:55:05.305739: >> Region optimisation pass width 120 gives best_metric 490.07p, best_cost 521.39p, best_cycle 41.91kWh, best_import 28.45kWh
2026-08-16 18:55:05.306041: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 18:55:05.306116: Optimise levels pass ended at 2026-08-16 18:55:05, duration 1.5 seconds tried 74 combinations
2026-08-16 18:55:05.306190: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 490.07p, best_keep 0kWh, best_cycle 41.91kWh, best_carbon 0kg, best_import 28.45kWh
2026-08-16 18:55:05.326360: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 18:55:08.231764: Tweak plan optimisation started metric 373.19p, cost 383.81p
2026-08-16 18:55:08.605702: Tweak optimisation finished metric 373.19p, cost 383.81p, metric_keep 0kWh, cycle 21.03kWh, carbon 0kg, import 11.26kWh, changed 8 window(s)
2026-08-16 18:55:08.626751: Swap charge optimisation started metric 373.19p, cost 383.81p, min_improvement_swap 0.1p
2026-08-16 18:55:09.414807: Swap charge optimisation finished metric 373.19p, cost 383.81p
2026-08-16 18:55:09.560821: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 372.15p -> 371.98p, plan now metric 374.56p, cost 380.79p, cycle 21.54kWh, import 10.88kWh
2026-08-16 18:55:09.569525: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 18:55:09.569903: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:55:09.570124: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:55:09.570291: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 18:55:09.601682: Previous plan best metric is 373.19 (cost 383.81) and new plan best metric is 373.19 (cost 383.81)
2026-08-16 18:55:09.601891: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 18:55:09.602019: Plan valid is now true after recompute was False
2026-08-16 18:55:09.626673: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 672.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 27.82kWh, PV 0.0kWh
2026-08-16 18:55:09.729553: Battery has 13.58 hours left - now at 10.56kWh
2026-08-16 18:55:09.769510: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 702.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:30:00, load 28.71kWh, PV 0.0kWh
2026-08-16 18:55:09.838071: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 443.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.71kWh, PV 0.0kWh
2026-08-16 18:55:09.916295: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 427.42p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.82kWh, PV 0.0kWh
2026-08-16 18:55:09.916389: Saving plan best values to HA entities
2026-08-16 18:55:10.080784: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 18:55:10.086918: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 18:55:10.094087: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.88kWh, house 0.0kWh, export 0.0kWh, metric 427.42p, metric10 443.55p
2026-08-16 18:55:10.186394: Marginal costs baseline metric (no standing charge): 380.7874
2026-08-16 18:55:10.447351: Marginal energy costs matrix computed: min=8.0 max=32.48
2026-08-16 18:55:10.644649: Rate array import [{'start': 1135, '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)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1135, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 18:55:10.645375: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 18:55:10.645429: - 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-16 18:55:10.645452: - The battery is currently at 66% and is in eco mode for the next 4 and a half hours.
2026-08-16 18:55:10.645470: - For the next 48 hours there will be no solar generation.
2026-08-16 18:55:10.645507: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 18:55:10.645525: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-16 18:55:10.645549: 
2026-08-16 18:55:10.708066: Plan calculation took 6.98 seconds
2026-08-16 18:55:10.708459: Inverter 0: Type SK Sunsynk
2026-08-16 18:55:10.708518: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 18:55:10.708807: Reserve min: 7%, battery_min: 7%
2026-08-16 18:55:10.708918: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 18:55:10.709346: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 303W, current battery voltage 51.2V, grid power -54W, load power 361W, PV Power 0W
2026-08-16 18:55:10.709633: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:55:10.709789: Inverter 0 scheduled charge enable is False
2026-08-16 18:55:10.709835: Inverter 0 charge windows currently []
2026-08-16 18:55:10.709880: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 18:55:10.710055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:55:10.710102: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:55:10.710157: Inverter 0 scheduled discharge enable is False
2026-08-16 18:55:10.710362: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:55:10.710407: Inverter 0 discharge windows currently []
2026-08-16 18:55:10.710463: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:55:10.710510: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:55:10.710539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:55:10.768228: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 18:55:10.768380: Inverter 0 disabled charge window while waiting for schedule (now 08-16 18:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 18:55:10.768459: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:55:10.768691: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:55:10.768792: No export window planned
2026-08-16 18:55:10.768917: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 18:55:10.769018: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 18:55:10.769189: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 18:55:10.769360: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 18:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 18:55:10.769443: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 18:55:10.769497: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 18:55:10.769618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769653: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769719: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769744: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769909: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.769988: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.770013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.770037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.770060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 18:55:10.770081: Inverter 0 count register writes 0
2026-08-16 18:55:10.793645: Total inverter register writes now 844
2026-08-16 18:55:10.829947: Info: Completed run status Demand
2026-08-16 18:55:10.837370: Info: record_status Demand
2026-08-16 18:55:10.844904: Saved current settings to /config/predbat_config.json
2026-08-16 18:55:10.845326: Compare, best tariff: current metric 318.25p
2026-08-16 18:55:48.960264: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:55:48.960527: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:55:48.960585: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:55:48.960868: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:55:48.960934: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:55:48.961090: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:55:48.961115: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 18:57:49.188738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 18:57:49.189057: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 18:57:49.189107: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 18:57:49.189243: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 18:57:49.189283: Note: Inverter does not support discharge freeze - disabled
2026-08-16 18:57:49.189304: Note: Inverter does not support charge freeze - disabled
2026-08-16 18:57:49.189322: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:00:00.451302: --------------- PredBat - update at 2026-08-16 19:00:00+01:00 with clock skew 0 minutes, minutes now 1140
2026-08-16 19:00:00.452083: Saved current settings to /config/predbat_config.json
2026-08-16 19:00:00.701723: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:00:00.701934: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:00:00.728730: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:00:00.728938: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:00:00.729194: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:00:00.729795: 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-16 19:00:00.729932: Predbat mode is set to Control charge & discharge
2026-08-16 19:00:00.964625: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:00:00.964985: Using load_power data to fill gaps in load_today data
2026-08-16 19:00:01.990883: Processing 721 30-minute periods for power integration
2026-08-16 19:00:02.198127: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:00:02.198277: Car charging hold False, threshold 6.0kWh
2026-08-16 19:00:02.198332: Current data so far today: load 9.25kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:00:02.218470: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:00:02.218592: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:00:02.219442: Standing charge is set to 46.63p
2026-08-16 19:00:02.319587: 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-16 19:00:02.319899: 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-16 19:00:02.320103: 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-16 19:00:02.320292: 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-16 19:00:02.320470: 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-16 19:00:02.320651: 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-16 19:00:02.320854: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.320980: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321084: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321163: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321247: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321327: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321408: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321475: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321639: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:00:02.321721: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:00:02.327978: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:00:02.328407: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:00:02.372300: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:00:02.372806: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:00:02.375219: High export rate found rates in range 99p to -99p
2026-08-16 19:00:02.419330: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:00:02.419526: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:00:02.419619: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:00:02.437597: Battery level now 10.56kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -11.33p, rate_forward 6.87p
2026-08-16 19:00:02.438017: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 0.72p, import 0.72p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 19:00:02.518844: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:00:02.519072: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:00:02.617501: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:00:02.648678: Today's load divergence 83.1%, in-day adjustment 83.74%, damping 0.95x, yesterday 82.97% today 83.95% blend 20.83%
2026-08-16 19:00:02.648795: Today's predicted so far 11.49kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.49kWh forecast extra.
2026-08-16 19:00:02.648831: Today's actual load so far 9.27kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 19:00:02.687005: Inverter 0: Type SK Sunsynk
2026-08-16 19:00:02.687101: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:00:02.687307: Reserve min: 7%, battery_min: 7%
2026-08-16 19:00:02.687396: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:00:02.687781: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 302W, current battery voltage 51.2V, grid power -54W, load power 360W, PV Power 0W
2026-08-16 19:00:02.687965: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:00:02.688056: Inverter 0 scheduled charge enable is False
2026-08-16 19:00:02.688092: Inverter 0 charge windows currently []
2026-08-16 19:00:02.688119: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:00:02.688232: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:00:02.688268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:00:02.688305: Inverter 0 scheduled discharge enable is False
2026-08-16 19:00:02.688484: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:00:02.688531: Inverter 0 discharge windows currently []
2026-08-16 19:00:02.688555: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:00:02.688576: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:00:02.688593: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:00:02.760989: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:00:02.761107: Plan was last updated on 2026-08-16 18:55:00+01:00 and is now 5.0 minutes old
2026-08-16 19:00:02.761378: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:00:02.761422: Best export window [  ]
2026-08-16 19:00:02.762271: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:00:02.765495: Load divergence over 8.0 hours mean 619.04W, min 322.8W, max 1100.4W, std dev 217.23W, divergence 17.55%
2026-08-16 19:00:02.784102: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:00:02.784239: LoadML is_calculating False
2026-08-16 19:00:02.784309: Creating pool of 12 processes to match your CPU count
2026-08-16 19:00:02.905682: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 672.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 27.95kWh, PV 0.0kWh
2026-08-16 19:00:03.054521: Battery has 13.58 hours left - now at 10.56kWh
2026-08-16 19:00:03.098715: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 702.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:35:00, load 28.85kWh, PV 0.0kWh
2026-08-16 19:00:03.182156: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.85kWh, PV 0.0kWh
2026-08-16 19:00:03.265341: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 431.4p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.95kWh, PV 0.0kWh
2026-08-16 19:00:03.265432: Saving plan best values to HA entities
2026-08-16 19:00:03.474351: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:00:03.480188: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:00:03.486001: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.38kWh, house 0.0kWh, export 0.0kWh, metric 431.4p, metric10 447.12p
2026-08-16 19:00:03.577485: Marginal costs baseline metric (no standing charge): 384.7708
2026-08-16 19:00:03.888730: Marginal energy costs matrix computed: min=8.0 max=32.51
2026-08-16 19:00:03.968375: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1140, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:00:03.969272: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 19:00:03.969349: - 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-16 19:00:03.969403: - The battery is currently at 66% and is in eco mode for the next 4 and a half hours.
2026-08-16 19:00:03.969440: - For the next 48 hours there will be no solar generation.
2026-08-16 19:00:03.969476: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:00:03.969511: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-16 19:00:03.969544: 
2026-08-16 19:00:04.034233: Plan calculation took 1.27 seconds
2026-08-16 19:00:04.038110: No high rate period found
2026-08-16 19:00:04.092627: Import threshold used for optimisation was 8.0p
2026-08-16 19:00:04.148197: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:00:04.154409: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 100%
2026-08-16 19:00:04.154552: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:00:04.154673: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:00:04.154972: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:00:04.155070: No export window planned
2026-08-16 19:00:04.155177: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:00:04.155214: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:00:04.155354: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:00:04.155528: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:00:04.155591: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:00:04.155656: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:00:04.155742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.155954: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156099: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:00:04.156220: Inverter 0 count register writes 0
2026-08-16 19:00:04.178044: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:00:04.183951: Total inverter register writes now 844
2026-08-16 19:00:04.218360: Info: Completed run status Demand
2026-08-16 19:00:04.225220: Info: record_status Demand
2026-08-16 19:00:04.232197: Saved current settings to /config/predbat_config.json
2026-08-16 19:00:04.232582: Compare, best tariff: current metric 318.25p
2026-08-16 19:00:34.336887: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:00:34.337264: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:00:34.337364: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:00:34.337607: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:00:34.337683: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:00:34.337710: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:00:34.337765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:02:48.570570: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:02:48.570803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:02:48.570844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:02:48.570950: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:02:48.570982: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:02:48.571000: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:02:48.571014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:04:48.783641: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:04:48.783907: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:04:48.783945: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:04:48.784124: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:04:48.784203: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:04:48.784238: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:04:48.784261: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:05:00.876812: --------------- PredBat - update at 2026-08-16 19:05:00+01:00 with clock skew 0 minutes, minutes now 1145
2026-08-16 19:05:00.877644: Saved current settings to /config/predbat_config.json
2026-08-16 19:05:00.877836: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 19:05:00.877921: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:05:00.878068: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:05:00.895958: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:05:00.896086: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:05:00.896255: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:05:00.896797: 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-16 19:05:00.896923: Predbat mode is set to Control charge & discharge
2026-08-16 19:05:01.061258: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:05:01.061400: Using load_power data to fill gaps in load_today data
2026-08-16 19:05:01.907978: Processing 721 30-minute periods for power integration
2026-08-16 19:05:02.098385: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:05:02.098526: Car charging hold False, threshold 6.0kWh
2026-08-16 19:05:02.098574: Current data so far today: load 9.3kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:05:02.117037: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:05:02.117146: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:05:02.117879: Standing charge is set to 46.63p
2026-08-16 19:05:02.209649: 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-16 19:05:02.209933: 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-16 19:05:02.210127: 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-16 19:05:02.210310: 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-16 19:05:02.210489: 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-16 19:05:02.210664: 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-16 19:05:02.210862: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.210961: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211049: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211134: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211210: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211294: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211375: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211449: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211617: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:05:02.211677: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:05:02.217134: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:05:02.217573: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:05:02.260612: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:05:02.260738: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:05:02.262103: High export rate found rates in range 99p to -99p
2026-08-16 19:05:02.296284: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:05:02.296401: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:05:02.296459: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:05:02.310656: Battery level now 10.56kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -11.33p, rate_forward 6.87p
2026-08-16 19:05:02.311056: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.48p, import 0.48p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 19:05:02.387065: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:05:02.387232: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:05:02.485458: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:05:02.517840: Today's load divergence 83.11%, in-day adjustment 83.75%, damping 0.95x, yesterday 82.97% today 83.95% blend 20.49%
2026-08-16 19:05:02.517944: Today's predicted so far 11.58kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.58kWh forecast extra.
2026-08-16 19:05:02.517979: Today's actual load so far 9.37kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 19:05:02.555090: Inverter 0: Type SK Sunsynk
2026-08-16 19:05:02.555187: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:05:02.555433: Reserve min: 7%, battery_min: 7%
2026-08-16 19:05:02.555546: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:05:02.555882: Inverter 0 SoC: 10.41kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 301W, current battery voltage 51.2V, grid power -56W, load power 359W, PV Power 0W
2026-08-16 19:05:02.556095: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:05:02.556224: Inverter 0 scheduled charge enable is False
2026-08-16 19:05:02.556275: Inverter 0 charge windows currently []
2026-08-16 19:05:02.556335: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:05:02.556492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:05:02.556538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:05:02.556596: Inverter 0 scheduled discharge enable is False
2026-08-16 19:05:02.556808: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:05:02.556862: Inverter 0 discharge windows currently []
2026-08-16 19:05:02.556898: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:05:02.556930: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:05:02.556984: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:05:02.619054: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:05:02.619166: Plan was last updated on 2026-08-16 18:55:00+01:00 and is now 10.0 minutes old
2026-08-16 19:05:02.619414: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:05:02.619481: Best export window [  ]
2026-08-16 19:05:02.620313: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:05:02.623545: Load divergence over 8.0 hours mean 618.77W, min 337.8W, max 1131.0W, std dev 226.79W, divergence 18.33%
2026-08-16 19:05:02.642061: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:05:02.642193: LoadML is_calculating False
2026-08-16 19:05:02.642280: Creating pool of 12 processes to match your CPU count
2026-08-16 19:05:02.770049: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 676.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 28.08kWh, PV 0.0kWh
2026-08-16 19:05:02.937040: Battery has 13.17 hours left - now at 10.41kWh
2026-08-16 19:05:02.984573: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 706.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.98kWh, PV 0.0kWh
2026-08-16 19:05:03.070132: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.98kWh, PV 0.0kWh
2026-08-16 19:05:03.156229: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 436.6p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 28.08kWh, PV 0.0kWh
2026-08-16 19:05:03.156328: Saving plan best values to HA entities
2026-08-16 19:05:03.365984: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:05:03.377782: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:05:03.384237: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 12.03kWh, house 0.0kWh, export 0.0kWh, metric 436.6p, metric10 451.56p
2026-08-16 19:05:03.470839: Marginal costs baseline metric (no standing charge): 389.9653
2026-08-16 19:05:03.769345: Marginal energy costs matrix computed: min=8.0 max=32.45
2026-08-16 19:05:03.852892: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1145, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:05:03.853612: - Your estimated bill for today is £3.17 and tomorrow is £1.35
2026-08-16 19:05:03.853670: - 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-16 19:05:03.853694: - The battery is currently at 65% and is in eco mode for the next 4 and a half hours.
2026-08-16 19:05:03.853713: - For the next 48 hours there will be no solar generation.
2026-08-16 19:05:03.853736: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:05:03.853771: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-16 19:05:03.853789: 
2026-08-16 19:05:03.910602: Plan calculation took 1.29 seconds
2026-08-16 19:05:03.915764: No high rate period found
2026-08-16 19:05:03.991548: Import threshold used for optimisation was 8.0p
2026-08-16 19:05:04.073387: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:05:04.085004: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:05:04.085265: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:05:04.085459: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:05:04.085902: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:05:04.086051: No export window planned
2026-08-16 19:05:04.086193: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:05:04.086248: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:05:04.086510: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:05:04.086896: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:05:04.087053: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:05:04.087180: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:05:04.087333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087556: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:04.087915: Inverter 0 count register writes 0
2026-08-16 19:05:04.113129: 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-16 19:05:04.113352: Recompute is saving previous plan...
2026-08-16 19:05:04.114415: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:05:04.114472: Best export window [  ]
2026-08-16 19:05:04.115491: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:05:04.119212: Load divergence over 8.0 hours mean 618.77W, min 337.8W, max 1131.0W, std dev 226.79W, divergence 18.33%
2026-08-16 19:05:04.139153: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:05:04.139310: LoadML is_calculating False
2026-08-16 19:05:04.139389: Creating pool of 12 processes to match your CPU count
2026-08-16 19:05:04.242942: 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(0.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-16 19:05:04.246248: Optimise levels pass started at 2026-08-16 19:05:04
2026-08-16 19:05:04.246337: Optimise all windows, total charge 25 export 1
2026-08-16 19:05:04.714625: >> Region optimisation pass width 960 gives best_metric 490.9p, best_cost 514.56p, best_cycle 42.94kWh, best_import 27.6kWh
2026-08-16 19:05:04.889406: >> Region optimisation pass width 480 gives best_metric 490.9p, best_cost 514.56p, best_cycle 42.94kWh, best_import 27.6kWh
2026-08-16 19:05:05.220188: >> Region optimisation pass width 240 gives best_metric 490.9p, best_cost 514.56p, best_cycle 42.94kWh, best_import 27.6kWh
2026-08-16 19:05:05.937485: >> Region optimisation pass width 120 gives best_metric 490.9p, best_cost 514.56p, best_cycle 42.94kWh, best_import 27.6kWh
2026-08-16 19:05:05.937850: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:05:05.938000: Optimise levels pass ended at 2026-08-16 19:05:05, duration 1.7 seconds tried 59 combinations
2026-08-16 19:05:05.938186: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 490.9p, best_keep 0kWh, best_cycle 42.94kWh, best_carbon 0kg, best_import 27.6kWh
2026-08-16 19:05:05.962652: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 19:05:09.139114: Tweak plan optimisation started metric 373.93p, cost 384.67p
2026-08-16 19:05:09.486597: Tweak optimisation finished metric 373.93p, cost 384.67p, metric_keep 0kWh, cycle 20.98kWh, carbon 0kg, import 11.36kWh, changed 8 window(s)
2026-08-16 19:05:09.503310: Swap charge optimisation started metric 373.93p, cost 384.67p, min_improvement_swap 0.1p
2026-08-16 19:05:10.312975: Swap charge optimisation finished metric 373.93p, cost 384.67p
2026-08-16 19:05:10.461762: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 372.9p -> 372.63p, plan now metric 375.39p, cost 381.18p, cycle 21.44kWh, import 10.93kWh
2026-08-16 19:05:10.472408: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 19:05:10.472882: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:05:10.473180: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:05:10.473406: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:05:10.510134: Previous plan best metric is 373.93 (cost 384.7) and new plan best metric is 373.93 (cost 384.67)
2026-08-16 19:05:10.510378: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 19:05:10.510619: Plan valid is now true after recompute was False
2026-08-16 19:05:10.535393: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 675.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 27.87kWh, PV 0.0kWh
2026-08-16 19:05:10.656587: Battery has 13.17 hours left - now at 10.41kWh
2026-08-16 19:05:10.705335: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 704.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:15:00, load 28.75kWh, PV 0.0kWh
2026-08-16 19:05:10.781769: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.75kWh, PV 0.0kWh
2026-08-16 19:05:10.853333: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 428.2p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.87kWh, PV 0.0kWh
2026-08-16 19:05:10.853424: Saving plan best values to HA entities
2026-08-16 19:05:11.031788: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:05:11.036647: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:05:11.041587: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.98kWh, house 0.0kWh, export 0.0kWh, metric 428.2p, metric10 444.19p
2026-08-16 19:05:11.111840: Marginal costs baseline metric (no standing charge): 381.5642
2026-08-16 19:05:11.346199: Marginal energy costs matrix computed: min=8.0 max=32.45
2026-08-16 19:05:11.409879: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1145, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:05:11.410423: - Your estimated bill for today is £3.17 and tomorrow is £1.35
2026-08-16 19:05:11.410469: - 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-16 19:05:11.410488: - The battery is currently at 65% and is in eco mode for the next 4 and a half hours.
2026-08-16 19:05:11.410503: - For the next 48 hours there will be no solar generation.
2026-08-16 19:05:11.410517: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:05:11.410531: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-16 19:05:11.410545: 
2026-08-16 19:05:11.465064: Plan calculation took 7.35 seconds
2026-08-16 19:05:11.465450: Inverter 0: Type SK Sunsynk
2026-08-16 19:05:11.465498: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:05:11.465761: Reserve min: 7%, battery_min: 7%
2026-08-16 19:05:11.465846: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:05:11.466169: Inverter 0 SoC: 10.41kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 301W, current battery voltage 51.2V, grid power -56W, load power 359W, PV Power 0W
2026-08-16 19:05:11.466410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:05:11.466517: Inverter 0 scheduled charge enable is False
2026-08-16 19:05:11.466555: Inverter 0 charge windows currently []
2026-08-16 19:05:11.466585: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:05:11.466697: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:05:11.466737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:05:11.466793: Inverter 0 scheduled discharge enable is False
2026-08-16 19:05:11.466931: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:05:11.466970: Inverter 0 discharge windows currently []
2026-08-16 19:05:11.466992: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:05:11.467010: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:05:11.467027: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:05:11.532155: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:05:11.532374: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:05:11.532484: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:05:11.532765: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:05:11.532864: No export window planned
2026-08-16 19:05:11.533097: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:05:11.533167: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:05:11.533351: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:05:11.533565: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:05:11.533627: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:05:11.533726: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:05:11.533880: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.533931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.533971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534196: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:05:11.534660: Inverter 0 count register writes 0
2026-08-16 19:05:11.562078: Total inverter register writes now 844
2026-08-16 19:05:11.604125: Info: Completed run status Demand
2026-08-16 19:05:11.611434: Info: record_status Demand
2026-08-16 19:05:11.618661: Saved current settings to /config/predbat_config.json
2026-08-16 19:05:11.618976: Compare, best tariff: current metric 318.25p
2026-08-16 19:05:48.736778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:05:48.737223: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:05:48.737300: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:05:48.737558: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:05:48.737614: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:05:48.737656: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:05:48.737690: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:07:48.966952: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:07:48.967200: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:07:48.967240: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:07:48.967371: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:07:48.967410: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:07:48.967432: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:07:48.967450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:09:49.207004: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:09:49.207295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:09:49.207340: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:09:49.207480: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:09:49.207519: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:09:49.207541: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:09:49.207558: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:10:00.309005: --------------- PredBat - update at 2026-08-16 19:10:00+01:00 with clock skew 0 minutes, minutes now 1150
2026-08-16 19:10:00.309903: Saved current settings to /config/predbat_config.json
2026-08-16 19:10:00.310096: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 19:10:00.310189: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:10:00.310645: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:10:00.329354: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:10:00.329500: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:10:00.329776: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:10:00.330236: 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-16 19:10:00.330336: Predbat mode is set to Control charge & discharge
2026-08-16 19:10:00.524505: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:10:00.524695: Using load_power data to fill gaps in load_today data
2026-08-16 19:10:01.400744: Processing 721 30-minute periods for power integration
2026-08-16 19:10:01.592470: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:10:01.592631: Car charging hold False, threshold 6.0kWh
2026-08-16 19:10:01.592703: Current data so far today: load 9.35kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:10:01.611847: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:10:01.611973: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:10:01.612838: Standing charge is set to 46.63p
2026-08-16 19:10:01.706545: 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-16 19:10:01.706839: 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-16 19:10:01.707048: 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-16 19:10:01.707273: 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-16 19:10:01.707461: 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-16 19:10:01.707653: 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-16 19:10:01.707833: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.707929: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708017: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708103: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708187: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708274: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708355: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708426: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708604: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:10:01.708665: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:10:01.714468: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:10:01.714850: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:10:01.771290: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:10:01.771426: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:10:01.772796: High export rate found rates in range 99p to -99p
2026-08-16 19:10:01.813850: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:10:01.814051: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:10:01.814150: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:10:01.832201: Battery level now 10.41kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -3.24p, change today -12.37p, rate_forward 6.87p
2026-08-16 19:10:01.832649: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.24p, import 0.24p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 19:10:01.909667: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:10:01.909830: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:10:02.004134: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:10:02.035249: Today's load divergence 83.18%, in-day adjustment 83.81%, damping 0.95x, yesterday 82.97% today 84.02% blend 20.14%
2026-08-16 19:10:02.035378: Today's predicted so far 11.58kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 11.58kWh forecast extra.
2026-08-16 19:10:02.035412: Today's actual load so far 9.37kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 19:10:02.072361: Inverter 0: Type SK Sunsynk
2026-08-16 19:10:02.072459: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:10:02.072661: Reserve min: 7%, battery_min: 7%
2026-08-16 19:10:02.072732: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:10:02.073104: Inverter 0 SoC: 10.41kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 317W, current battery voltage 51.2V, grid power -53W, load power 372W, PV Power 0W
2026-08-16 19:10:02.073293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:10:02.073385: Inverter 0 scheduled charge enable is False
2026-08-16 19:10:02.073414: Inverter 0 charge windows currently []
2026-08-16 19:10:02.073441: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:10:02.073555: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:10:02.073607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:10:02.073645: Inverter 0 scheduled discharge enable is False
2026-08-16 19:10:02.073780: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:10:02.073819: Inverter 0 discharge windows currently []
2026-08-16 19:10:02.073842: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:10:02.073860: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:10:02.073877: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:10:02.138038: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:10:02.138161: Plan was last updated on 2026-08-16 19:05:00+01:00 and is now 5.0 minutes old
2026-08-16 19:10:02.138420: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:10:02.138462: Best export window [  ]
2026-08-16 19:10:02.139210: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:10:02.141792: Load divergence over 8.0 hours mean 618.86W, min 361.8W, max 1105.2W, std dev 224.33W, divergence 18.12%
2026-08-16 19:10:02.156844: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:10:02.156931: LoadML is_calculating False
2026-08-16 19:10:02.157046: Creating pool of 12 processes to match your CPU count
2026-08-16 19:10:02.266781: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 674.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 27.98kWh, PV 0.0kWh
2026-08-16 19:10:02.392103: Battery has 13.25 hours left - now at 10.41kWh
2026-08-16 19:10:02.440529: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 704.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:25:00, load 28.87kWh, PV 0.0kWh
2026-08-16 19:10:02.517370: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 447.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.87kWh, PV 0.0kWh
2026-08-16 19:10:02.592181: predict best end_record 08-17 23:35:00, final soc 1.66kWh, metric 431.96p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.98kWh, PV 0.0kWh
2026-08-16 19:10:02.592458: Saving plan best values to HA entities
2026-08-16 19:10:02.756812: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:10:02.762355: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:10:02.767802: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.45kWh, house 0.0kWh, export 0.0kWh, metric 431.96p, metric10 447.73p
2026-08-16 19:10:02.839544: Marginal costs baseline metric (no standing charge): 385.3276
2026-08-16 19:10:03.086428: Marginal energy costs matrix computed: min=8.0 max=32.52
2026-08-16 19:10:03.156344: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1150, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:10:03.157002: - Your estimated bill for today is £3.17 and tomorrow is £1.35
2026-08-16 19:10:03.157063: - 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-16 19:10:03.157084: - The battery is currently at 65% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 19:10:03.157099: - For the next 48 hours there will be no solar generation.
2026-08-16 19:10:03.157113: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:10:03.157127: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 19:10:03.157141: 
2026-08-16 19:10:03.214506: Plan calculation took 1.08 seconds
2026-08-16 19:10:03.217597: No high rate period found
2026-08-16 19:10:03.263629: Import threshold used for optimisation was 8.0p
2026-08-16 19:10:03.319226: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:10:03.325694: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:10:03.325813: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:10:03.325919: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:10:03.326153: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:10:03.326231: No export window planned
2026-08-16 19:10:03.326329: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:10:03.326372: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:10:03.326487: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:10:03.326678: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:10:03.326737: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:10:03.326794: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:10:03.326878: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.326912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.326934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.326956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.326985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:10:03.327247: Inverter 0 count register writes 0
2026-08-16 19:10:03.343057: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:10:03.348508: Total inverter register writes now 844
2026-08-16 19:10:03.389618: Info: Completed run status Demand
2026-08-16 19:10:03.396808: Info: record_status Demand
2026-08-16 19:10:03.408407: Saved current settings to /config/predbat_config.json
2026-08-16 19:10:03.408726: Compare, best tariff: current metric 318.25p
2026-08-16 19:10:33.514282: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:10:33.514538: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:10:33.514602: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:10:33.514793: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:10:33.514838: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:10:33.514861: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:10:33.514879: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:12:33.741742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:12:33.741995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:12:33.742079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:12:33.742242: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:12:33.742304: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:12:33.742325: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:12:33.742342: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:14:20.649387: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 19:14:20.801435: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 19:14:33.969672: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:14:33.969927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:14:33.969997: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:14:33.970182: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:14:33.970220: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:14:33.970242: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:14:33.970260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:14:42.621075: Info: HAHistory: Pruning history data started.
2026-08-16 19:14:42.623876: Info: HAHistory: Pruning history data completed.
2026-08-16 19:15:00.088301: --------------- PredBat - update at 2026-08-16 19:15:00+01:00 with clock skew 0 minutes, minutes now 1155
2026-08-16 19:15:00.089347: Saved current settings to /config/predbat_config.json
2026-08-16 19:15:00.089534: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 19:15:00.089668: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:15:00.089812: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:15:00.109043: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:15:00.109173: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:15:00.109340: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:15:00.109908: 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-16 19:15:00.110036: Predbat mode is set to Control charge & discharge
2026-08-16 19:15:00.288994: Found 21602 load_today datapoints going back 27 days
2026-08-16 19:15:00.289158: Using load_power data to fill gaps in load_today data
2026-08-16 19:15:01.066094: Processing 721 30-minute periods for power integration
2026-08-16 19:15:01.244488: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:15:01.244622: Car charging hold False, threshold 6.0kWh
2026-08-16 19:15:01.244663: Current data so far today: load 9.4kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:15:01.260810: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:15:01.261176: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:15:01.261854: Standing charge is set to 46.63p
2026-08-16 19:15:01.334418: 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-16 19:15:01.334679: 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-16 19:15:01.334831: 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-16 19:15:01.335017: 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-16 19:15:01.335177: 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-16 19:15:01.335328: 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-16 19:15:01.335496: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335577: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335641: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335735: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335795: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335857: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335925: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.335986: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.336118: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:15:01.336169: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:15:01.340697: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:15:01.341097: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:15:01.376025: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:15:01.376138: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:15:01.377280: High export rate found rates in range 99p to -99p
2026-08-16 19:15:01.404700: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:15:01.404816: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:15:01.404867: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:15:01.419036: Battery level now 10.41kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -3.24p, change today -12.37p, rate_forward 6.87p
2026-08-16 19:15:01.419408: 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-16 19:15:01.489508: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:15:01.489669: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:15:01.571867: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:15:01.596559: Today's load divergence 83.01%, in-day adjustment 83.68%, damping 0.95x, yesterday 82.97% today 83.85% blend 19.79%
2026-08-16 19:15:01.596641: Today's predicted so far 11.57kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 11.57kWh forecast extra.
2026-08-16 19:15:01.596668: Today's actual load so far 9.34kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 19:15:01.629656: Inverter 0: Type SK Sunsynk
2026-08-16 19:15:01.629754: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:15:01.629999: Reserve min: 7%, battery_min: 7%
2026-08-16 19:15:01.630106: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:15:01.630404: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 306W, current battery voltage 51.2V, grid power -55W, load power 363W, PV Power 0W
2026-08-16 19:15:01.630578: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:15:01.630652: Inverter 0 scheduled charge enable is False
2026-08-16 19:15:01.630676: Inverter 0 charge windows currently []
2026-08-16 19:15:01.630697: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:15:01.630785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:15:01.630808: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:15:01.630836: Inverter 0 scheduled discharge enable is False
2026-08-16 19:15:01.630935: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:15:01.630966: Inverter 0 discharge windows currently []
2026-08-16 19:15:01.630985: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:15:01.631000: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:15:01.631017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:15:01.690200: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:15:01.690311: Plan was last updated on 2026-08-16 19:05:00+01:00 and is now 10.0 minutes old
2026-08-16 19:15:01.690585: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:15:01.690630: Best export window [  ]
2026-08-16 19:15:01.691365: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:15:01.694510: Load divergence over 8.0 hours mean 618.84W, min 379.8W, max 1153.2W, std dev 226.85W, divergence 18.33%
2026-08-16 19:15:01.711848: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:15:01.711994: LoadML is_calculating False
2026-08-16 19:15:01.712075: Creating pool of 12 processes to match your CPU count
2026-08-16 19:15:01.841287: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 674.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.12kWh, PV 0.0kWh
2026-08-16 19:15:01.988904: Battery has 13.25 hours left - now at 10.4kWh
2026-08-16 19:15:02.042645: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 704.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:30:00, load 29.01kWh, PV 0.0kWh
2026-08-16 19:15:02.147629: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 451.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 29.01kWh, PV 0.0kWh
2026-08-16 19:15:02.245096: predict best end_record 08-17 23:40:00, final soc 2.04kWh, metric 435.96p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 28.12kWh, PV 0.0kWh
2026-08-16 19:15:02.245187: Saving plan best values to HA entities
2026-08-16 19:15:02.431791: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:15:02.437819: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:15:02.443612: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.95kWh, house 0kWh, export 0.0kWh, metric 435.96p, metric10 451.48p
2026-08-16 19:15:02.550879: Marginal costs baseline metric (no standing charge): 389.3237
2026-08-16 19:15:02.876666: Marginal energy costs matrix computed: min=8.0 max=32.59
2026-08-16 19:15:02.949487: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1155, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:15:02.950253: - Your estimated bill for today is £3.18 and tomorrow is £1.35
2026-08-16 19:15:02.950309: - 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-16 19:15:02.950333: - The battery is currently at 65% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 19:15:02.950367: - For the next 48 hours there will be no solar generation.
2026-08-16 19:15:02.950402: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:15:02.950463: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 19:15:02.950504: 
2026-08-16 19:15:03.004754: Plan calculation took 1.31 seconds
2026-08-16 19:15:03.008507: No high rate period found
2026-08-16 19:15:03.063231: Import threshold used for optimisation was 8.0p
2026-08-16 19:15:03.118482: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:15:03.125171: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:15:03.125339: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:15:03.125482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:15:03.125818: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:15:03.125950: No export window planned
2026-08-16 19:15:03.126097: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:15:03.126161: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:15:03.126328: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:15:03.126637: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:15:03.126727: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:15:03.126812: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:15:03.126911: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.126945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.126972: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.126999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:03.127322: Inverter 0 count register writes 0
2026-08-16 19:15:03.145967: 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-16 19:15:03.146166: Recompute is saving previous plan...
2026-08-16 19:15:03.147138: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:15:03.147212: Best export window [  ]
2026-08-16 19:15:03.148076: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:15:03.151236: Load divergence over 8.0 hours mean 618.84W, min 379.8W, max 1153.2W, std dev 226.85W, divergence 18.33%
2026-08-16 19:15:03.168272: Calculating data from yesterday for savings calculation
2026-08-16 19:15:03.182551: 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-16 19:15:03.231484: predict yesterday end_record 08-17 00:00:00, final soc 10.51kWh, metric 236.54p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 19:15:03.248179: predict yesterday10 end_record 08-17 00:00:00, final soc 10.12kWh, metric 233.2p, metric_keep 0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 19:15:03.271454: predict yesterday end_record 08-17 00:00:00, final soc 10.51kWh, metric 236.54p, metric_keep 0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 19:15:03.304853: Yesterday: Predbat disabled was £2.37 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.28) with import 23.74kWh, export 0.0kWh, battery_cycle 25.33kWh, start_soc 1.12kWh,  final_soc 10.51kWh and battery_value 72.21kWh
2026-08-16 19:15:03.405061: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 334.52p, metric_keep 0kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.54kWh, PV 0.0kWh
2026-08-16 19:15:03.405226: Yesterday: No Battery/PV system cost predicted was £3.35 (adjusted £3.35) vs £5.77 (adjusted £4.93), saving £-2.42 (adjusted £-1.58) with import 12.54kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 19:15:03.416507: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:15:03.416638: LoadML is_calculating False
2026-08-16 19:15:03.416718: Creating pool of 12 processes to match your CPU count
2026-08-16 19:15:03.508173: 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(0.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-16 19:15:03.509287: Optimise levels pass started at 2026-08-16 19:15:03
2026-08-16 19:15:03.509351: Optimise all windows, total charge 25 export 1
2026-08-16 19:15:03.937765: >> Region optimisation pass width 960 gives best_metric 490.79p, best_cost 497.99p, best_cycle 39.33kWh, best_import 25.53kWh
2026-08-16 19:15:04.091049: >> Region optimisation pass width 480 gives best_metric 490.79p, best_cost 497.99p, best_cycle 39.33kWh, best_import 25.53kWh
2026-08-16 19:15:04.312363: >> Region optimisation pass width 240 gives best_metric 490.79p, best_cost 497.99p, best_cycle 39.33kWh, best_import 25.53kWh
2026-08-16 19:15:04.915043: >> Region optimisation pass width 120 gives best_metric 490.79p, best_cost 497.99p, best_cycle 39.33kWh, best_import 25.53kWh
2026-08-16 19:15:04.915356: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:15:04.915486: Optimise levels pass ended at 2026-08-16 19:15:04, duration 1.4 seconds tried 61 combinations
2026-08-16 19:15:04.915590: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 490.79p, best_keep 0kWh, best_cycle 39.33kWh, best_carbon 0kg, best_import 25.53kWh
2026-08-16 19:15:04.940779: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 19:15:07.726154: Tweak plan optimisation started metric 373.37p, cost 383.94p
2026-08-16 19:15:08.095690: Tweak optimisation finished metric 373.37p, cost 383.94p, metric_keep 0kWh, cycle 20.89kWh, carbon 0kg, import 11.27kWh, changed 8 window(s)
2026-08-16 19:15:08.118387: Swap charge optimisation started metric 373.37p, cost 383.94p, min_improvement_swap 0.1p
2026-08-16 19:15:09.152937: Swap charge optimisation finished metric 373.37p, cost 383.94p
2026-08-16 19:15:09.313714: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 372.33p -> 372.06p, plan now metric 374.89p, cost 380.48p, cycle 21.34kWh, import 10.84kWh
2026-08-16 19:15:09.324487: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 75%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 75%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 75%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 75%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 19:15:09.324861: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:15:09.325128: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:15:09.325308: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:15:09.365861: Previous plan best metric is 373.37 (cost 383.94) and new plan best metric is 373.37 (cost 383.94)
2026-08-16 19:15:09.366124: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 19:15:09.366334: Plan valid is now true after recompute was False
2026-08-16 19:15:09.397513: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 673.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 27.9kWh, PV 0.0kWh
2026-08-16 19:15:09.532268: Battery has 13.25 hours left - now at 10.4kWh
2026-08-16 19:15:09.583691: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 702.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:30:00, load 28.78kWh, PV 0.0kWh
2026-08-16 19:15:09.669271: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 444.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.78kWh, PV 0.0kWh
2026-08-16 19:15:09.746665: predict best end_record 08-17 23:30:00, final soc 1.27kWh, metric 427.5p, metric_keep 0kWh, min_soc 1.27kWh @ 08-17 23:25:00, load 27.9kWh, PV 0.0kWh
2026-08-16 19:15:09.746776: Saving plan best values to HA entities
2026-08-16 19:15:09.894547: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:15:09.901786: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:15:09.908314: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.89kWh, house 0kWh, export 0.0kWh, metric 427.5p, metric10 444.05p
2026-08-16 19:15:09.993247: Marginal costs baseline metric (no standing charge): 380.8643
2026-08-16 19:15:10.239401: Marginal energy costs matrix computed: min=8.0 max=32.59
2026-08-16 19:15:10.305838: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1155, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:15:10.306449: - Your estimated bill for today is £3.18 and tomorrow is £1.35
2026-08-16 19:15:10.306498: - 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-16 19:15:10.306516: - The battery is currently at 65% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 19:15:10.306532: - For the next 48 hours there will be no solar generation.
2026-08-16 19:15:10.306546: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:15:10.306561: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 19:15:10.306575: 
2026-08-16 19:15:10.364087: Plan calculation took 7.22 seconds
2026-08-16 19:15:10.364398: Inverter 0: Type SK Sunsynk
2026-08-16 19:15:10.364458: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:15:10.364686: Reserve min: 7%, battery_min: 7%
2026-08-16 19:15:10.364754: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:15:10.365190: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 306W, current battery voltage 51.2V, grid power -55W, load power 363W, PV Power 0W
2026-08-16 19:15:10.365556: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:15:10.365667: Inverter 0 scheduled charge enable is False
2026-08-16 19:15:10.365697: Inverter 0 charge windows currently []
2026-08-16 19:15:10.365723: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:15:10.365829: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:15:10.365863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:15:10.365895: Inverter 0 scheduled discharge enable is False
2026-08-16 19:15:10.366010: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:15:10.366042: Inverter 0 discharge windows currently []
2026-08-16 19:15:10.366061: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:15:10.366076: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:15:10.366097: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:15:10.468637: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:15:10.468863: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:15:10.469393: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:15:10.469732: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:15:10.469821: No export window planned
2026-08-16 19:15:10.470001: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:15:10.470045: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:15:10.470381: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:15:10.470713: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:15:10.470840: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:15:10.470923: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:15:10.471071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471123: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:15:10.471737: Inverter 0 count register writes 0
2026-08-16 19:15:10.573405: Total inverter register writes now 844
2026-08-16 19:15:10.604691: Info: Completed run status Demand
2026-08-16 19:15:10.623205: Info: record_status Demand
2026-08-16 19:15:10.631506: Saved current settings to /config/predbat_config.json
2026-08-16 19:15:10.631796: Compare, best tariff: current metric 318.25p
2026-08-16 19:15:48.753578: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:15:48.753830: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:15:48.753877: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:15:48.754010: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:15:48.754050: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:15:48.754094: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:15:48.754113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:17:48.990640: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:17:48.990875: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:17:48.990906: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:17:48.991137: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:17:48.991187: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:17:48.991220: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:17:48.991241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:19:49.211959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:19:49.212272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:19:49.212313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:19:49.212525: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:19:49.212569: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:19:49.212592: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:19:49.212622: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:20:00.326095: --------------- PredBat - update at 2026-08-16 19:20:00+01:00 with clock skew 0 minutes, minutes now 1160
2026-08-16 19:20:00.326813: Saved current settings to /config/predbat_config.json
2026-08-16 19:20:00.326928: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 19:20:00.327018: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:20:00.327116: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:20:00.348611: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:20:00.348772: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:20:00.348979: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:20:00.349559: 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-16 19:20:00.349684: Predbat mode is set to Control charge & discharge
2026-08-16 19:20:00.558853: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:20:00.559028: Using load_power data to fill gaps in load_today data
2026-08-16 19:20:01.341382: Processing 721 30-minute periods for power integration
2026-08-16 19:20:01.536507: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:20:01.537079: Car charging hold False, threshold 6.0kWh
2026-08-16 19:20:01.537164: Current data so far today: load 9.3kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:20:01.556122: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:20:01.556242: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:20:01.557089: Standing charge is set to 46.63p
2026-08-16 19:20:01.647484: 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-16 19:20:01.648322: 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-16 19:20:01.648558: 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-16 19:20:01.648738: 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-16 19:20:01.648919: 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-16 19:20:01.649138: 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-16 19:20:01.649320: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649437: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649527: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649603: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649680: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649762: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649860: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.649925: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.650088: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:20:01.650146: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:20:01.656035: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:20:01.656513: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:20:01.701217: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:20:01.701365: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:20:01.702716: High export rate found rates in range 99p to -99p
2026-08-16 19:20:01.738249: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:20:01.738445: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:20:01.738521: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:20:01.755916: Battery level now 10.4kWh, -1hr ago 10.88kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:20:01.756423: 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-16 19:20:01.833989: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:20:01.834162: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:20:01.935926: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:20:01.968252: Today's load divergence 82.03%, in-day adjustment 82.94%, damping 0.95x, yesterday 82.97% today 82.93% blend 19.44%
2026-08-16 19:20:01.968372: Today's predicted so far 11.6kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 11.6kWh forecast extra.
2026-08-16 19:20:01.968414: Today's actual load so far 9.26kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 19:20:02.004152: Inverter 0: Type SK Sunsynk
2026-08-16 19:20:02.004240: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:20:02.004500: Reserve min: 7%, battery_min: 7%
2026-08-16 19:20:02.004602: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:20:02.004926: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -54W, load power 316W, PV Power 0W
2026-08-16 19:20:02.005173: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:20:02.005311: Inverter 0 scheduled charge enable is False
2026-08-16 19:20:02.005382: Inverter 0 charge windows currently []
2026-08-16 19:20:02.005431: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:20:02.005597: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:20:02.005647: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:20:02.005720: Inverter 0 scheduled discharge enable is False
2026-08-16 19:20:02.005902: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:20:02.005949: Inverter 0 discharge windows currently []
2026-08-16 19:20:02.005997: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:20:02.006034: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:20:02.006053: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:20:02.070716: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:20:02.070881: Plan was last updated on 2026-08-16 19:15:00+01:00 and is now 5.0 minutes old
2026-08-16 19:20:02.071184: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:20:02.071232: Best export window [  ]
2026-08-16 19:20:02.072118: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:20:02.075259: Load divergence over 8.0 hours mean 618.74W, min 363.6W, max 1047.6W, std dev 220.67W, divergence 17.83%
2026-08-16 19:20:02.094175: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:20:02.094275: LoadML is_calculating False
2026-08-16 19:20:02.094365: Creating pool of 12 processes to match your CPU count
2026-08-16 19:20:02.221800: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 670.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 27.8kWh, PV 0.0kWh
2026-08-16 19:20:02.360904: Battery has 13.33 hours left - now at 10.4kWh
2026-08-16 19:20:02.408977: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 700.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.68kWh, PV 0.0kWh
2026-08-16 19:20:02.494501: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 446.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.68kWh, PV 0.0kWh
2026-08-16 19:20:02.581902: predict best end_record 08-17 23:35:00, final soc 1.68kWh, metric 431.05p, metric_keep 0kWh, min_soc 1.29kWh @ 08-17 23:25:00, load 27.8kWh, PV 0.0kWh
2026-08-16 19:20:02.582000: Saving plan best values to HA entities
2026-08-16 19:20:02.751014: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 19:20:02.756723: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:20:02.762258: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.33kWh, house 0.0kWh, export 0.0kWh, metric 431.05p, metric10 446.31p
2026-08-16 19:20:02.841428: Marginal costs baseline metric (no standing charge): 384.4132
2026-08-16 19:20:03.148139: Marginal energy costs matrix computed: min=8.0 max=32.44
2026-08-16 19:20:03.230335: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1160, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:20:03.231048: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 19:20:03.231100: - 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-16 19:20:03.231127: - The battery is currently at 65% and is in eco mode for the next 4 and a quarter hours.
2026-08-16 19:20:03.231146: - For the next 48 hours there will be no solar generation.
2026-08-16 19:20:03.231163: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:20:03.231180: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 19:20:03.231199: 
2026-08-16 19:20:03.314469: Plan calculation took 1.24 seconds
2026-08-16 19:20:03.318431: No high rate period found
2026-08-16 19:20:03.375605: Import threshold used for optimisation was 8.0p
2026-08-16 19:20:03.444411: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:20:03.451975: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:20:03.452131: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:20:03.452259: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:20:03.452551: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:20:03.452666: No export window planned
2026-08-16 19:20:03.452798: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:20:03.452835: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:20:03.453152: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:20:03.453665: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:20:03.453778: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:20:03.453899: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:20:03.454065: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454203: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454360: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:20:03.454891: Inverter 0 count register writes 0
2026-08-16 19:20:03.475856: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:20:03.482590: Total inverter register writes now 844
2026-08-16 19:20:03.529661: Info: Completed run status Demand
2026-08-16 19:20:03.538907: Info: record_status Demand
2026-08-16 19:20:03.553182: Saved current settings to /config/predbat_config.json
2026-08-16 19:20:03.553666: Compare, best tariff: current metric 318.25p
2026-08-16 19:20:12.769302: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 19:20:13.850909: Processing 1345 30-minute periods for power integration
2026-08-16 19:20:13.952554: ML Component: Car charging hold False, car energy reported load False
2026-08-16 19:20:14.054125: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:20:14.155307: ML Temperature data points: 49241
2026-08-16 19:20:14.450459: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 19:20:14.491499: ML Component: Data fetch completed, load data age 58.0 days, 16768 data points
2026-08-16 19:20:14.491631: ML Component: No training needed, model age is 1.24 hours
2026-08-16 19:20:14.491750: ML Component: Generating predictions load data age 58.0 days, 16768 data points
2026-08-16 19:20:14.638312: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0246 max_dow {0: 0.09092812499813735, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-16 19:20:21.359542: ML Component: Generated 576 predictions (total 26.36 kWh over 48h)
2026-08-16 19:20:21.404795: ML Component: Prediction cycle completed
2026-08-16 19:20:21.529591: ML Component: Saved 16768 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 19:20:33.667938: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:20:33.668281: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:20:33.668416: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:20:33.668688: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:20:33.668752: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:20:33.668796: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:20:33.668837: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:22:34.315787: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:22:34.316073: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:22:34.316117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:22:34.316283: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:22:34.316337: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:22:34.316366: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:22:34.316389: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:24:48.601154: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:24:48.601434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:24:48.601477: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:24:48.601611: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:24:48.601651: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:24:48.601672: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:24:48.601690: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:25:00.702478: --------------- PredBat - update at 2026-08-16 19:25:00+01:00 with clock skew 0 minutes, minutes now 1165
2026-08-16 19:25:00.703318: Saved current settings to /config/predbat_config.json
2026-08-16 19:25:00.703464: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 19:25:00.703571: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:25:00.703659: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:25:00.724754: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:25:00.724877: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:25:00.725110: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:25:00.725664: 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-16 19:25:00.725813: Predbat mode is set to Control charge & discharge
2026-08-16 19:25:00.933787: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:25:00.934201: Using load_power data to fill gaps in load_today data
2026-08-16 19:25:01.791353: Processing 721 30-minute periods for power integration
2026-08-16 19:25:01.980763: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:25:01.982202: Car charging hold False, threshold 6.0kWh
2026-08-16 19:25:01.982402: Current data so far today: load 9.3kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:25:02.001242: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:25:02.002317: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:25:02.005267: Standing charge is set to 46.63p
2026-08-16 19:25:02.097214: 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-16 19:25:02.097547: 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-16 19:25:02.098599: 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-16 19:25:02.098820: 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-16 19:25:02.099075: 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-16 19:25:02.099381: 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-16 19:25:02.099635: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.099780: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.100037: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.101003: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.102694: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.102833: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.102932: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.103011: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.103368: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:25:02.103434: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:25:02.109258: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:25:02.110485: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:25:02.152139: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:25:02.152300: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:25:02.153714: High export rate found rates in range 99p to -99p
2026-08-16 19:25:02.183931: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:25:02.184060: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:25:02.184110: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:25:02.197678: Battery level now 10.4kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:25:02.198081: 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-16 19:25:02.258476: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:25:02.258647: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:25:02.371510: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:25:02.408182: Today's load divergence 81.91%, in-day adjustment 82.84%, damping 0.95x, yesterday 82.97% today 82.81% blend 19.1%
2026-08-16 19:25:02.409620: Today's predicted so far 11.62kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 11.62kWh forecast extra.
2026-08-16 19:25:02.409726: Today's actual load so far 9.27kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 19:25:02.454041: Inverter 0: Type SK Sunsynk
2026-08-16 19:25:02.454945: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:25:02.457611: Reserve min: 7%, battery_min: 7%
2026-08-16 19:25:02.457699: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:25:02.457955: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -54W, load power 317W, PV Power 0W
2026-08-16 19:25:02.458136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:25:02.458274: Inverter 0 scheduled charge enable is False
2026-08-16 19:25:02.458329: Inverter 0 charge windows currently []
2026-08-16 19:25:02.458363: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:25:02.458513: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:25:02.458674: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:25:02.458721: Inverter 0 scheduled discharge enable is False
2026-08-16 19:25:02.458834: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:25:02.458865: Inverter 0 discharge windows currently []
2026-08-16 19:25:02.458885: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:25:02.458903: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:25:02.458917: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:25:02.535995: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:25:02.536109: Plan was last updated on 2026-08-16 19:15:00+01:00 and is now 10.0 minutes old
2026-08-16 19:25:02.536406: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:25:02.536475: Best export window [  ]
2026-08-16 19:25:02.537344: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:25:02.540548: Load divergence over 8.0 hours mean 618.79W, min 339.0W, max 1060.8W, std dev 216.62W, divergence 17.5%
2026-08-16 19:25:02.556678: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:25:02.556773: LoadML is_calculating False
2026-08-16 19:25:02.556829: Creating pool of 12 processes to match your CPU count
2026-08-16 19:25:02.683684: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 669.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 27.87kWh, PV 0.0kWh
2026-08-16 19:25:02.813756: Battery has 13.42 hours left - now at 10.4kWh
2026-08-16 19:25:02.871757: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 699.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.75kWh, PV 0.0kWh
2026-08-16 19:25:02.960783: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 449.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.75kWh, PV 0.0kWh
2026-08-16 19:25:03.048354: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 434.82p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.87kWh, PV 0.0kWh
2026-08-16 19:25:03.048462: Saving plan best values to HA entities
2026-08-16 19:25:03.222660: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:25:03.228430: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:25:03.234081: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.8kWh, house 0.0kWh, export 0.0kWh, metric 434.82p, metric10 449.67p
2026-08-16 19:25:03.326766: Marginal costs baseline metric (no standing charge): 388.1903
2026-08-16 19:25:03.666084: Marginal energy costs matrix computed: min=7.99 max=32.47
2026-08-16 19:25:03.767745: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1165, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:25:03.768494: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 19:25:03.768547: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:25:03.768571: - The battery is currently at 65% and is in eco mode for the next 4 hours.
2026-08-16 19:25:03.768589: - For the next 48 hours there will be no solar generation.
2026-08-16 19:25:03.768607: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:25:03.768624: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-16 19:25:03.768647: 
2026-08-16 19:25:03.829924: Plan calculation took 1.29 seconds
2026-08-16 19:25:03.834008: No high rate period found
2026-08-16 19:25:03.889088: Import threshold used for optimisation was 8.0p
2026-08-16 19:25:03.945950: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:25:03.952571: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:25:03.952708: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:25:03.952810: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:25:03.953164: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:25:03.953264: No export window planned
2026-08-16 19:25:03.953424: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:25:03.953464: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:25:03.953607: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:25:03.953785: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:25:03.953851: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:25:03.953930: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:25:03.954052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954187: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954214: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954238: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:03.954519: Inverter 0 count register writes 0
2026-08-16 19:25:03.972519: 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-16 19:25:03.972741: Recompute is saving previous plan...
2026-08-16 19:25:03.973862: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:25:03.973929: Best export window [  ]
2026-08-16 19:25:03.974801: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:25:03.978412: Load divergence over 8.0 hours mean 618.79W, min 339.0W, max 1060.8W, std dev 216.62W, divergence 17.5%
2026-08-16 19:25:03.996146: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:25:03.996264: LoadML is_calculating False
2026-08-16 19:25:03.996354: Creating pool of 12 processes to match your CPU count
2026-08-16 19:25:04.088061: 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(0.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-16 19:25:04.089244: Optimise levels pass started at 2026-08-16 19:25:04
2026-08-16 19:25:04.089326: Optimise all windows, total charge 25 export 1
2026-08-16 19:25:04.493024: >> Region optimisation pass width 960 gives best_metric 491.32p, best_cost 524.51p, best_cycle 41.25kWh, best_import 28.84kWh
2026-08-16 19:25:04.703598: >> Region optimisation pass width 480 gives best_metric 491.32p, best_cost 524.51p, best_cycle 41.25kWh, best_import 28.84kWh
2026-08-16 19:25:04.998721: >> Region optimisation pass width 240 gives best_metric 491.32p, best_cost 524.51p, best_cycle 41.25kWh, best_import 28.84kWh
2026-08-16 19:25:05.667557: >> Region optimisation pass width 120 gives best_metric 491.16p, best_cost 522.57p, best_cycle 41.5kWh, best_import 28.6kWh
2026-08-16 19:25:05.667804: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:25:05.667870: Optimise levels pass ended at 2026-08-16 19:25:05, duration 1.6 seconds tried 68 combinations
2026-08-16 19:25:05.667934: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 491.16p, best_keep 0kWh, best_cycle 41.5kWh, best_carbon 0kg, best_import 28.6kWh
2026-08-16 19:25:05.688507: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 19:25:08.717628: Tweak plan optimisation started metric 372.05p, cost 382.7p
2026-08-16 19:25:09.066593: Tweak optimisation finished metric 372.05p, cost 382.7p, metric_keep 0kWh, cycle 20.62kWh, carbon 0kg, import 11.12kWh, changed 8 window(s)
2026-08-16 19:25:09.087796: Swap charge optimisation started metric 372.05p, cost 382.7p, min_improvement_swap 0.1p
2026-08-16 19:25:09.924013: Swap charge optimisation finished metric 372.05p, cost 382.7p
2026-08-16 19:25:10.048896: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 371.03p -> 370.86p, plan now metric 373.42p, cost 379.67p, cycle 21.14kWh, import 10.74kWh
2026-08-16 19:25:10.058024: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 19:25:10.058390: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:25:10.058616: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:25:10.058782: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:25:10.091064: Previous plan best metric is 372.15 (cost 382.8) and new plan best metric is 372.05 (cost 382.7)
2026-08-16 19:25:10.091278: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 19:25:10.091489: Plan valid is now true after recompute was False
2026-08-16 19:25:10.117733: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 668.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 27.65kWh, PV 0.0kWh
2026-08-16 19:25:10.218245: Battery has 13.42 hours left - now at 10.4kWh
2026-08-16 19:25:10.256696: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 697.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.53kWh, PV 0.0kWh
2026-08-16 19:25:10.332725: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 442.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.53kWh, PV 0.0kWh
2026-08-16 19:25:10.455704: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 426.41p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.65kWh, PV 0.0kWh
2026-08-16 19:25:10.455834: Saving plan best values to HA entities
2026-08-16 19:25:10.722571: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:25:10.729107: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:25:10.735746: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.75kWh, house 0.0kWh, export 0.0kWh, metric 426.41p, metric10 442.29p
2026-08-16 19:25:10.818784: Marginal costs baseline metric (no standing charge): 379.7804
2026-08-16 19:25:11.083813: Marginal energy costs matrix computed: min=7.99 max=32.47
2026-08-16 19:25:11.155172: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1165, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:25:11.155858: - Your estimated bill for today is £3.18 and tomorrow is £1.34
2026-08-16 19:25:11.155907: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:25:11.155930: - The battery is currently at 65% and is in eco mode for the next 4 hours.
2026-08-16 19:25:11.155949: - For the next 48 hours there will be no solar generation.
2026-08-16 19:25:11.155967: - You will reach a minimum of 8% battery in 28 hours.
2026-08-16 19:25:11.155989: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-16 19:25:11.156006: 
2026-08-16 19:25:11.212230: Plan calculation took 7.24 seconds
2026-08-16 19:25:11.212583: Inverter 0: Type SK Sunsynk
2026-08-16 19:25:11.212631: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:25:11.212866: Reserve min: 7%, battery_min: 7%
2026-08-16 19:25:11.212985: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:25:11.213376: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 258W, current battery voltage 51.2V, grid power -55W, load power 315W, PV Power 0W
2026-08-16 19:25:11.213622: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:25:11.213730: Inverter 0 scheduled charge enable is False
2026-08-16 19:25:11.213766: Inverter 0 charge windows currently []
2026-08-16 19:25:11.213796: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:25:11.213916: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:25:11.213957: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:25:11.213994: Inverter 0 scheduled discharge enable is False
2026-08-16 19:25:11.214128: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:25:11.214166: Inverter 0 discharge windows currently []
2026-08-16 19:25:11.214189: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:25:11.214212: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:25:11.214230: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:25:11.276746: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:25:11.276902: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:25:11.277028: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:25:11.277305: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:25:11.277422: No export window planned
2026-08-16 19:25:11.277538: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:25:11.277575: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:25:11.277715: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:25:11.277882: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:25:11.277938: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:25:11.278006: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:25:11.278096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278138: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:25:11.278712: Inverter 0 count register writes 0
2026-08-16 19:25:11.305458: Total inverter register writes now 844
2026-08-16 19:25:11.365376: Info: Completed run status Demand
2026-08-16 19:25:11.373537: Info: record_status Demand
2026-08-16 19:25:11.381452: Saved current settings to /config/predbat_config.json
2026-08-16 19:25:11.381761: Compare, best tariff: current metric 318.25p
2026-08-16 19:25:48.497496: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:25:48.497772: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:25:48.497817: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:25:48.497974: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:25:48.498825: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:25:48.500147: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:25:48.500197: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:27:06.495160: MCP POST: Received request from 10.0.10.73
2026-08-16 19:27:06.495433: MCP: Could not even decode without verification: Not enough segments
2026-08-16 19:27:06.495481: MCP: Token verification failed: Not enough segments
2026-08-16 19:27:06.495535: MCP POST: Authenticated via legacy bearer token
2026-08-16 19:27:48.743778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:27:48.744061: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:27:48.744102: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:27:48.744243: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:27:48.744329: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:27:48.744352: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:27:48.744370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:29:48.972299: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:29:48.972589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:29:48.972642: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:29:48.972819: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:29:48.972863: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:29:48.972885: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:29:48.972913: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:30:00.072120: --------------- PredBat - update at 2026-08-16 19:30:00+01:00 with clock skew 0 minutes, minutes now 1170
2026-08-16 19:30:00.072903: Saved current settings to /config/predbat_config.json
2026-08-16 19:30:00.073091: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 19:30:00.073231: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:30:00.073370: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:30:00.099290: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:30:00.099450: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:30:00.099698: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:30:00.100420: 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-16 19:30:00.100589: Predbat mode is set to Control charge & discharge
2026-08-16 19:30:00.295435: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:30:00.295597: Using load_power data to fill gaps in load_today data
2026-08-16 19:30:01.262104: Processing 721 30-minute periods for power integration
2026-08-16 19:30:01.465043: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:30:01.465524: Car charging hold False, threshold 6.0kWh
2026-08-16 19:30:01.465586: Current data so far today: load 9.42kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:30:01.484328: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:30:01.484453: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:30:01.485277: Standing charge is set to 46.63p
2026-08-16 19:30:01.580995: 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-16 19:30:01.581290: 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-16 19:30:01.581599: 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-16 19:30:01.581793: 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-16 19:30:01.582068: 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-16 19:30:01.582415: 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-16 19:30:01.582629: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.582809: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.582921: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583006: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583089: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583176: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583273: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583349: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583527: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:30:01.583591: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:30:01.589297: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:30:01.589806: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:30:01.639124: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:30:01.639287: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:30:01.640884: High export rate found rates in range 99p to -99p
2026-08-16 19:30:01.677219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:30:01.677388: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:30:01.677448: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:30:01.693374: Battery level now 10.4kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:30:01.693924: 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-16 19:30:01.835146: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:30:01.835359: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:30:01.936144: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:30:01.973935: Today's load divergence 82.22%, in-day adjustment 83.08%, damping 0.95x, yesterday 82.97% today 83.11% blend 18.75%
2026-08-16 19:30:01.974046: Today's predicted so far 11.76kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.76kWh forecast extra.
2026-08-16 19:30:01.974079: Today's actual load so far 9.45kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 19:30:02.014661: Inverter 0: Type SK Sunsynk
2026-08-16 19:30:02.014754: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:30:02.014957: Reserve min: 7%, battery_min: 7%
2026-08-16 19:30:02.015031: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:30:02.015317: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 247W, current battery voltage 51.2V, grid power -54W, load power 303W, PV Power 0W
2026-08-16 19:30:02.015488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:30:02.015577: Inverter 0 scheduled charge enable is False
2026-08-16 19:30:02.015613: Inverter 0 charge windows currently []
2026-08-16 19:30:02.015639: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:30:02.015762: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:30:02.015797: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:30:02.015834: Inverter 0 scheduled discharge enable is False
2026-08-16 19:30:02.015969: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:30:02.016005: Inverter 0 discharge windows currently []
2026-08-16 19:30:02.016028: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:30:02.016051: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:30:02.016073: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:30:02.091833: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:30:02.091940: Plan was last updated on 2026-08-16 19:25:00+01:00 and is now 5.0 minutes old
2026-08-16 19:30:02.092198: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:30:02.092303: Best export window [  ]
2026-08-16 19:30:02.093125: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:30:02.096229: Load divergence over 8.0 hours mean 618.51W, min 339.0W, max 1100.4W, std dev 215.27W, divergence 17.4%
2026-08-16 19:30:02.115066: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:30:02.115203: LoadML is_calculating False
2026-08-16 19:30:02.115294: Creating pool of 12 processes to match your CPU count
2026-08-16 19:30:02.238721: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 668.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:55:00, load 27.86kWh, PV 0.0kWh
2026-08-16 19:30:02.362808: Battery has 13.42 hours left - now at 10.4kWh
2026-08-16 19:30:02.403173: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 697.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 07:50:00, load 28.74kWh, PV 0.0kWh
2026-08-16 19:30:02.484077: predict best10 end_record 08-17 23:35:00, final soc 1.44kWh, metric 445.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.74kWh, PV 0.0kWh
2026-08-16 19:30:02.572773: predict best end_record 08-17 23:35:00, final soc 1.67kWh, metric 430.46p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.86kWh, PV 0.0kWh
2026-08-16 19:30:02.572863: Saving plan best values to HA entities
2026-08-16 19:30:02.758798: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:30:02.770081: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:30:02.781315: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.26kWh, house 0.0kWh, export 0.0kWh, metric 430.46p, metric10 445.95p
2026-08-16 19:30:02.903757: Marginal costs baseline metric (no standing charge): 383.8307
2026-08-16 19:30:03.218366: Marginal energy costs matrix computed: min=8.0 max=33.13
2026-08-16 19:30:03.308047: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1170, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:30:03.308775: - Your estimated bill for today is £3.17 and tomorrow is £1.33
2026-08-16 19:30:03.308823: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:30:03.308846: - The battery is currently at 65% and is in eco mode for the next 4 hours.
2026-08-16 19:30:03.308864: - For the next 48 hours there will be no solar generation.
2026-08-16 19:30:03.308881: - You will reach a minimum of 8% battery in 27 hours.
2026-08-16 19:30:03.308899: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-16 19:30:03.308922: 
2026-08-16 19:30:03.376345: Plan calculation took 1.28 seconds
2026-08-16 19:30:03.380221: No high rate period found
2026-08-16 19:30:03.439816: Import threshold used for optimisation was 8.0p
2026-08-16 19:30:03.503052: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:30:03.509869: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:30:03.510018: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:30:03.510142: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:30:03.510501: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:30:03.510607: No export window planned
2026-08-16 19:30:03.510802: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:30:03.510848: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:30:03.511034: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:30:03.511273: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:30:03.511348: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:30:03.511441: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:30:03.511561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.511976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:30:03.512270: Inverter 0 count register writes 0
2026-08-16 19:30:03.530228: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:30:03.536557: Total inverter register writes now 844
2026-08-16 19:30:03.584309: Info: Completed run status Demand
2026-08-16 19:30:03.592773: Info: record_status Demand
2026-08-16 19:30:03.610567: Saved current settings to /config/predbat_config.json
2026-08-16 19:30:03.611008: Compare, best tariff: current metric 318.25p
2026-08-16 19:30:33.729177: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:30:33.729484: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:30:33.729537: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:30:33.729704: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:30:33.729753: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:30:33.729776: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:30:33.729815: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:32:33.962617: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:32:33.962868: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:32:33.962911: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:32:33.963055: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:32:33.963104: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:32:33.963126: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:32:33.963143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:34:34.215789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:34:34.216048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:34:34.216092: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:34:34.216253: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:34:34.216295: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:34:34.216317: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:34:34.216336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:35:00.342365: --------------- PredBat - update at 2026-08-16 19:35:00+01:00 with clock skew 0 minutes, minutes now 1175
2026-08-16 19:35:00.343219: Saved current settings to /config/predbat_config.json
2026-08-16 19:35:00.343355: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 19:35:00.343437: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:35:00.343567: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:35:00.365063: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:35:00.365196: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:35:00.365386: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:35:00.365884: 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-16 19:35:00.366007: Predbat mode is set to Control charge & discharge
2026-08-16 19:35:00.570012: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:35:00.570529: Using load_power data to fill gaps in load_today data
2026-08-16 19:35:01.525918: Processing 721 30-minute periods for power integration
2026-08-16 19:35:01.743523: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:35:01.745143: Car charging hold False, threshold 6.0kWh
2026-08-16 19:35:01.745233: Current data so far today: load 9.45kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:35:01.760875: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:35:01.761164: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:35:01.761937: Standing charge is set to 46.63p
2026-08-16 19:35:01.868423: 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-16 19:35:01.869866: 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-16 19:35:01.872654: 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-16 19:35:01.873109: 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-16 19:35:01.873409: 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-16 19:35:01.873650: 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-16 19:35:01.873890: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874038: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874183: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874344: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874559: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874710: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.874897: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.875179: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.875446: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:35:01.876309: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:35:01.883795: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:35:01.884340: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:35:01.932846: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:35:01.934151: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:35:01.935534: High export rate found rates in range 99p to -99p
2026-08-16 19:35:01.970757: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:35:01.971107: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:35:01.971225: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:35:01.983697: Battery level now 10.4kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:35:01.984054: 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-16 19:35:02.038717: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:35:02.038885: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:35:02.137180: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:35:02.168880: Today's load divergence 81.95%, in-day adjustment 82.87%, damping 0.95x, yesterday 82.97% today 82.85% blend 18.4%
2026-08-16 19:35:02.169052: Today's predicted so far 11.88kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.88kWh forecast extra.
2026-08-16 19:35:02.169112: Today's actual load so far 9.53kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 19:35:02.206953: Inverter 0: Type SK Sunsynk
2026-08-16 19:35:02.207039: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:35:02.207240: Reserve min: 7%, battery_min: 7%
2026-08-16 19:35:02.207326: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:35:02.207597: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 240W, current battery voltage 51.2V, grid power -55W, load power 299W, PV Power 0W
2026-08-16 19:35:02.207755: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:35:02.207843: Inverter 0 scheduled charge enable is False
2026-08-16 19:35:02.207873: Inverter 0 charge windows currently []
2026-08-16 19:35:02.207899: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:35:02.208007: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:35:02.208043: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:35:02.208078: Inverter 0 scheduled discharge enable is False
2026-08-16 19:35:02.208200: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:35:02.208271: Inverter 0 discharge windows currently []
2026-08-16 19:35:02.208295: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:35:02.208318: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:35:02.208336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:35:02.268142: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:35:02.268275: Plan was last updated on 2026-08-16 19:25:00+01:00 and is now 10.0 minutes old
2026-08-16 19:35:02.268583: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 75%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 84%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:35:02.268629: Best export window [  ]
2026-08-16 19:35:02.269531: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:35:02.273014: Load divergence over 8.0 hours mean 618.74W, min 337.8W, max 1131.0W, std dev 224.58W, divergence 18.15%
2026-08-16 19:35:02.294839: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:35:02.294973: LoadML is_calculating False
2026-08-16 19:35:02.295046: Creating pool of 12 processes to match your CPU count
2026-08-16 19:35:02.420985: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 667.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 09:00:00, load 27.94kWh, PV 0.0kWh
2026-08-16 19:35:02.576609: Battery has 13.42 hours left - now at 10.4kWh
2026-08-16 19:35:02.634130: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 696.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 28.82kWh, PV 0.0kWh
2026-08-16 19:35:02.712805: predict best10 end_record 08-17 23:40:00, final soc 1.77kWh, metric 448.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.82kWh, PV 0.0kWh
2026-08-16 19:35:02.798121: predict best end_record 08-17 23:40:00, final soc 2.06kWh, metric 434.31p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.94kWh, PV 0.0kWh
2026-08-16 19:35:02.798233: Saving plan best values to HA entities
2026-08-16 19:35:02.968228: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:35:02.974042: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:35:02.979861: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 11.74kWh, house 0.0kWh, export 0.0kWh, metric 434.31p, metric10 448.83p
2026-08-16 19:35:03.060654: Marginal costs baseline metric (no standing charge): 387.6785
2026-08-16 19:35:03.297054: Marginal energy costs matrix computed: min=8.0 max=33.1
2026-08-16 19:35:03.384097: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1175, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:35:03.384799: - Your estimated bill for today is £3.17 and tomorrow is £1.33
2026-08-16 19:35:03.384847: - Import rates are very expensive (33.8p) for the next 3  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:35:03.384871: - The battery is currently at 65% and is in eco mode for the next 3  hours.
2026-08-16 19:35:03.384889: - For the next 48 hours there will be no solar generation.
2026-08-16 19:35:03.384906: - You will reach a minimum of 8% battery in 27 hours.
2026-08-16 19:35:03.384923: - Your next charge slot will be in 3  hours where import rates will be cheap (8.0p).
2026-08-16 19:35:03.384940: 
2026-08-16 19:35:03.442506: Plan calculation took 1.17 seconds
2026-08-16 19:35:03.446395: No high rate period found
2026-08-16 19:35:03.499726: Import threshold used for optimisation was 8.0p
2026-08-16 19:35:03.560913: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:35:03.569086: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 65%, target 100%
2026-08-16 19:35:03.569263: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:35:03.569422: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:35:03.569827: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:35:03.569957: No export window planned
2026-08-16 19:35:03.570170: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:35:03.570273: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:35:03.570537: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:35:03.570755: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:35:03.570826: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:35:03.570897: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:35:03.570997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571226: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571557: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:03.571754: Inverter 0 count register writes 0
2026-08-16 19:35:03.594491: 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-16 19:35:03.594764: Recompute is saving previous plan...
2026-08-16 19:35:03.595834: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:35:03.595920: Best export window [  ]
2026-08-16 19:35:03.596840: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:35:03.601125: Load divergence over 8.0 hours mean 618.74W, min 337.8W, max 1131.0W, std dev 224.58W, divergence 18.15%
2026-08-16 19:35:03.621788: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:35:03.621964: LoadML is_calculating False
2026-08-16 19:35:03.622085: Creating pool of 12 processes to match your CPU count
2026-08-16 19:35:03.718893: 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(0.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-16 19:35:03.719792: Optimise levels pass started at 2026-08-16 19:35:03
2026-08-16 19:35:03.719847: Optimise all windows, total charge 25 export 1
2026-08-16 19:35:04.153782: >> Region optimisation pass width 960 gives best_metric 490.82p, best_cost 515.01p, best_cycle 42.26kWh, best_import 27.66kWh
2026-08-16 19:35:04.349583: >> Region optimisation pass width 480 gives best_metric 490.82p, best_cost 515.01p, best_cycle 42.26kWh, best_import 27.66kWh
2026-08-16 19:35:04.680824: >> Region optimisation pass width 240 gives best_metric 490.82p, best_cost 515.01p, best_cycle 42.26kWh, best_import 27.66kWh
2026-08-16 19:35:05.241348: >> Region optimisation pass width 120 gives best_metric 490.82p, best_cost 515.01p, best_cycle 42.26kWh, best_import 27.66kWh
2026-08-16 19:35:05.241542: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:35:05.241596: Optimise levels pass ended at 2026-08-16 19:35:05, duration 1.5 seconds tried 63 combinations
2026-08-16 19:35:05.241649: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 490.82p, best_keep 0kWh, best_cycle 42.26kWh, best_carbon 0kg, best_import 27.66kWh
2026-08-16 19:35:05.258013: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 19:35:08.263912: Tweak plan optimisation started metric 371.31p, cost 382.07p
2026-08-16 19:35:08.617583: Tweak optimisation finished metric 371.31p, cost 382.07p, metric_keep 0kWh, cycle 20.38kWh, carbon 0kg, import 11.04kWh, changed 8 window(s)
2026-08-16 19:35:08.635124: Swap charge optimisation started metric 371.31p, cost 382.07p, min_improvement_swap 0.1p
2026-08-16 19:35:09.533437: Swap charge optimisation finished metric 371.31p, cost 382.07p
2026-08-16 19:35:09.708750: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 370.29p -> 370.02p, plan now metric 372.76p, cost 378.58p, cycle 20.83kWh, import 10.6kWh
2026-08-16 19:35:09.721097: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 19:35:09.721632: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:35:09.721891: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:35:09.722306: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:35:09.765815: Previous plan best metric is 371.58 (cost 382.42) and new plan best metric is 371.31 (cost 382.07)
2026-08-16 19:35:09.766051: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 19:35:09.766182: Plan valid is now true after recompute was False
2026-08-16 19:35:09.797881: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 665.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 09:00:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:35:09.915941: Battery has 13.42 hours left - now at 10.4kWh
2026-08-16 19:35:09.963749: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 694.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 28.59kWh, PV 0.0kWh
2026-08-16 19:35:10.047329: predict best10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 441.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 28.59kWh, PV 0.0kWh
2026-08-16 19:35:10.119924: predict best end_record 08-17 23:30:00, final soc 1.28kWh, metric 425.91p, metric_keep 0kWh, min_soc 1.28kWh @ 08-17 23:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:35:10.120015: Saving plan best values to HA entities
2026-08-16 19:35:10.281265: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:35:10.286063: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:35:10.291474: Best charging limit SoC's [16.0, 12.0, 13.75, 13.5, 16.0]kWh, export []kWh gives import battery 10.69kWh, house 0.0kWh, export 0.0kWh, metric 425.91p, metric10 441.45p
2026-08-16 19:35:10.362672: Marginal costs baseline metric (no standing charge): 379.2774
2026-08-16 19:35:10.706136: Marginal energy costs matrix computed: min=8.0 max=33.1
2026-08-16 19:35:10.777258: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1175, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:35:10.777833: - Your estimated bill for today is £3.17 and tomorrow is £1.33
2026-08-16 19:35:10.777873: - Import rates are very expensive (33.8p) for the next 3  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:35:10.777892: - The battery is currently at 65% and is in eco mode for the next 3  hours.
2026-08-16 19:35:10.777923: - For the next 48 hours there will be no solar generation.
2026-08-16 19:35:10.777938: - You will reach a minimum of 8% battery in 27 hours.
2026-08-16 19:35:10.777951: - Your next charge slot will be in 3  hours where import rates will be cheap (8.0p).
2026-08-16 19:35:10.777968: 
2026-08-16 19:35:10.829893: Plan calculation took 7.24 seconds
2026-08-16 19:35:10.830181: Inverter 0: Type SK Sunsynk
2026-08-16 19:35:10.830238: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:35:10.830436: Reserve min: 7%, battery_min: 7%
2026-08-16 19:35:10.830502: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:35:10.830772: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 241W, current battery voltage 51.2V, grid power -54W, load power 299W, PV Power 0W
2026-08-16 19:35:10.830979: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:35:10.831064: Inverter 0 scheduled charge enable is False
2026-08-16 19:35:10.831093: Inverter 0 charge windows currently []
2026-08-16 19:35:10.831117: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:35:10.831225: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:35:10.831261: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:35:10.831293: Inverter 0 scheduled discharge enable is False
2026-08-16 19:35:10.831423: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:35:10.831486: Inverter 0 discharge windows currently []
2026-08-16 19:35:10.831513: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:35:10.831540: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:35:10.831561: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:35:10.883243: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:35:10.883372: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:35:10.883431: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:35:10.883591: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:35:10.883659: No export window planned
2026-08-16 19:35:10.883760: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:35:10.883790: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:35:10.883903: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:35:10.884045: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:35:10.884091: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:35:10.884140: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:35:10.884227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884301: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884372: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:35:10.884589: Inverter 0 count register writes 0
2026-08-16 19:35:10.906157: Total inverter register writes now 844
2026-08-16 19:35:10.939341: Info: Completed run status Demand
2026-08-16 19:35:10.945337: Info: record_status Demand
2026-08-16 19:35:10.951369: Saved current settings to /config/predbat_config.json
2026-08-16 19:35:10.951643: Compare, best tariff: current metric 318.25p
2026-08-16 19:35:49.068346: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:35:49.068648: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:35:49.068698: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:35:49.068869: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:35:49.068914: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:35:49.068941: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:35:49.069006: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:38:03.386271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:38:03.386520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:38:03.386589: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:38:03.386750: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:38:03.386791: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:38:03.386812: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:38:03.386830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:39:41.524711: MCP POST: Received request from 10.0.10.73
2026-08-16 19:39:41.524938: MCP: Could not even decode without verification: Not enough segments
2026-08-16 19:39:41.525009: MCP: Token verification failed: Not enough segments
2026-08-16 19:39:41.525083: MCP POST: Authenticated via legacy bearer token
2026-08-16 19:39:41.525397: number_event: input_number.predbat_best_soc_keep = 2.0
2026-08-16 19:39:48.642472: Refreshing Predbat configuration
2026-08-16 19:39:49.352538: Saved current settings to /config/predbat_config.json
2026-08-16 19:39:49.353862: Validation of apps.yaml was successful
2026-08-16 19:39:49.354045: --------------- PredBat - update at 2026-08-16 19:35:00+01:00 with clock skew 0 minutes, minutes now 1175
2026-08-16 19:39:49.354630: Saved current settings to /config/predbat_config.json
2026-08-16 19:39:49.354758: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 39.8 minutes
2026-08-16 19:39:49.354864: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:39:49.354985: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:39:49.374800: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:39:49.374929: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:39:49.375094: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:39:49.375640: 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-16 19:39:49.375765: Predbat mode is set to Control charge & discharge
2026-08-16 19:39:49.598953: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:39:49.599120: Using load_power data to fill gaps in load_today data
2026-08-16 19:39:50.493607: Processing 721 30-minute periods for power integration
2026-08-16 19:39:50.715157: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:39:50.716447: Car charging hold False, threshold 6.0kWh
2026-08-16 19:39:50.718022: Current data so far today: load 9.45kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:39:50.738367: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:39:50.739608: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:39:50.742823: Standing charge is set to 46.63p
2026-08-16 19:39:50.851759: 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-16 19:39:50.853123: 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-16 19:39:50.854922: 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-16 19:39:50.855164: 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-16 19:39:50.855384: 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-16 19:39:50.855577: 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-16 19:39:50.855845: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.855956: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856056: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856317: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856416: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856526: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856611: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856688: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.856882: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:39:50.857728: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:39:50.864738: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:39:50.865456: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:39:50.927450: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:39:50.927645: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:39:50.929373: High export rate found rates in range 99p to -99p
2026-08-16 19:39:50.978009: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:39:50.979161: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:39:50.981787: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:39:51.006345: Battery level now 10.4kWh, -1hr ago 10.72kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:39:51.006726: 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-16 19:39:51.092416: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:39:51.092603: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:39:51.190682: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:39:51.223125: Today's load divergence 81.95%, in-day adjustment 82.87%, damping 0.95x, yesterday 82.97% today 82.85% blend 18.4%
2026-08-16 19:39:51.223263: Today's predicted so far 11.88kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 11.88kWh forecast extra.
2026-08-16 19:39:51.223300: Today's actual load so far 9.53kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 19:39:51.256429: Inverter 0: Type SK Sunsynk
2026-08-16 19:39:51.256575: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:39:51.256770: Reserve min: 7%, battery_min: 7%
2026-08-16 19:39:51.256855: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:39:51.257167: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 283W, current battery voltage 51.2V, grid power -54W, load power 340W, PV Power 0W
2026-08-16 19:39:51.257359: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:39:51.258355: Inverter 0 scheduled charge enable is False
2026-08-16 19:39:51.259768: Inverter 0 charge windows currently []
2026-08-16 19:39:51.259893: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:39:51.260052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:39:51.260126: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:39:51.260200: Inverter 0 scheduled discharge enable is False
2026-08-16 19:39:51.260364: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:39:51.260414: Inverter 0 discharge windows currently []
2026-08-16 19:39:51.260440: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:39:51.260463: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:39:51.260608: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:39:51.361947: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:39:51.362028: Will recompute the plan as it is invalid
2026-08-16 19:39:51.362065: Recompute, previous plan is invalid...
2026-08-16 19:39:51.363017: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:39:51.363069: Best export window [  ]
2026-08-16 19:39:51.363911: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:39:51.366749: Load divergence over 8.0 hours mean 618.74W, min 337.8W, max 1131.0W, std dev 224.58W, divergence 18.15%
2026-08-16 19:39:51.381868: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:39:51.381971: LoadML is_calculating False
2026-08-16 19:39:51.382029: Creating pool of 12 processes to match your CPU count
2026-08-16 19:39:51.462948: 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-16 19:39:51.463761: Optimise levels pass started at 2026-08-16 19:39:51
2026-08-16 19:39:51.463834: Optimise all windows, total charge 25 export 1
2026-08-16 19:39:52.138646: >> Region optimisation pass width 960 gives best_metric 492.47p, best_cost 524.79p, best_cycle 41.23kWh, best_import 28.88kWh
2026-08-16 19:39:52.309432: >> Region optimisation pass width 480 gives best_metric 491.79p, best_cost 515.97p, best_cycle 42.38kWh, best_import 27.78kWh
2026-08-16 19:39:52.558132: >> Region optimisation pass width 240 gives best_metric 491.79p, best_cost 515.97p, best_cycle 42.38kWh, best_import 27.78kWh
2026-08-16 19:39:53.160840: >> Region optimisation pass width 120 gives best_metric 491.79p, best_cost 515.97p, best_cycle 42.38kWh, best_import 27.78kWh
2026-08-16 19:39:53.161110: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:39:53.161196: Optimise levels pass ended at 2026-08-16 19:39:53, duration 1.7 seconds tried 66 combinations
2026-08-16 19:39:53.161257: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 491.79p, best_keep 0kWh, best_cycle 42.38kWh, best_carbon 0kg, best_import 27.78kWh
2026-08-16 19:39:53.181001: Starting detailed optimisation end_record 08-17 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, 0, 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-16 19:39:55.288743: Tweak plan optimisation started metric 375.0p, cost 387.72p
2026-08-16 19:39:55.557020: Tweak optimisation finished metric 375.0p, cost 387.72p, metric_keep 0.0kWh, cycle 24.72kWh, carbon 0kg, import 11.75kWh, changed 8 window(s)
2026-08-16 19:39:55.577758: Swap charge optimisation started metric 375.0p, cost 387.72p, min_improvement_swap 0.1p
2026-08-16 19:39:56.315508: Swap charge optimisation finished metric 375.0p, cost 387.72p
2026-08-16 19:39:56.398199: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 19:39:56.399978: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:39:56.401451: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:39:56.401681: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:39:56.402114: Plan valid is now true after recompute was False
2026-08-16 19:39:56.435535: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 669.06p, metric_keep 231.9kWh, min_soc 1.12kWh @ 08-17 08:45:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:39:56.574599: Battery has 13.17 hours left - now at 10.29kWh
2026-08-16 19:39:56.634754: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 698.42p, metric_keep 247.9kWh, min_soc 1.12kWh @ 08-17 07:45:00, load 28.59kWh, PV 0.0kWh
2026-08-16 19:39:56.742562: predict best10 end_record 08-17 23:30:00, final soc 1.33kWh, metric 436.5p, metric_keep 3.37kWh, min_soc 1.33kWh @ 08-17 23:25:00, load 28.59kWh, PV 0.0kWh
2026-08-16 19:39:56.819440: predict best end_record 08-17 23:30:00, final soc 2.0kWh, metric 434.36p, metric_keep 0.0kWh, min_soc 2.0kWh @ 08-17 23:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:39:56.819557: Saving plan best values to HA entities
2026-08-16 19:39:56.972908: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:39:56.978276: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:39:56.983362: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 11.75kWh, house 0.0kWh, export 0.0kWh, metric 434.36p, metric10 436.5p
2026-08-16 19:39:57.067405: Marginal costs baseline metric (no standing charge): 387.7249
2026-08-16 19:39:57.323232: Marginal energy costs matrix computed: min=6.13 max=30.3
2026-08-16 19:39:57.388839: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1175, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:39:57.389444: - Your estimated bill for today is £3.17 and tomorrow is £1.41
2026-08-16 19:39:57.389490: - Import rates are very expensive (33.8p) for the next 3  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 19:39:57.389510: - The battery is currently at 64% and is in eco mode for the next 3  hours.
2026-08-16 19:39:57.389525: - For the next 48 hours there will be no solar generation.
2026-08-16 19:39:57.389539: - You will reach a minimum of 12% battery in 27 hours.
2026-08-16 19:39:57.389553: - Your next charge slot will be in 3  hours where import rates will be cheap (8.0p) and your car will be charged with 14.8 kWh.
2026-08-16 19:39:57.389567: 
2026-08-16 19:39:57.442789: Plan calculation took 6.08 seconds
2026-08-16 19:39:57.447600: Saved plan to storage
2026-08-16 19:39:57.450855: No high rate period found
2026-08-16 19:39:57.502563: Import threshold used for optimisation was 8.0p
2026-08-16 19:39:57.552197: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:39:57.558362: Inverter 0: Type SK Sunsynk
2026-08-16 19:39:57.558449: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:39:57.558781: Reserve min: 7%, battery_min: 7%
2026-08-16 19:39:57.558913: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:39:57.559389: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 283W, current battery voltage 51.2V, grid power -54W, load power 340W, PV Power 0W
2026-08-16 19:39:57.559764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:39:57.559925: Inverter 0 scheduled charge enable is False
2026-08-16 19:39:57.559974: Inverter 0 charge windows currently []
2026-08-16 19:39:57.560055: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:39:57.560308: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:39:57.560373: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:39:57.560444: Inverter 0 scheduled discharge enable is False
2026-08-16 19:39:57.560653: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:39:57.560703: Inverter 0 discharge windows currently []
2026-08-16 19:39:57.560731: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:39:57.560776: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:39:57.560813: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:39:57.616338: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 02:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:39:57.616495: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:39:57.616566: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:39:57.616764: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:39:57.616862: No export window planned
2026-08-16 19:39:57.617005: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:39:57.617055: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:39:57.617265: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:39:57.617473: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:39:57.617551: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:39:57.617610: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:39:57.617699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617732: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617930: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.617983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.618017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.618043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.618067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.618091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:39:57.618138: Inverter 0 count register writes 0
2026-08-16 19:39:57.639840: Total inverter register writes now 844
2026-08-16 19:39:57.673979: Info: Completed run status Demand
2026-08-16 19:39:57.680332: Info: record_status Demand
2026-08-16 19:39:57.687204: Saved current settings to /config/predbat_config.json
2026-08-16 19:39:57.687474: Compare, best tariff: current metric 318.25p
2026-08-16 19:39:57.753992: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-16 19:40:00.760738: --------------- PredBat - update at 2026-08-16 19:40:00+01:00 with clock skew 0 minutes, minutes now 1180
2026-08-16 19:40:00.761619: Saved current settings to /config/predbat_config.json
2026-08-16 19:40:00.761793: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 19:40:00.761927: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:40:00.762053: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:40:00.788571: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:40:00.788706: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:40:00.788877: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:40:00.789498: 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-16 19:40:00.789634: Predbat mode is set to Control charge & discharge
2026-08-16 19:40:01.008244: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:40:01.008402: Using load_power data to fill gaps in load_today data
2026-08-16 19:40:01.874301: Processing 721 30-minute periods for power integration
2026-08-16 19:40:02.098553: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:40:02.098701: Car charging hold False, threshold 6.0kWh
2026-08-16 19:40:02.098749: Current data so far today: load 9.4kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:40:02.120110: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:40:02.120240: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:40:02.121013: Standing charge is set to 46.63p
2026-08-16 19:40:02.203390: 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-16 19:40:02.203826: 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-16 19:40:02.203996: 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-16 19:40:02.204156: 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-16 19:40:02.204407: 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-16 19:40:02.204561: 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-16 19:40:02.204717: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.204816: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.204891: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205011: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205096: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205162: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205254: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205309: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205456: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:40:02.205506: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:40:02.210129: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:40:02.210495: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:40:02.252909: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:40:02.253117: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:40:02.254491: High export rate found rates in range 99p to -99p
2026-08-16 19:40:02.282377: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:40:02.282540: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:40:02.282593: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:40:02.296142: Battery level now 10.4kWh, -1hr ago 10.7kWh, at midnight 12.21kWh, battery value change in the last hour -2.09p, change today -12.43p, rate_forward 6.87p
2026-08-16 19:40:02.296616: 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-16 19:40:02.359302: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:40:02.359457: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:40:02.475664: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:40:02.502127: Today's load divergence 81.14%, in-day adjustment 82.24%, damping 0.95x, yesterday 82.97% today 82.08% blend 18.06%
2026-08-16 19:40:02.502222: Today's predicted so far 11.89kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 11.89kWh forecast extra.
2026-08-16 19:40:02.502250: Today's actual load so far 9.45kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 19:40:02.536231: Inverter 0: Type SK Sunsynk
2026-08-16 19:40:02.536322: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:40:02.536504: Reserve min: 7%, battery_min: 7%
2026-08-16 19:40:02.536576: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:40:02.536859: Inverter 0 SoC: 10.29kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 283W, current battery voltage 51.2V, grid power -54W, load power 340W, PV Power 0W
2026-08-16 19:40:02.537069: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:40:02.537165: Inverter 0 scheduled charge enable is False
2026-08-16 19:40:02.537219: Inverter 0 charge windows currently []
2026-08-16 19:40:02.537247: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:40:02.537367: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:40:02.537403: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:40:02.537441: Inverter 0 scheduled discharge enable is False
2026-08-16 19:40:02.537563: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:40:02.537599: Inverter 0 discharge windows currently []
2026-08-16 19:40:02.537622: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:40:02.537641: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:40:02.537659: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:40:02.594219: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:40:02.594327: Plan was last updated on 2026-08-16 19:35:00+01:00 and is now 5.0 minutes old
2026-08-16 19:40:02.594485: Best charge window [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:40:02.594525: Best export window [  ]
2026-08-16 19:40:02.595454: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:40:02.598783: Load divergence over 8.0 hours mean 615.44W, min 361.8W, max 1105.2W, std dev 224.36W, divergence 18.23%
2026-08-16 19:40:02.616651: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:40:02.616768: LoadML is_calculating False
2026-08-16 19:40:02.616827: Creating pool of 12 processes to match your CPU count
2026-08-16 19:40:02.732361: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 667.48p, metric_keep 229.81kWh, min_soc 1.12kWh @ 08-17 08:55:00, load 27.71kWh, PV 0.0kWh
2026-08-16 19:40:02.863903: Battery has 13.25 hours left - now at 10.29kWh
2026-08-16 19:40:02.915690: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 696.79p, metric_keep 245.58kWh, min_soc 1.12kWh @ 08-17 07:55:00, load 28.58kWh, PV 0.0kWh
2026-08-16 19:40:02.997144: predict best10 end_record 08-17 23:35:00, final soc 1.66kWh, metric 439.49p, metric_keep 3.47kWh, min_soc 1.33kWh @ 08-17 23:25:00, load 28.58kWh, PV 0.0kWh
2026-08-16 19:40:03.081430: predict best end_record 08-17 23:35:00, final soc 2.39kWh, metric 437.91p, metric_keep 0.0kWh, min_soc 2.0kWh @ 08-17 23:25:00, load 27.71kWh, PV 0.0kWh
2026-08-16 19:40:03.081519: Saving plan best values to HA entities
2026-08-16 19:40:03.239088: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:40:03.244462: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:40:03.250118: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 12.19kWh, house 0.0kWh, export 0.0kWh, metric 437.91p, metric10 439.49p
2026-08-16 19:40:03.359597: Marginal costs baseline metric (no standing charge): 391.2718
2026-08-16 19:40:03.672849: Marginal energy costs matrix computed: min=6.1 max=30.3
2026-08-16 19:40:03.740282: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1180, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:40:03.740897: - Your estimated bill for today is £3.17 and tomorrow is £1.41
2026-08-16 19:40:03.740936: - 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-16 19:40:03.740980: - The battery is currently at 64% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 19:40:03.740996: - For the next 48 hours there will be no solar generation.
2026-08-16 19:40:03.741010: - You will reach a minimum of 12% battery in 27 hours.
2026-08-16 19:40:03.741025: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p) and your car will be charged with 14.8 kWh.
2026-08-16 19:40:03.741039: 
2026-08-16 19:40:03.792738: Plan calculation took 1.20 seconds
2026-08-16 19:40:03.795898: No high rate period found
2026-08-16 19:40:03.843807: Import threshold used for optimisation was 8.0p
2026-08-16 19:40:03.903373: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:40:03.909252: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 02:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:40:03.909422: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:40:03.909559: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:40:03.909878: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:40:03.912918: No export window planned
2026-08-16 19:40:03.914310: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:40:03.914402: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:40:03.914586: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:40:03.914781: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:40:03.914905: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:40:03.915035: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:40:03.915151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915439: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915516: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:40:03.915773: Inverter 0 count register writes 0
2026-08-16 19:40:03.944472: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:40:03.955138: Total inverter register writes now 844
2026-08-16 19:40:04.025406: Info: Completed run status Demand
2026-08-16 19:40:04.046858: Info: record_status Demand
2026-08-16 19:40:04.057122: Saved current settings to /config/predbat_config.json
2026-08-16 19:40:04.057497: Compare, best tariff: current metric 318.25p
2026-08-16 19:40:34.159626: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:40:34.159909: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:40:34.159968: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:40:34.160123: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:40:34.160168: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:40:34.160207: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:40:34.160227: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:42:48.415338: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:42:48.415572: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:42:48.415613: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:42:48.415724: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:42:48.415756: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:42:48.415773: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:42:48.415787: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:44:48.641376: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:44:48.641646: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:44:48.641690: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:44:48.641842: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:44:48.641882: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:44:48.641924: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:44:48.641945: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:45:00.742544: --------------- PredBat - update at 2026-08-16 19:45:00+01:00 with clock skew 0 minutes, minutes now 1185
2026-08-16 19:45:00.743442: Saved current settings to /config/predbat_config.json
2026-08-16 19:45:00.743622: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 19:45:00.743765: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:45:00.743865: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:45:00.767428: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:45:00.767597: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:45:00.767823: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:45:00.768603: 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-16 19:45:00.768812: Predbat mode is set to Control charge & discharge
2026-08-16 19:45:00.987696: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:45:00.987883: Using load_power data to fill gaps in load_today data
2026-08-16 19:45:01.861889: Processing 721 30-minute periods for power integration
2026-08-16 19:45:02.051692: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:45:02.051861: Car charging hold False, threshold 6.0kWh
2026-08-16 19:45:02.051908: Current data so far today: load 9.4kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:45:02.072447: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:45:02.072577: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:45:02.073518: Standing charge is set to 46.63p
2026-08-16 19:45:02.162251: 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-16 19:45:02.162551: 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-16 19:45:02.162742: 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-16 19:45:02.162924: 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-16 19:45:02.163099: 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-16 19:45:02.163276: 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-16 19:45:02.163474: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.163570: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.163685: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.163769: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.163852: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.163955: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.164027: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.164099: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.164284: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:45:02.164389: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:45:02.170105: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:45:02.170572: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:45:02.215121: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:45:02.215250: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:45:02.216573: High export rate found rates in range 99p to -99p
2026-08-16 19:45:02.251118: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:45:02.251273: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:45:02.251352: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:45:02.265555: Battery level now 10.29kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -1.87p, change today -13.2p, rate_forward 6.87p
2026-08-16 19:45:02.265928: 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-16 19:45:02.345200: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:45:02.345360: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:45:02.439605: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:45:02.469916: Today's load divergence 80.43%, in-day adjustment 81.68%, damping 0.95x, yesterday 82.97% today 81.4% blend 17.71%
2026-08-16 19:45:02.470019: Today's predicted so far 11.89kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 11.89kWh forecast extra.
2026-08-16 19:45:02.470048: Today's actual load so far 9.38kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 19:45:02.504142: Inverter 0: Type SK Sunsynk
2026-08-16 19:45:02.504235: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:45:02.504436: Reserve min: 7%, battery_min: 7%
2026-08-16 19:45:02.504518: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:45:02.504795: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -54W, load power 332W, PV Power 0W
2026-08-16 19:45:02.504985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:45:02.505103: Inverter 0 scheduled charge enable is False
2026-08-16 19:45:02.505134: Inverter 0 charge windows currently []
2026-08-16 19:45:02.505161: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:45:02.505277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:45:02.505332: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:45:02.505370: Inverter 0 scheduled discharge enable is False
2026-08-16 19:45:02.505501: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:45:02.505538: Inverter 0 discharge windows currently []
2026-08-16 19:45:02.505560: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:45:02.505578: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:45:02.505596: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:45:02.567968: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:45:02.568077: Plan was last updated on 2026-08-16 19:35:00+01:00 and is now 10.0 minutes old
2026-08-16 19:45:02.568243: Best charge window [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:45:02.568284: Best export window [  ]
2026-08-16 19:45:02.569146: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:45:02.572261: Load divergence over 8.0 hours mean 612.46W, min 379.8W, max 1153.2W, std dev 227.92W, divergence 18.61%
2026-08-16 19:45:02.590795: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:45:02.590909: LoadML is_calculating False
2026-08-16 19:45:02.590975: Creating pool of 12 processes to match your CPU count
2026-08-16 19:45:02.735648: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 668.16p, metric_keep 229.51kWh, min_soc 1.12kWh @ 08-17 09:00:00, load 27.77kWh, PV 0.0kWh
2026-08-16 19:45:02.870623: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 19:45:02.915784: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 697.39p, metric_keep 245.15kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 28.65kWh, PV 0.0kWh
2026-08-16 19:45:02.998385: predict best10 end_record 08-17 23:40:00, final soc 1.96kWh, metric 443.03p, metric_keep 3.61kWh, min_soc 1.32kWh @ 08-17 23:25:00, load 28.65kWh, PV 0.0kWh
2026-08-16 19:45:03.091927: predict best end_record 08-17 23:40:00, final soc 2.76kWh, metric 441.98p, metric_keep 0.02kWh, min_soc 1.98kWh @ 08-17 23:25:00, load 27.77kWh, PV 0.0kWh
2026-08-16 19:45:03.092020: Saving plan best values to HA entities
2026-08-16 19:45:03.277363: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:45:03.282964: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:45:03.289239: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 12.7kWh, house 0kWh, export 0.0kWh, metric 441.98p, metric10 443.03p
2026-08-16 19:45:03.375206: Marginal costs baseline metric (no standing charge): 395.3493
2026-08-16 19:45:03.680760: Marginal energy costs matrix computed: min=6.0 max=30.36
2026-08-16 19:45:03.746739: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1185, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:45:03.747435: - Your estimated bill for today is £3.18 and tomorrow is £1.41
2026-08-16 19:45:03.747485: - 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-16 19:45:03.747508: - The battery is currently at 64% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 19:45:03.747526: - For the next 48 hours there will be no solar generation.
2026-08-16 19:45:03.747545: - You will reach a minimum of 12% battery in 27 hours.
2026-08-16 19:45:03.747562: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p) and your car will be charged with 14.8 kWh.
2026-08-16 19:45:03.747582: 
2026-08-16 19:45:03.803117: Plan calculation took 1.23 seconds
2026-08-16 19:45:03.806990: No high rate period found
2026-08-16 19:45:03.858351: Import threshold used for optimisation was 8.0p
2026-08-16 19:45:03.907471: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:45:03.912873: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 02:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:45:03.913042: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:45:03.913161: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:45:03.913454: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:45:03.913536: No export window planned
2026-08-16 19:45:03.913647: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:45:03.913679: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:45:03.913797: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:45:03.913948: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:45:03.914002: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:45:03.914082: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:45:03.914162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914243: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914382: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:03.914594: Inverter 0 count register writes 0
2026-08-16 19:45:03.928910: 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-16 19:45:03.929081: Recompute is saving previous plan...
2026-08-16 19:45:03.929919: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:45:03.929966: Best export window [  ]
2026-08-16 19:45:03.930650: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:45:03.933361: Load divergence over 8.0 hours mean 612.46W, min 379.8W, max 1153.2W, std dev 227.92W, divergence 18.61%
2026-08-16 19:45:03.948668: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:45:03.948764: LoadML is_calculating False
2026-08-16 19:45:03.948824: Creating pool of 12 processes to match your CPU count
2026-08-16 19:45:04.030821: 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-16 19:45:04.031736: Optimise levels pass started at 2026-08-16 19:45:04
2026-08-16 19:45:04.031799: Optimise all windows, total charge 25 export 1
2026-08-16 19:45:04.460988: >> Region optimisation pass width 960 gives best_metric 492.9p, best_cost 526.09p, best_cycle 41.48kWh, best_import 29.04kWh
2026-08-16 19:45:04.604407: >> Region optimisation pass width 480 gives best_metric 492.9p, best_cost 526.09p, best_cycle 41.48kWh, best_import 29.04kWh
2026-08-16 19:45:04.886025: >> Region optimisation pass width 240 gives best_metric 492.9p, best_cost 526.09p, best_cycle 41.48kWh, best_import 29.04kWh
2026-08-16 19:45:05.560768: >> Region optimisation pass width 120 gives best_metric 492.9p, best_cost 526.09p, best_cycle 41.48kWh, best_import 29.04kWh
2026-08-16 19:45:05.561075: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:45:05.561185: Optimise levels pass ended at 2026-08-16 19:45:05, duration 1.5 seconds tried 64 combinations
2026-08-16 19:45:05.561260: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 492.9p, best_keep 0kWh, best_cycle 41.48kWh, best_carbon 0kg, best_import 29.04kWh
2026-08-16 19:45:05.584123: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 19:45:08.298159: Tweak plan optimisation started metric 372.01p, cost 384.96p
2026-08-16 19:45:08.635126: Tweak optimisation finished metric 372.01p, cost 384.96p, metric_keep 0kWh, cycle 20.51kWh, carbon 0kg, import 11.4kWh, changed 8 window(s)
2026-08-16 19:45:08.654590: Swap charge optimisation started metric 372.01p, cost 384.96p, min_improvement_swap 0.1p
2026-08-16 19:45:09.406465: Swap charge optimisation finished metric 372.01p, cost 384.96p
2026-08-16 19:45:09.532150: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 19:45:09.532551: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:45:09.532805: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:45:09.533113: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:45:09.567975: Previous plan best metric is 374.29 (cost 386.89) and new plan best metric is 372.01 (cost 384.96)
2026-08-16 19:45:09.568314: New plan metric is significantly better from previous plan, using new plan
2026-08-16 19:45:09.568368: Plan valid is now true after recompute was False
2026-08-16 19:45:09.594504: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 666.36p, metric_keep 228.92kWh, min_soc 1.12kWh @ 08-17 09:00:00, load 27.55kWh, PV 0.0kWh
2026-08-16 19:45:09.701965: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 19:45:09.741462: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 695.51p, metric_keep 244.57kWh, min_soc 1.12kWh @ 08-17 08:00:00, load 28.41kWh, PV 0.0kWh
2026-08-16 19:45:09.812077: predict best10 end_record 08-17 23:30:00, final soc 1.46kWh, metric 434.39p, metric_keep 2.22kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.41kWh, PV 0.0kWh
2026-08-16 19:45:09.883053: predict best end_record 08-17 23:30:00, final soc 2.03kWh, metric 431.59p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.55kWh, PV 0.0kWh
2026-08-16 19:45:09.883140: Saving plan best values to HA entities
2026-08-16 19:45:10.069369: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:45:10.076699: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:45:10.083717: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.4kWh, house 0kWh, export 0.0kWh, metric 431.59p, metric10 434.39p
2026-08-16 19:45:10.180073: Marginal costs baseline metric (no standing charge): 384.9589
2026-08-16 19:45:10.441271: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 19:45:10.624772: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1185, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:45:10.625434: - Your estimated bill for today is £3.18 and tomorrow is £1.39
2026-08-16 19:45:10.625484: - 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-16 19:45:10.625504: - The battery is currently at 64% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 19:45:10.625519: - For the next 48 hours there will be no solar generation.
2026-08-16 19:45:10.625533: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 19:45:10.625547: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 19:45:10.625562: 
2026-08-16 19:45:10.678650: Plan calculation took 6.75 seconds
2026-08-16 19:45:10.678982: Inverter 0: Type SK Sunsynk
2026-08-16 19:45:10.679022: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:45:10.679219: Reserve min: 7%, battery_min: 7%
2026-08-16 19:45:10.679285: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:45:10.679580: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 275W, current battery voltage 51.2V, grid power -54W, load power 332W, PV Power 0W
2026-08-16 19:45:10.679788: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:45:10.679880: Inverter 0 scheduled charge enable is False
2026-08-16 19:45:10.679911: Inverter 0 charge windows currently []
2026-08-16 19:45:10.679936: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:45:10.680055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:45:10.680090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:45:10.680122: Inverter 0 scheduled discharge enable is False
2026-08-16 19:45:10.680232: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:45:10.680264: Inverter 0 discharge windows currently []
2026-08-16 19:45:10.680283: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:45:10.680310: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:45:10.680326: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:45:10.735548: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:45:10.735731: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:45:10.735809: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:45:10.736028: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:45:10.736136: No export window planned
2026-08-16 19:45:10.736242: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:45:10.736278: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:45:10.736456: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:45:10.736653: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:45:10.736709: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:45:10.736768: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:45:10.736855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.736895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.736923: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:45:10.737395: Inverter 0 count register writes 0
2026-08-16 19:45:10.758974: Total inverter register writes now 844
2026-08-16 19:45:10.792725: Info: Completed run status Demand
2026-08-16 19:45:10.799271: Info: record_status Demand
2026-08-16 19:45:10.806101: Saved current settings to /config/predbat_config.json
2026-08-16 19:45:10.806468: Compare, best tariff: current metric 318.25p
2026-08-16 19:45:48.914732: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:45:48.914997: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:45:48.915043: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:45:48.915193: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:45:48.915266: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:45:48.915290: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:45:48.915326: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:47:49.140295: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:47:49.140624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:47:49.140704: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:47:49.140853: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:47:49.140905: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:47:49.140927: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:47:49.140996: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:50:00.396605: --------------- PredBat - update at 2026-08-16 19:50:00+01:00 with clock skew 0 minutes, minutes now 1190
2026-08-16 19:50:00.397545: Saved current settings to /config/predbat_config.json
2026-08-16 19:50:00.397765: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 19:50:00.397863: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:50:00.397988: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:50:00.418342: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:50:00.418500: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:50:00.418725: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:50:00.419277: 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-16 19:50:00.419408: Predbat mode is set to Control charge & discharge
2026-08-16 19:50:00.617776: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:50:00.617952: Using load_power data to fill gaps in load_today data
2026-08-16 19:50:01.442207: Processing 721 30-minute periods for power integration
2026-08-16 19:50:01.610670: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:50:01.610849: Car charging hold False, threshold 6.0kWh
2026-08-16 19:50:01.610906: Current data so far today: load 9.53kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:50:01.628614: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:50:01.628727: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:50:01.629446: Standing charge is set to 46.63p
2026-08-16 19:50:01.704375: 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-16 19:50:01.704634: 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-16 19:50:01.704892: 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-16 19:50:01.705126: 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-16 19:50:01.705292: 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-16 19:50:01.705458: 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-16 19:50:01.705609: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.705688: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.705759: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.705821: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.705888: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.705955: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.706022: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.706078: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.706218: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:50:01.706269: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:50:01.710972: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:50:01.711421: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:50:01.746212: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:50:01.746331: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:50:01.747443: High export rate found rates in range 99p to -99p
2026-08-16 19:50:01.774558: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:50:01.774667: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:50:01.774724: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:50:01.789164: Battery level now 10.24kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -13.53p, rate_forward 6.87p
2026-08-16 19:50:01.789604: 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-16 19:50:01.840910: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:50:01.841097: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:50:01.916985: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:50:01.942134: Today's load divergence 81.13%, in-day adjustment 82.23%, damping 0.95x, yesterday 82.97% today 82.07% blend 17.36%
2026-08-16 19:50:01.942489: Today's predicted so far 11.92kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 11.92kWh forecast extra.
2026-08-16 19:50:01.942528: Today's actual load so far 9.48kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 19:50:01.971757: Inverter 0: Type SK Sunsynk
2026-08-16 19:50:01.971834: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:50:01.971981: Reserve min: 7%, battery_min: 7%
2026-08-16 19:50:01.972039: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:50:01.972250: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 382W, current battery voltage 51.2V, grid power -59W, load power 443W, PV Power 0W
2026-08-16 19:50:01.972395: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:50:01.972470: Inverter 0 scheduled charge enable is False
2026-08-16 19:50:01.972497: Inverter 0 charge windows currently []
2026-08-16 19:50:01.972519: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:50:01.972609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:50:01.972634: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:50:01.972662: Inverter 0 scheduled discharge enable is False
2026-08-16 19:50:01.972761: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:50:01.972791: Inverter 0 discharge windows currently []
2026-08-16 19:50:01.972809: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:50:01.972825: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:50:01.972838: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:50:02.026794: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:50:02.026894: Plan was last updated on 2026-08-16 19:45:00+01:00 and is now 5.0 minutes old
2026-08-16 19:50:02.027070: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:50:02.027105: Best export window [  ]
2026-08-16 19:50:02.027718: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:50:02.030206: Load divergence over 8.0 hours mean 611.02W, min 363.6W, max 1047.6W, std dev 222.8W, divergence 18.23%
2026-08-16 19:50:02.045580: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:50:02.045699: LoadML is_calculating False
2026-08-16 19:50:02.045755: Creating pool of 12 processes to match your CPU count
2026-08-16 19:50:02.179966: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 665.38p, metric_keep 227.94kWh, min_soc 1.12kWh @ 08-17 09:05:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:50:02.314767: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 19:50:02.355209: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 694.51p, metric_keep 243.45kWh, min_soc 1.12kWh @ 08-17 08:05:00, load 28.6kWh, PV 0.0kWh
2026-08-16 19:50:02.431500: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 437.69p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.6kWh, PV 0.0kWh
2026-08-16 19:50:02.526148: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 435.42p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 19:50:02.526259: Saving plan best values to HA entities
2026-08-16 19:50:02.695608: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:50:02.701660: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 19:50:02.707504: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.88kWh, house 0.0kWh, export 0.0kWh, metric 435.42p, metric10 437.69p
2026-08-16 19:50:02.781778: Marginal costs baseline metric (no standing charge): 388.7893
2026-08-16 19:50:03.019091: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 19:50:03.078017: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1190, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:50:03.078611: - Your estimated bill for today is £3.18 and tomorrow is £1.38
2026-08-16 19:50:03.078652: - 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-16 19:50:03.078670: - The battery is currently at 64% and is in eco mode for the next 3 and three quarters hours.
2026-08-16 19:50:03.078685: - For the next 48 hours there will be no solar generation.
2026-08-16 19:50:03.078699: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 19:50:03.078713: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 19:50:03.078729: 
2026-08-16 19:50:03.132573: Plan calculation took 1.11 seconds
2026-08-16 19:50:03.135643: No high rate period found
2026-08-16 19:50:03.181415: Import threshold used for optimisation was 8.0p
2026-08-16 19:50:03.228553: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:50:03.236319: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:50:03.236555: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:50:03.236782: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:50:03.237176: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:50:03.237282: No export window planned
2026-08-16 19:50:03.237441: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:50:03.237485: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:50:03.237629: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:50:03.237808: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:50:03.237874: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:50:03.237948: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:50:03.238109: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238289: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238342: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:50:03.238776: Inverter 0 count register writes 0
2026-08-16 19:50:03.258413: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 19:50:03.265576: Total inverter register writes now 844
2026-08-16 19:50:03.310732: Info: Completed run status Demand
2026-08-16 19:50:03.320308: Info: record_status Demand
2026-08-16 19:50:03.329675: Saved current settings to /config/predbat_config.json
2026-08-16 19:50:03.330095: Compare, best tariff: current metric 318.25p
2026-08-16 19:50:23.180812: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 19:50:24.265223: Processing 1345 30-minute periods for power integration
2026-08-16 19:50:24.370274: ML Component: Car charging hold False, car energy reported load False
2026-08-16 19:50:24.473552: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:50:24.579744: ML Temperature data points: 49211
2026-08-16 19:50:24.860320: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 19:50:24.899111: ML Component: Data fetch completed, load data age 58.0 days, 16774 data points
2026-08-16 19:50:24.899246: ML Component: No training needed, model age is 1.74 hours
2026-08-16 19:50:24.899315: ML Component: Generating predictions load data age 58.0 days, 16774 data points
2026-08-16 19:50:25.045618: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0313 max_dow {0: 0.09092812499813735, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-16 19:50:25.490719: ML Component: Generated 576 predictions (total 26.19 kWh over 48h)
2026-08-16 19:50:25.531830: ML Component: Prediction cycle completed
2026-08-16 19:50:25.650400: ML Component: Saved 16774 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 19:50:33.443848: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:50:33.444196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:50:33.444243: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:50:33.444404: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:50:33.444480: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:50:33.444503: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:50:33.444520: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:52:33.677865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:52:33.678284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:52:33.678360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:52:33.678645: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:52:33.678702: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:52:33.678744: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:52:33.678780: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:54:33.909356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:54:33.909731: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:54:33.909799: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:54:33.910024: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:54:33.910085: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:54:33.910120: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:54:33.910156: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:55:00.033213: --------------- PredBat - update at 2026-08-16 19:55:00+01:00 with clock skew 0 minutes, minutes now 1195
2026-08-16 19:55:00.034040: Saved current settings to /config/predbat_config.json
2026-08-16 19:55:00.034245: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 19:55:00.034347: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 19:55:00.034467: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 19:55:00.062347: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 19:55:00.062533: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 19:55:00.062811: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 19:55:00.063405: 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-16 19:55:00.063585: Predbat mode is set to Control charge & discharge
2026-08-16 19:55:00.262020: Found 21602 load_today datapoints going back 28 days
2026-08-16 19:55:00.262186: Using load_power data to fill gaps in load_today data
2026-08-16 19:55:01.001604: Processing 721 30-minute periods for power integration
2026-08-16 19:55:01.181718: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 19:55:01.181889: Car charging hold False, threshold 6.0kWh
2026-08-16 19:55:01.181941: Current data so far today: load 9.55kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 19:55:01.203613: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 19:55:01.203730: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 19:55:01.205034: Standing charge is set to 46.63p
2026-08-16 19:55:01.341676: 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-16 19:55:01.341990: 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-16 19:55:01.342302: 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-16 19:55:01.342651: 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-16 19:55:01.342952: 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-16 19:55:01.343235: 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-16 19:55:01.343457: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343560: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343654: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343740: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343823: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343913: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.343997: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.344070: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.344235: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 19:55:01.344317: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 19:55:01.351570: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 19:55:01.352026: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 19:55:01.406879: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 19:55:01.407061: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 19:55:01.408906: High export rate found rates in range 99p to -99p
2026-08-16 19:55:01.453160: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 19:55:01.453351: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 19:55:01.453472: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 19:55:01.467378: Battery level now 10.24kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -13.53p, rate_forward 6.87p
2026-08-16 19:55:01.467769: 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-16 19:55:01.525322: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 19:55:01.525493: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 19:55:01.618203: Using weighted-bucket historical load forecast over 14 days
2026-08-16 19:55:01.647212: Today's load divergence 81.15%, in-day adjustment 82.24%, damping 0.95x, yesterday 82.97% today 82.09% blend 17.01%
2026-08-16 19:55:01.647315: Today's predicted so far 11.94kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 11.94kWh forecast extra.
2026-08-16 19:55:01.647347: Today's actual load so far 9.51kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 19:55:01.683006: Inverter 0: Type SK Sunsynk
2026-08-16 19:55:01.683099: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:55:01.683294: Reserve min: 7%, battery_min: 7%
2026-08-16 19:55:01.683371: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:55:01.683656: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 334W, current battery voltage 51.2V, grid power -55W, load power 393W, PV Power 0W
2026-08-16 19:55:01.683815: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:55:01.683901: Inverter 0 scheduled charge enable is False
2026-08-16 19:55:01.683930: Inverter 0 charge windows currently []
2026-08-16 19:55:01.683955: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:55:01.684060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:55:01.684095: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:55:01.684131: Inverter 0 scheduled discharge enable is False
2026-08-16 19:55:01.684255: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:55:01.684292: Inverter 0 discharge windows currently []
2026-08-16 19:55:01.684315: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:55:01.684336: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:55:01.684355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:55:01.742616: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 19:55:01.742725: Plan was last updated on 2026-08-16 19:45:00+01:00 and is now 10.0 minutes old
2026-08-16 19:55:01.743025: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 19:55:01.743075: Best export window [  ]
2026-08-16 19:55:01.743827: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:55:01.746865: Load divergence over 8.0 hours mean 609.78W, min 339.0W, max 1060.8W, std dev 220.24W, divergence 18.06%
2026-08-16 19:55:01.765927: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:55:01.766070: LoadML is_calculating False
2026-08-16 19:55:01.766167: Creating pool of 12 processes to match your CPU count
2026-08-16 19:55:01.899541: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 664.85p, metric_keep 226.84kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 27.82kWh, PV 0.0kWh
2026-08-16 19:55:02.041584: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 19:55:02.094443: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 693.95p, metric_keep 242.26kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 28.69kWh, PV 0.0kWh
2026-08-16 19:55:02.185199: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 440.97p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.69kWh, PV 0.0kWh
2026-08-16 19:55:02.290944: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 439.23p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.82kWh, PV 0.0kWh
2026-08-16 19:55:02.292477: Saving plan best values to HA entities
2026-08-16 19:55:02.483507: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:55:02.491736: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:55:02.499637: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.35kWh, house 0.0kWh, export 0.0kWh, metric 439.23p, metric10 440.97p
2026-08-16 19:55:02.605642: Marginal costs baseline metric (no standing charge): 392.5921
2026-08-16 19:55:02.917537: Marginal energy costs matrix computed: min=4.75 max=30.13
2026-08-16 19:55:02.988193: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1195, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:55:02.989034: - Your estimated bill for today is £3.18 and tomorrow is £1.38
2026-08-16 19:55:02.989121: - 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-16 19:55:02.989146: - The battery is currently at 64% and is in eco mode for the next 3 and a half hours.
2026-08-16 19:55:02.989165: - For the next 48 hours there will be no solar generation.
2026-08-16 19:55:02.989182: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 19:55:02.989200: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-16 19:55:02.989222: 
2026-08-16 19:55:03.050618: Plan calculation took 1.31 seconds
2026-08-16 19:55:03.054994: No high rate period found
2026-08-16 19:55:03.108119: Import threshold used for optimisation was 8.0p
2026-08-16 19:55:03.165507: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 19:55:03.172242: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:55:03.172383: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:55:03.172511: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:55:03.172787: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:55:03.172876: No export window planned
2026-08-16 19:55:03.173039: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:55:03.173084: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:55:03.173225: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:55:03.173403: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:55:03.173489: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:55:03.173557: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:55:03.173648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173719: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173746: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173777: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.173981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.174006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.174031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.174076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:03.174104: Inverter 0 count register writes 0
2026-08-16 19:55:03.190681: 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-16 19:55:03.190863: Recompute is saving previous plan...
2026-08-16 19:55:03.191830: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 19:55:03.191881: Best export window [  ]
2026-08-16 19:55:03.192721: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 19:55:03.195903: Load divergence over 8.0 hours mean 609.78W, min 339.0W, max 1060.8W, std dev 220.24W, divergence 18.06%
2026-08-16 19:55:03.213799: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 19:55:03.213931: LoadML is_calculating False
2026-08-16 19:55:03.214003: Creating pool of 12 processes to match your CPU count
2026-08-16 19:55:03.310485: 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-16 19:55:03.311653: Optimise levels pass started at 2026-08-16 19:55:03
2026-08-16 19:55:03.311753: Optimise all windows, total charge 25 export 1
2026-08-16 19:55:03.712444: >> Region optimisation pass width 960 gives best_metric 492.83p, best_cost 525.29p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 19:55:03.870005: >> Region optimisation pass width 480 gives best_metric 492.83p, best_cost 525.29p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 19:55:04.121000: >> Region optimisation pass width 240 gives best_metric 492.83p, best_cost 525.29p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 19:55:04.699314: >> Region optimisation pass width 120 gives best_metric 492.83p, best_cost 525.29p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 19:55:04.699582: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 19:55:04.699653: Optimise levels pass ended at 2026-08-16 19:55:04, duration 1.4 seconds tried 64 combinations
2026-08-16 19:55:04.699707: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 492.83p, best_keep 0kWh, best_cycle 41.38kWh, best_carbon 0kg, best_import 28.94kWh
2026-08-16 19:55:04.717367: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 19:55:07.463295: Tweak plan optimisation started metric 371.15p, cost 384.18p
2026-08-16 19:55:07.799252: Tweak optimisation finished metric 371.15p, cost 384.18p, metric_keep 0kWh, cycle 20.32kWh, carbon 0kg, import 11.3kWh, changed 8 window(s)
2026-08-16 19:55:07.816656: Swap charge optimisation started metric 371.15p, cost 384.18p, min_improvement_swap 0.1p
2026-08-16 19:55:08.616730: Swap charge optimisation finished metric 371.15p, cost 384.18p
2026-08-16 19:55:08.739643: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 19:55:08.739988: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:55:08.740285: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:55:08.740472: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 19:55:08.777993: Previous plan best metric is 371.15 (cost 384.18) and new plan best metric is 371.15 (cost 384.18)
2026-08-16 19:55:08.778211: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 19:55:08.778342: Plan valid is now true after recompute was False
2026-08-16 19:55:08.805273: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 663.11p, metric_keep 226.26kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 27.6kWh, PV 0.0kWh
2026-08-16 19:55:08.951549: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 19:55:09.013016: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 692.12p, metric_keep 241.68kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 28.46kWh, PV 0.0kWh
2026-08-16 19:55:09.097271: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 433.59p, metric_keep 2.1kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.46kWh, PV 0.0kWh
2026-08-16 19:55:09.180701: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 430.82p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.6kWh, PV 0.0kWh
2026-08-16 19:55:09.180801: Saving plan best values to HA entities
2026-08-16 19:55:09.365155: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 19:55:09.372638: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 19:55:09.379585: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.3kWh, house 0.0kWh, export 0.0kWh, metric 430.82p, metric10 433.59p
2026-08-16 19:55:09.472501: Marginal costs baseline metric (no standing charge): 384.1822
2026-08-16 19:55:09.745265: Marginal energy costs matrix computed: min=4.75 max=30.13
2026-08-16 19:55:09.807874: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1195, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 19:55:09.808498: - Your estimated bill for today is £3.18 and tomorrow is £1.38
2026-08-16 19:55:09.808549: - 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-16 19:55:09.808568: - The battery is currently at 64% and is in eco mode for the next 3 and a half hours.
2026-08-16 19:55:09.808583: - For the next 48 hours there will be no solar generation.
2026-08-16 19:55:09.808597: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 19:55:09.808611: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-16 19:55:09.808625: 
2026-08-16 19:55:09.866918: Plan calculation took 6.68 seconds
2026-08-16 19:55:09.867326: Inverter 0: Type SK Sunsynk
2026-08-16 19:55:09.867396: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 19:55:09.867736: Reserve min: 7%, battery_min: 7%
2026-08-16 19:55:09.867848: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 19:55:09.868311: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 334W, current battery voltage 51.2V, grid power -55W, load power 393W, PV Power 0W
2026-08-16 19:55:09.868641: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:55:09.868784: Inverter 0 scheduled charge enable is False
2026-08-16 19:55:09.868833: Inverter 0 charge windows currently []
2026-08-16 19:55:09.868876: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 19:55:09.869080: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:55:09.869141: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:55:09.869197: Inverter 0 scheduled discharge enable is False
2026-08-16 19:55:09.869444: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:55:09.869498: Inverter 0 discharge windows currently []
2026-08-16 19:55:09.869532: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:55:09.869557: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:55:09.869590: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:55:09.920993: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 19:55:09.921132: Inverter 0 disabled charge window while waiting for schedule (now 08-16 19:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 19:55:09.921200: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:55:09.921388: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:55:09.921478: No export window planned
2026-08-16 19:55:09.921573: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 19:55:09.921604: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 19:55:09.921723: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 19:55:09.921860: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 19:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 19:55:09.921906: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 19:55:09.921956: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 19:55:09.922031: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922111: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922173: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 19:55:09.922358: Inverter 0 count register writes 0
2026-08-16 19:55:09.944110: Total inverter register writes now 844
2026-08-16 19:55:09.975710: Info: Completed run status Demand
2026-08-16 19:55:09.982542: Info: record_status Demand
2026-08-16 19:55:09.988735: Saved current settings to /config/predbat_config.json
2026-08-16 19:55:09.989061: Compare, best tariff: current metric 318.25p
2026-08-16 19:55:49.111939: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:55:49.112191: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:55:49.112234: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:55:49.112380: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:55:49.112441: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:55:49.112471: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:55:49.112496: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 19:57:49.338569: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 19:57:49.338954: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 19:57:49.339011: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 19:57:49.339167: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 19:57:49.339224: Note: Inverter does not support discharge freeze - disabled
2026-08-16 19:57:49.339262: Note: Inverter does not support charge freeze - disabled
2026-08-16 19:57:49.339289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:00:00.598490: --------------- PredBat - update at 2026-08-16 20:00:00+01:00 with clock skew 0 minutes, minutes now 1200
2026-08-16 20:00:00.599255: Saved current settings to /config/predbat_config.json
2026-08-16 20:00:00.599397: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 20:00:00.599540: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:00:00.599671: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:00:00.630170: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:00:00.630360: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:00:00.630600: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:00:00.631213: 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-16 20:00:00.631378: Predbat mode is set to Control charge & discharge
2026-08-16 20:00:00.901759: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:00:00.901927: Using load_power data to fill gaps in load_today data
2026-08-16 20:00:01.748229: Processing 721 30-minute periods for power integration
2026-08-16 20:00:01.947330: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:00:01.947729: Car charging hold False, threshold 6.0kWh
2026-08-16 20:00:01.947793: Current data so far today: load 9.65kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:00:01.971301: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:00:01.971457: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:00:01.972379: Standing charge is set to 46.63p
2026-08-16 20:00:02.104128: 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-16 20:00:02.104579: 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-16 20:00:02.104918: 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-16 20:00:02.105285: 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-16 20:00:02.105642: 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-16 20:00:02.105962: 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-16 20:00:02.106318: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.106520: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.106701: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.106871: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107042: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107217: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107369: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107540: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107868: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:00:02.107968: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:00:02.114751: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:00:02.115532: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:00:02.167155: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:00:02.167314: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:00:02.169069: High export rate found rates in range 99p to -99p
2026-08-16 20:00:02.206481: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:00:02.206631: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:00:02.206721: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:00:02.226552: Battery level now 10.24kWh, -1hr ago 10.56kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -13.53p, rate_forward 6.87p
2026-08-16 20:00:02.227225: 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-16 20:00:02.318227: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.12p, export 0.0p, carbon 0.0kg
2026-08-16 20:00:02.318403: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:00:02.403414: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:00:02.430110: Today's load divergence 81.21%, in-day adjustment 82.29%, damping 0.95x, yesterday 82.97% today 82.15% blend 16.67%
2026-08-16 20:00:02.430211: Today's predicted so far 12.08kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.08kWh forecast extra.
2026-08-16 20:00:02.430240: Today's actual load so far 9.66kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 20:00:02.472032: 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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 20:00:02.472859: Sensor changes require a replan, will recompute the plan
2026-08-16 20:00:02.473098: Inverter 0: Type SK Sunsynk
2026-08-16 20:00:02.473160: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:00:02.473404: Reserve min: 7%, battery_min: 7%
2026-08-16 20:00:02.473530: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:00:02.473907: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 365W, current battery voltage 51.2V, grid power -55W, load power 423W, PV Power 0W
2026-08-16 20:00:02.474153: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:00:02.474271: Inverter 0 scheduled charge enable is False
2026-08-16 20:00:02.474315: Inverter 0 charge windows currently []
2026-08-16 20:00:02.474351: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:00:02.474516: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:00:02.474577: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:00:02.474633: Inverter 0 scheduled discharge enable is False
2026-08-16 20:00:02.474964: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:00:02.475399: Inverter 0 discharge windows currently []
2026-08-16 20:00:02.475481: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:00:02.475513: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:00:02.475545: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:00:02.550624: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:00:02.550718: Will recompute the plan as it is invalid
2026-08-16 20:00:02.550833: Recompute is saving previous plan...
2026-08-16 20:00:02.552046: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:00:02.552105: Best export window [  ]
2026-08-16 20:00:02.553229: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:00:02.556780: Load divergence over 8.0 hours mean 609.76W, min 339.0W, max 1100.4W, std dev 221.84W, divergence 18.19%
2026-08-16 20:00:02.572693: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:00:02.572815: LoadML is_calculating False
2026-08-16 20:00:02.572875: Creating pool of 12 processes to match your CPU count
2026-08-16 20:00:02.677117: 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-16 20:00:02.678865: Optimise levels pass started at 2026-08-16 20:00:02
2026-08-16 20:00:02.678983: Optimise all windows, total charge 25 export 1
2026-08-16 20:00:03.415588: >> Region optimisation pass width 960 gives best_metric 492.57p, best_cost 522.93p, best_cycle 41.07kWh, best_import 28.65kWh
2026-08-16 20:00:03.613603: >> Region optimisation pass width 480 gives best_metric 491.89p, best_cost 514.18p, best_cycle 42.21kWh, best_import 27.55kWh
2026-08-16 20:00:03.908221: >> Region optimisation pass width 240 gives best_metric 491.89p, best_cost 514.18p, best_cycle 42.21kWh, best_import 27.55kWh
2026-08-16 20:00:04.515223: >> Region optimisation pass width 120 gives best_metric 491.89p, best_cost 514.18p, best_cycle 42.21kWh, best_import 27.55kWh
2026-08-16 20:00:04.515511: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:00:04.515626: Optimise levels pass ended at 2026-08-16 20:00:04, duration 1.8 seconds tried 66 combinations
2026-08-16 20:00:04.515737: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 491.89p, best_keep 0kWh, best_cycle 42.21kWh, best_carbon 0kg, best_import 27.55kWh
2026-08-16 20:00:04.541696: Starting detailed optimisation end_record 08-17 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, 0, 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-16 20:00:07.021174: Tweak plan optimisation started metric 373.12p, cost 385.84p
2026-08-16 20:00:07.329011: Tweak optimisation finished metric 373.12p, cost 385.84p, metric_keep 0.01kWh, cycle 24.27kWh, carbon 0kg, import 11.51kWh, changed 8 window(s)
2026-08-16 20:00:07.352589: Swap charge optimisation started metric 373.12p, cost 385.84p, min_improvement_swap 0.1p
2026-08-16 20:00:08.105460: Swap charge optimisation finished metric 373.12p, cost 385.84p
2026-08-16 20:00:08.177756: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 20:00:08.178067: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:00:08.178257: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:00:08.178395: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:00:08.221513: Previous plan best metric is 370.87 (cost 383.93) and new plan best metric is 373.12 (cost 385.84)
2026-08-16 20:00:08.221811: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:00:08.222061: Plan valid is now true after recompute was False
2026-08-16 20:00:08.273326: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 662.17p, metric_keep 225.46kWh, min_soc 1.12kWh @ 08-17 09:15:00, load 27.68kWh, PV 0.0kWh
2026-08-16 20:00:08.422099: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 20:00:08.472625: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 691.2p, metric_keep 240.67kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 28.54kWh, PV 0.0kWh
2026-08-16 20:00:08.570299: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 433.32p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.54kWh, PV 0.0kWh
2026-08-16 20:00:08.697712: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 430.57p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.68kWh, PV 0.0kWh
2026-08-16 20:00:08.697813: Saving plan best values to HA entities
2026-08-16 20:00:08.900208: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:00:08.907766: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:00:08.914344: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.27kWh, house 0.0kWh, export 0.0kWh, metric 430.57p, metric10 433.32p
2026-08-16 20:00:09.018039: Marginal costs baseline metric (no standing charge): 383.9315
2026-08-16 20:00:09.351364: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 20:00:09.481649: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1200, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:00:09.483088: - Your estimated bill for today is £3.17 and tomorrow is £1.38
2026-08-16 20:00:09.483160: - 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-16 20:00:09.483190: - The battery is currently at 64% and is in eco mode for the next 3 and a half hours.
2026-08-16 20:00:09.483225: - For the next 48 hours there will be no solar generation.
2026-08-16 20:00:09.483267: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:00:09.483292: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-16 20:00:09.483314: 
2026-08-16 20:00:09.586509: Plan calculation took 7.04 seconds
2026-08-16 20:00:09.593718: Saved plan to storage
2026-08-16 20:00:09.599444: No high rate period found
2026-08-16 20:00:09.665306: Import threshold used for optimisation was 8.0p
2026-08-16 20:00:09.725584: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:00:09.732427: Inverter 0: Type SK Sunsynk
2026-08-16 20:00:09.732529: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:00:09.732829: Reserve min: 7%, battery_min: 7%
2026-08-16 20:00:09.732941: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:00:09.733379: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 361W, current battery voltage 51.2V, grid power -54W, load power 419W, PV Power 0W
2026-08-16 20:00:09.733729: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:00:09.733877: Inverter 0 scheduled charge enable is False
2026-08-16 20:00:09.733933: Inverter 0 charge windows currently []
2026-08-16 20:00:09.733989: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:00:09.734156: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:00:09.734209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:00:09.734282: Inverter 0 scheduled discharge enable is False
2026-08-16 20:00:09.734491: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:00:09.734540: Inverter 0 discharge windows currently []
2026-08-16 20:00:09.734569: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:00:09.734604: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:00:09.734672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:00:09.800526: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 20:00:09.800736: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:00:09.800827: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:00:09.801099: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:00:09.801199: No export window planned
2026-08-16 20:00:09.801319: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:00:09.801351: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:00:09.801510: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:00:09.801681: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:00:09.801735: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:00:09.801794: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:00:09.801884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.801919: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.801946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.801971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.801996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:00:09.802284: Inverter 0 count register writes 0
2026-08-16 20:00:09.843731: Total inverter register writes now 844
2026-08-16 20:00:09.901214: Info: Completed run status Demand
2026-08-16 20:00:09.908347: Info: record_status Demand
2026-08-16 20:00:09.916194: Saved current settings to /config/predbat_config.json
2026-08-16 20:00:09.916644: Compare, best tariff: current metric 318.25p
2026-08-16 20:00:49.058774: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:00:49.059112: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:00:49.059198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:00:49.059399: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:00:49.059468: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:00:49.059495: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:00:49.059531: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:02:49.285569: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:02:49.285851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:02:49.285907: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:02:49.286130: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:02:49.286177: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:02:49.286200: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:02:49.286218: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:05:00.540740: --------------- PredBat - update at 2026-08-16 20:05:00+01:00 with clock skew 0 minutes, minutes now 1205
2026-08-16 20:05:00.541584: Saved current settings to /config/predbat_config.json
2026-08-16 20:05:00.541716: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 20:05:00.541785: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:05:00.541875: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:05:00.561961: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:05:00.562092: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:05:00.562262: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:05:00.562800: 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-16 20:05:00.562924: Predbat mode is set to Control charge & discharge
2026-08-16 20:05:00.847073: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:05:00.847244: Using load_power data to fill gaps in load_today data
2026-08-16 20:05:01.750108: Processing 721 30-minute periods for power integration
2026-08-16 20:05:01.939497: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:05:01.939647: Car charging hold False, threshold 6.0kWh
2026-08-16 20:05:01.939693: Current data so far today: load 9.7kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:05:01.958054: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:05:01.958174: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:05:01.958890: Standing charge is set to 46.63p
2026-08-16 20:05:02.058286: 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-16 20:05:02.058573: 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-16 20:05:02.058805: 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-16 20:05:02.059063: 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-16 20:05:02.059240: 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-16 20:05:02.059484: 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-16 20:05:02.059666: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.059792: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.059878: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.059972: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060053: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060165: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060334: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060469: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060667: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:05:02.060728: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:05:02.066130: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:05:02.066596: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:05:02.111530: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:05:02.111663: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:05:02.112989: High export rate found rates in range 99p to -99p
2026-08-16 20:05:02.147079: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:05:02.147220: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:05:02.147282: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:05:02.162192: Battery level now 10.24kWh, -1hr ago 10.41kWh, at midnight 12.21kWh, battery value change in the last hour -1.15p, change today -13.53p, rate_forward 6.87p
2026-08-16 20:05:02.162661: 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-16 20:05:02.231046: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.77p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 20:05:02.231208: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:05:02.333458: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:05:02.365282: Today's load divergence 81.2%, in-day adjustment 82.28%, damping 0.95x, yesterday 82.97% today 82.14% blend 16.32%
2026-08-16 20:05:02.365389: Today's predicted so far 12.19kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.19kWh forecast extra.
2026-08-16 20:05:02.365460: Today's actual load so far 9.77kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 20:05:02.406523: Inverter 0: Type SK Sunsynk
2026-08-16 20:05:02.406619: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:05:02.406834: Reserve min: 7%, battery_min: 7%
2026-08-16 20:05:02.406919: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:05:02.407195: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 360W, current battery voltage 51.2V, grid power -55W, load power 416W, PV Power 0W
2026-08-16 20:05:02.407380: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:05:02.407486: Inverter 0 scheduled charge enable is False
2026-08-16 20:05:02.407525: Inverter 0 charge windows currently []
2026-08-16 20:05:02.407563: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:05:02.407691: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:05:02.407729: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:05:02.407765: Inverter 0 scheduled discharge enable is False
2026-08-16 20:05:02.407934: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:05:02.407985: Inverter 0 discharge windows currently []
2026-08-16 20:05:02.408022: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:05:02.408047: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:05:02.408065: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:05:02.473642: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:05:02.473747: Plan was last updated on 2026-08-16 20:00:00+01:00 and is now 5.0 minutes old
2026-08-16 20:05:02.473966: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:05:02.474008: Best export window [  ]
2026-08-16 20:05:02.474888: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:05:02.478021: Load divergence over 8.0 hours mean 609.85W, min 335.4W, max 1131.0W, std dev 231.89W, divergence 19.01%
2026-08-16 20:05:02.496667: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:05:02.496796: LoadML is_calculating False
2026-08-16 20:05:02.496864: Creating pool of 12 processes to match your CPU count
2026-08-16 20:05:02.675508: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 661.63p, metric_keep 224.63kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.79kWh, PV 0.0kWh
2026-08-16 20:05:02.905867: Battery has 13.25 hours left - now at 10.24kWh
2026-08-16 20:05:02.976809: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 690.55p, metric_keep 239.63kWh, min_soc 1.12kWh @ 08-17 08:20:00, load 28.65kWh, PV 0.0kWh
2026-08-16 20:05:03.105232: predict best10 end_record 08-17 23:35:00, final soc 1.81kWh, metric 436.65p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.65kWh, PV 0.0kWh
2026-08-16 20:05:03.245913: predict best end_record 08-17 23:35:00, final soc 2.44kWh, metric 434.43p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.79kWh, PV 0.0kWh
2026-08-16 20:05:03.246023: Saving plan best values to HA entities
2026-08-16 20:05:03.568631: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:05:03.580335: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:05:03.591293: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.75kWh, house 0.0kWh, export 0.0kWh, metric 434.43p, metric10 436.65p
2026-08-16 20:05:05.661137: Marginal costs baseline metric (no standing charge): 387.7911
2026-08-16 20:05:05.927386: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 20:05:06.001318: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:05:06.001927: - Your estimated bill for today is £3.17 and tomorrow is £1.37
2026-08-16 20:05:06.001977: - 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-16 20:05:06.001996: - The battery is currently at 64% and is in eco mode for the next 3 and a half hours.
2026-08-16 20:05:06.002011: - For the next 48 hours there will be no solar generation.
2026-08-16 20:05:06.002025: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:05:06.002045: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-16 20:05:06.002059: 
2026-08-16 20:05:06.075846: Plan calculation took 3.60 seconds
2026-08-16 20:05:06.081380: No high rate period found
2026-08-16 20:05:06.186353: Import threshold used for optimisation was 8.0p
2026-08-16 20:05:06.253842: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:05:06.261719: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-16 20:05:06.261908: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:05:06.262151: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:05:06.262659: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:05:06.262797: No export window planned
2026-08-16 20:05:06.262994: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:05:06.263043: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:05:06.263267: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:05:06.263537: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:05:06.263673: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:05:06.263812: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:05:06.263996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264092: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264343: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:05:06.264810: Inverter 0 count register writes 0
2026-08-16 20:05:06.284013: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:05:06.290730: Total inverter register writes now 844
2026-08-16 20:05:06.343464: Info: Completed run status Demand
2026-08-16 20:05:06.351547: Info: record_status Demand
2026-08-16 20:05:06.360425: Saved current settings to /config/predbat_config.json
2026-08-16 20:05:06.360911: Compare, best tariff: current metric 318.25p
2026-08-16 20:05:48.489108: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:05:48.489386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:05:48.489437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:05:48.489682: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:05:48.489728: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:05:48.489750: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:05:48.489768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:07:48.722807: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:07:48.723060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:07:48.723104: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:07:48.723266: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:07:48.723358: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:07:48.723381: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:07:48.723399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:09:48.945442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:09:48.945717: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:09:48.945760: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:09:48.945960: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:09:48.946024: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:09:48.946045: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:09:48.946063: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:10:00.041284: --------------- PredBat - update at 2026-08-16 20:10:00+01:00 with clock skew 0 minutes, minutes now 1210
2026-08-16 20:10:00.042134: Saved current settings to /config/predbat_config.json
2026-08-16 20:10:00.042278: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 20:10:00.042375: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:10:00.042520: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:10:00.067575: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:10:00.067704: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:10:00.067879: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:10:00.068477: 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-16 20:10:00.068606: Predbat mode is set to Control charge & discharge
2026-08-16 20:10:00.291552: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:10:00.291741: Using load_power data to fill gaps in load_today data
2026-08-16 20:10:01.183704: Processing 721 30-minute periods for power integration
2026-08-16 20:10:01.381135: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:10:01.381295: Car charging hold False, threshold 6.0kWh
2026-08-16 20:10:01.381346: Current data so far today: load 9.6kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:10:01.401048: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:10:01.401176: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:10:01.402111: Standing charge is set to 46.63p
2026-08-16 20:10:01.495380: 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-16 20:10:01.495732: 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-16 20:10:01.495989: 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-16 20:10:01.496271: 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-16 20:10:01.496585: 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-16 20:10:01.496828: 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-16 20:10:01.497098: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497248: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497384: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497546: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497682: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497827: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.497956: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.498078: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.498316: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:10:01.498389: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:10:01.503952: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:10:01.504544: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:10:01.556265: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:10:01.556399: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:10:01.557779: High export rate found rates in range 99p to -99p
2026-08-16 20:10:01.593849: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:10:01.594004: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:10:01.594065: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:10:01.613863: Battery level now 10.24kWh, -1hr ago 10.41kWh, at midnight 12.21kWh, battery value change in the last hour -1.15p, change today -13.53p, rate_forward 6.87p
2026-08-16 20:10:01.614247: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:10:01.681822: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 20:10:01.681967: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:10:01.781724: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:10:01.814402: Today's load divergence 80.04%, in-day adjustment 81.35%, damping 0.95x, yesterday 82.97% today 81.04% blend 15.97%
2026-08-16 20:10:01.814537: Today's predicted so far 12.19kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 12.19kWh forecast extra.
2026-08-16 20:10:01.814570: Today's actual load so far 9.64kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 20:10:01.848037: Inverter 0: Type SK Sunsynk
2026-08-16 20:10:01.848132: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:10:01.848341: Reserve min: 7%, battery_min: 7%
2026-08-16 20:10:01.848422: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:10:01.848709: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 396W, current battery voltage 51.2V, grid power -54W, load power 454W, PV Power 0W
2026-08-16 20:10:01.848869: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:10:01.848997: Inverter 0 scheduled charge enable is False
2026-08-16 20:10:01.849040: Inverter 0 charge windows currently []
2026-08-16 20:10:01.849067: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:10:01.849180: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:10:01.849216: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:10:01.849251: Inverter 0 scheduled discharge enable is False
2026-08-16 20:10:01.849376: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:10:01.849412: Inverter 0 discharge windows currently []
2026-08-16 20:10:01.849434: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:10:01.849469: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:10:01.849489: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:10:01.918434: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:10:01.918621: Plan was last updated on 2026-08-16 20:00:00+01:00 and is now 10.0 minutes old
2026-08-16 20:10:01.918884: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:10:01.918931: Best export window [  ]
2026-08-16 20:10:01.919774: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:10:01.923019: Load divergence over 8.0 hours mean 608.17W, min 355.8W, max 1105.2W, std dev 229.93W, divergence 18.9%
2026-08-16 20:10:01.946436: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:10:01.946624: LoadML is_calculating False
2026-08-16 20:10:01.946708: Creating pool of 12 processes to match your CPU count
2026-08-16 20:10:02.077831: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 665.0p, metric_keep 227.0kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 27.73kWh, PV 0.0kWh
2026-08-16 20:10:02.214940: Battery has 13.0 hours left - now at 10.08kWh
2026-08-16 20:10:02.257273: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 693.9p, metric_keep 242.09kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 28.59kWh, PV 0.0kWh
2026-08-16 20:10:02.335249: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 440.94p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.59kWh, PV 0.0kWh
2026-08-16 20:10:02.412741: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 439.27p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 20:10:02.413000: Saving plan best values to HA entities
2026-08-16 20:10:02.582201: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:10:02.588285: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:10:02.595170: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.36kWh, house 0.0kWh, export 0.0kWh, metric 439.27p, metric10 440.94p
2026-08-16 20:10:02.680185: Marginal costs baseline metric (no standing charge): 392.6313
2026-08-16 20:10:02.929648: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 20:10:02.995935: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:10:02.996567: - Your estimated bill for today is £3.17 and tomorrow is £1.38
2026-08-16 20:10:02.996612: - 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-16 20:10:02.996649: - The battery is currently at 63% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 20:10:02.996671: - For the next 48 hours there will be no solar generation.
2026-08-16 20:10:02.996685: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:10:02.996700: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 20:10:02.996718: 
2026-08-16 20:10:03.046668: Plan calculation took 1.13 seconds
2026-08-16 20:10:03.049746: No high rate period found
2026-08-16 20:10:03.093969: Import threshold used for optimisation was 8.0p
2026-08-16 20:10:03.147160: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:10:03.152320: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:10:03.152436: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:10:03.152597: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:10:03.152906: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:10:03.153030: No export window planned
2026-08-16 20:10:03.153232: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:10:03.153270: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:10:03.153425: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:10:03.153627: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:10:03.153688: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:10:03.153783: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:10:03.153913: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.153966: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154012: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154207: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:03.154582: Inverter 0 count register writes 0
2026-08-16 20:10:03.168725: 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-16 20:10:03.168871: Recompute is saving previous plan...
2026-08-16 20:10:03.169743: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:10:03.169794: Best export window [  ]
2026-08-16 20:10:03.170531: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:10:03.173110: Load divergence over 8.0 hours mean 608.17W, min 355.8W, max 1105.2W, std dev 229.93W, divergence 18.9%
2026-08-16 20:10:03.187755: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:10:03.187856: LoadML is_calculating False
2026-08-16 20:10:03.187923: Creating pool of 12 processes to match your CPU count
2026-08-16 20:10:03.266721: 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-16 20:10:03.267591: Optimise levels pass started at 2026-08-16 20:10:03
2026-08-16 20:10:03.267640: Optimise all windows, total charge 25 export 1
2026-08-16 20:10:03.644928: >> Region optimisation pass width 960 gives best_metric 494.08p, best_cost 525.3p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 20:10:03.791499: >> Region optimisation pass width 480 gives best_metric 494.08p, best_cost 525.3p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 20:10:04.109478: >> Region optimisation pass width 240 gives best_metric 494.08p, best_cost 525.3p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 20:10:04.760273: >> Region optimisation pass width 120 gives best_metric 494.08p, best_cost 525.3p, best_cycle 41.38kWh, best_import 28.94kWh
2026-08-16 20:10:04.760572: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:10:04.760655: Optimise levels pass ended at 2026-08-16 20:10:04, duration 1.5 seconds tried 78 combinations
2026-08-16 20:10:04.760716: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 494.08p, best_keep 0kWh, best_cycle 41.38kWh, best_carbon 0kg, best_import 28.94kWh
2026-08-16 20:10:04.777575: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 20:10:07.409224: Tweak plan optimisation started metric 371.16p, cost 384.21p
2026-08-16 20:10:07.773003: Tweak optimisation finished metric 371.16p, cost 384.21p, metric_keep 0kWh, cycle 20.15kWh, carbon 0kg, import 11.31kWh, changed 8 window(s)
2026-08-16 20:10:07.795692: Swap charge optimisation started metric 371.16p, cost 384.21p, min_improvement_swap 0.1p
2026-08-16 20:10:08.780095: Swap charge optimisation finished metric 371.16p, cost 384.21p
2026-08-16 20:10:08.936655: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 20:10:08.937210: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:10:08.937705: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:10:08.937926: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:10:08.981244: Previous plan best metric is 371.16 (cost 384.21) and new plan best metric is 371.16 (cost 384.21)
2026-08-16 20:10:08.981855: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:10:08.982050: Plan valid is now true after recompute was False
2026-08-16 20:10:09.014431: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 663.25p, metric_keep 226.41kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 27.51kWh, PV 0.0kWh
2026-08-16 20:10:09.146421: Battery has 13.0 hours left - now at 10.08kWh
2026-08-16 20:10:09.197481: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 692.06p, metric_keep 241.5kWh, min_soc 1.12kWh @ 08-17 08:10:00, load 28.36kWh, PV 0.0kWh
2026-08-16 20:10:09.282366: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 433.55p, metric_keep 2.14kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 20:10:09.371114: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 430.84p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.51kWh, PV 0.0kWh
2026-08-16 20:10:09.371217: Saving plan best values to HA entities
2026-08-16 20:10:09.564430: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:10:09.572197: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:10:09.580336: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.31kWh, house 0.0kWh, export 0.0kWh, metric 430.84p, metric10 433.55p
2026-08-16 20:10:09.671134: Marginal costs baseline metric (no standing charge): 384.2094
2026-08-16 20:10:09.983883: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 20:10:10.059606: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1210, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:10:10.060422: - Your estimated bill for today is £3.17 and tomorrow is £1.38
2026-08-16 20:10:10.060495: - 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-16 20:10:10.060521: - The battery is currently at 63% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 20:10:10.060540: - For the next 48 hours there will be no solar generation.
2026-08-16 20:10:10.060557: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:10:10.060582: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 20:10:10.060637: 
2026-08-16 20:10:10.131029: Plan calculation took 6.96 seconds
2026-08-16 20:10:10.131525: Inverter 0: Type SK Sunsynk
2026-08-16 20:10:10.131608: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:10:10.131902: Reserve min: 7%, battery_min: 7%
2026-08-16 20:10:10.131989: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:10:10.132391: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 396W, current battery voltage 51.2V, grid power -54W, load power 454W, PV Power 0W
2026-08-16 20:10:10.132693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:10:10.132812: Inverter 0 scheduled charge enable is False
2026-08-16 20:10:10.132852: Inverter 0 charge windows currently []
2026-08-16 20:10:10.132884: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:10:10.133033: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:10:10.133079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:10:10.133119: Inverter 0 scheduled discharge enable is False
2026-08-16 20:10:10.133252: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:10:10.133290: Inverter 0 discharge windows currently []
2026-08-16 20:10:10.133314: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:10:10.133337: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:10:10.133354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:10:10.204538: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:10:10.204703: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:10:10.204781: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:10:10.205025: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:10:10.205127: No export window planned
2026-08-16 20:10:10.205239: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:10:10.205269: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:10:10.205408: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:10:10.205596: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:10:10.205654: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:10:10.205714: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:10:10.205811: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205911: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.205987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:10:10.206250: Inverter 0 count register writes 0
2026-08-16 20:10:10.232475: Total inverter register writes now 844
2026-08-16 20:10:10.270878: Info: Completed run status Demand
2026-08-16 20:10:10.278793: Info: record_status Demand
2026-08-16 20:10:10.287950: Saved current settings to /config/predbat_config.json
2026-08-16 20:10:10.288296: Compare, best tariff: current metric 318.25p
2026-08-16 20:10:26.794174: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 20:10:27.849094: Processing 1345 30-minute periods for power integration
2026-08-16 20:10:27.957728: ML Component: Car charging hold False, car energy reported load False
2026-08-16 20:10:28.063431: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:10:28.166397: ML Temperature data points: 49191
2026-08-16 20:10:28.451139: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 20:10:28.494546: ML Component: Data fetch completed, load data age 58.0 days, 16778 data points
2026-08-16 20:10:28.494676: ML Component: Starting fine-tune training (2h interval), model age is 2.0694566091666666 hours
2026-08-16 20:10:28.494703: ML Component: Doing training...
2026-08-16 20:10:28.511051: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 20:10:28.511169: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.3 days)
2026-08-16 20:10:28.573241: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 20:10:28.573370: ML Predictor: Starting initial training with 30 epochs
2026-08-16 20:10:29.214242: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 20:10:33.782337: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 20:10:33.833911: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0478) load(mean=0.0588 std=0.0470) 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-16 20:10:49.247198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:10:49.247526: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:10:49.247584: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:10:49.247753: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:10:49.247800: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:10:49.247828: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:10:49.247946: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:11:01.299765: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0185 val_mae=0.0066 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 20:11:27.531641: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0196 val_mae=0.0059 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-16 20:11:54.652498: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0177 val_mae=0.0052 kWh val_bias=+0.0016 kWh (+2.2%) combined=0.0032 kWh ema_combined=0.0034 kWh
2026-08-16 20:12:20.801566: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0167 val_mae=0.0045 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0030 kWh ema_combined=0.0033 kWh
2026-08-16 20:12:46.356353: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0162 val_mae=0.0050 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0037 kWh ema_combined=0.0034 kWh
2026-08-16 20:13:03.681956: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:13:03.682251: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:13:03.682303: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:13:03.682494: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:13:03.682545: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:13:03.682573: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:13:03.682694: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:13:13.395821: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0144 val_mae=0.0045 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0024 kWh ema_combined=0.0031 kWh
2026-08-16 20:13:40.240797: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0123 val_mae=0.0039 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-16 20:14:06.367503: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0113 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-16 20:14:24.827253: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 20:14:24.982630: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 20:14:34.583961: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0117 val_mae=0.0037 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-16 20:14:52.411344: Info: HAHistory: Pruning history data started.
2026-08-16 20:14:52.414883: Info: HAHistory: Pruning history data completed.
2026-08-16 20:15:00.042364: --------------- PredBat - update at 2026-08-16 20:15:00+01:00 with clock skew 0 minutes, minutes now 1215
2026-08-16 20:15:00.043877: Saved current settings to /config/predbat_config.json
2026-08-16 20:15:00.044318: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 20:15:00.044602: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:15:00.044918: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:15:00.109016: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:15:00.109171: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:15:00.109411: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:15:00.110094: 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-16 20:15:00.110254: Predbat mode is set to Control charge & discharge
2026-08-16 20:15:00.435699: Found 21602 load_today datapoints going back 27 days
2026-08-16 20:15:00.435843: Using load_power data to fill gaps in load_today data
2026-08-16 20:15:01.840164: Processing 721 30-minute periods for power integration
2026-08-16 20:15:02.010658: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:15:02.011102: Car charging hold False, threshold 6.0kWh
2026-08-16 20:15:02.011182: Current data so far today: load 9.6kWh, import 9.1kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:15:02.031908: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:15:02.032174: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:15:02.033108: Standing charge is set to 46.63p
2026-08-16 20:15:02.175861: 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-16 20:15:02.176440: 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-16 20:15:02.176851: 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-16 20:15:02.177349: 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-16 20:15:02.177677: 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-16 20:15:02.178069: 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-16 20:15:02.178424: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.178674: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.178884: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.179097: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.179291: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.179502: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.179712: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.179917: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.180246: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:15:02.180390: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:15:02.186431: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:15:02.186962: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:15:02.266227: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:15:02.266596: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:15:02.268220: High export rate found rates in range 99p to -99p
2026-08-16 20:15:02.352743: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:15:02.352920: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:15:02.373139: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:15:02.399221: Battery level now 10.08kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -14.63p, rate_forward 6.87p
2026-08-16 20:15:02.399968: 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-16 20:15:02.544344: Today's energy total net 9.1kWh, import 9.1kWh, export 0.0kWh, cost 293.76p, import 247.13p, export 0.0p, carbon 0.0kg
2026-08-16 20:15:02.544548: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:15:02.638725: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:15:02.663636: Today's load divergence 79.42%, in-day adjustment 80.85%, damping 0.95x, yesterday 82.97% today 80.45% blend 15.62%
2026-08-16 20:15:02.664071: Today's predicted so far 12.18kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 12.18kWh forecast extra.
2026-08-16 20:15:02.664113: Today's actual load so far 9.57kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 20:15:02.727994: Inverter 0: Type SK Sunsynk
2026-08-16 20:15:02.728104: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:15:02.728362: Reserve min: 7%, battery_min: 7%
2026-08-16 20:15:02.728459: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:15:02.728820: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 419W, current battery voltage 51.2V, grid power -54W, load power 474W, PV Power 0W
2026-08-16 20:15:02.729058: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:15:02.729176: Inverter 0 scheduled charge enable is False
2026-08-16 20:15:02.729222: Inverter 0 charge windows currently []
2026-08-16 20:15:02.729256: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:15:02.729398: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:15:02.729442: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:15:02.729487: Inverter 0 scheduled discharge enable is False
2026-08-16 20:15:02.729675: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:15:02.729723: Inverter 0 discharge windows currently []
2026-08-16 20:15:02.729752: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:15:02.729777: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:15:02.729808: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:15:02.866368: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:15:02.866505: Plan was last updated on 2026-08-16 20:10:00+01:00 and is now 5.0 minutes old
2026-08-16 20:15:02.866801: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:15:02.866853: Best export window [  ]
2026-08-16 20:15:02.868115: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:15:02.872897: Load divergence over 8.0 hours mean 606.55W, min 379.8W, max 1153.2W, std dev 232.03W, divergence 19.13%
2026-08-16 20:15:02.908380: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:15:02.908561: LoadML is_calculating True
2026-08-16 20:15:02.921058: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:15:03.006146: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 662.76p, metric_keep 225.18kWh, min_soc 1.12kWh @ 08-17 09:15:00, load 27.58kWh, PV 0.0kWh
2026-08-16 20:15:03.269388: Battery has 13.0 hours left - now at 10.08kWh
2026-08-16 20:15:03.382087: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 691.51p, metric_keep 239.91kWh, min_soc 1.12kWh @ 08-17 08:20:00, load 28.43kWh, PV 0.0kWh
2026-08-16 20:15:03.560465: predict best10 end_record 08-17 23:35:00, final soc 1.78kWh, metric 436.75p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.43kWh, PV 0.0kWh
2026-08-16 20:15:03.653315: predict best end_record 08-17 23:35:00, final soc 2.42kWh, metric 434.59p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.58kWh, PV 0.0kWh
2026-08-16 20:15:03.653422: Saving plan best values to HA entities
2026-08-16 20:15:03.909575: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:15:03.915987: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:15:03.922189: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.77kWh, house 0kWh, export 0.0kWh, metric 434.59p, metric10 436.75p
2026-08-16 20:15:04.085252: Marginal costs baseline metric (no standing charge): 387.9525
2026-08-16 20:15:04.523282: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 20:15:04.633987: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:15:04.634799: - Your estimated bill for today is £3.18 and tomorrow is £1.38
2026-08-16 20:15:04.647084: - 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-16 20:15:04.647151: - The battery is currently at 63% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 20:15:04.647182: - For the next 48 hours there will be no solar generation.
2026-08-16 20:15:04.647297: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:15:04.647396: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 20:15:04.647478: 
2026-08-16 20:15:04.712222: Plan calculation took 1.85 seconds
2026-08-16 20:15:04.717453: No high rate period found
2026-08-16 20:15:04.842533: Import threshold used for optimisation was 8.0p
2026-08-16 20:15:04.946332: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:15:04.973023: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:15:04.973344: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:15:04.973482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:15:04.973809: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:15:04.973951: No export window planned
2026-08-16 20:15:04.974153: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:15:04.974208: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:15:04.974488: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:15:04.974752: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:15:04.974869: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:15:04.974982: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:15:04.975144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975232: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.975899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:15:04.976421: Inverter 0 count register writes 0
2026-08-16 20:15:04.992356: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0117 val_mae=0.0038 kWh val_bias=-0.0015 kWh (-2.0%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-16 20:15:05.025083: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:15:05.050672: Total inverter register writes now 844
2026-08-16 20:15:05.144157: Info: Completed run status Demand
2026-08-16 20:15:05.156460: Info: record_status Demand
2026-08-16 20:15:05.183859: Saved current settings to /config/predbat_config.json
2026-08-16 20:15:05.184276: Compare, best tariff: current metric 318.25p
2026-08-16 20:15:31.535705: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0102 val_mae=0.0049 kWh val_bias=-0.0026 kWh (-3.6%) combined=0.0031 kWh ema_combined=0.0026 kWh
2026-08-16 20:15:49.343722: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:15:49.344020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:15:49.344072: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:15:49.344241: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:15:49.344298: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:15:49.344326: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:15:49.344448: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:15:59.730573: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0087 val_mae=0.0032 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-16 20:16:27.543947: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0083 val_mae=0.0034 kWh val_bias=-0.0011 kWh (-1.6%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-16 20:16:54.448924: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0082 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 20:17:20.031428: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 20:17:46.623529: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0095 val_mae=0.0029 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-16 20:18:03.838852: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:18:03.839262: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:18:03.839402: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:18:03.839675: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:18:03.839804: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:18:03.839932: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:18:03.840039: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:18:12.764241: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=+0.0010 kWh (+1.4%) combined=0.0025 kWh ema_combined=0.0021 kWh
2026-08-16 20:18:36.435812: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0074 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 20:19:03.360250: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0073 val_mae=0.0026 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 20:19:30.431951: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0070 val_mae=0.0028 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 20:19:57.236094: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 20:20:00.306987: --------------- PredBat - update at 2026-08-16 20:20:00+01:00 with clock skew 0 minutes, minutes now 1220
2026-08-16 20:20:00.308421: Saved current settings to /config/predbat_config.json
2026-08-16 20:20:00.308719: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 20:20:00.308846: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:20:00.309050: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:20:00.338828: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:20:00.339146: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:20:00.339551: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:20:00.340393: 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-16 20:20:00.340604: Predbat mode is set to Control charge & discharge
2026-08-16 20:20:00.696015: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:20:00.696232: Using load_power data to fill gaps in load_today data
2026-08-16 20:20:01.880250: Processing 721 30-minute periods for power integration
2026-08-16 20:20:02.229753: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:20:02.230048: Car charging hold False, threshold 6.0kWh
2026-08-16 20:20:02.230128: Current data so far today: load 9.72kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:20:02.251608: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:20:02.252387: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:20:02.253342: Standing charge is set to 46.63p
2026-08-16 20:20:02.344767: 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-16 20:20:02.345335: 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-16 20:20:02.345763: 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-16 20:20:02.346167: 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-16 20:20:02.346572: 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-16 20:20:02.346942: 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-16 20:20:02.347403: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.347662: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.347917: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.348165: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.348416: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.348648: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.348894: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.349190: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.349583: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:20:02.349758: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:20:02.356481: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:20:02.356887: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:20:02.409087: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:20:02.409349: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:20:02.410775: High export rate found rates in range 99p to -99p
2026-08-16 20:20:02.453898: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:20:02.454201: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:20:02.454348: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:20:02.475874: Battery level now 10.08kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -14.63p, rate_forward 6.87p
2026-08-16 20:20:02.476399: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.55p, import 1.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:20:02.589848: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:20:02.591550: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:20:02.800105: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:20:02.831710: Today's load divergence 80.24%, in-day adjustment 81.49%, damping 0.95x, yesterday 82.97% today 81.23% blend 15.28%
2026-08-16 20:20:02.831945: Today's predicted so far 12.21kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 12.21kWh forecast extra.
2026-08-16 20:20:02.831994: Today's actual load so far 9.68kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 20:20:02.909069: Inverter 0: Type SK Sunsynk
2026-08-16 20:20:02.909182: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:20:02.909426: Reserve min: 7%, battery_min: 7%
2026-08-16 20:20:02.909519: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:20:02.909833: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 515W, current battery voltage 51.2V, grid power -54W, load power 570W, PV Power 0W
2026-08-16 20:20:02.910041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:20:02.910150: Inverter 0 scheduled charge enable is False
2026-08-16 20:20:02.910197: Inverter 0 charge windows currently []
2026-08-16 20:20:02.910241: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:20:02.910386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:20:02.910433: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:20:02.910478: Inverter 0 scheduled discharge enable is False
2026-08-16 20:20:02.910644: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:20:02.910691: Inverter 0 discharge windows currently []
2026-08-16 20:20:02.910720: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:20:02.910755: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:20:02.910816: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:20:03.063854: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:20:03.064116: Plan was last updated on 2026-08-16 20:10:00+01:00 and is now 10.0 minutes old
2026-08-16 20:20:03.064455: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:20:03.064513: Best export window [  ]
2026-08-16 20:20:03.065331: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:20:03.068523: Load divergence over 8.0 hours mean 604.89W, min 363.6W, max 1047.6W, std dev 227.13W, divergence 18.77%
2026-08-16 20:20:03.092575: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:20:03.105083: LoadML is_calculating True
2026-08-16 20:20:03.105193: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:20:03.156074: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 665.38p, metric_keep 224.41kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.77kWh, PV 0.0kWh
2026-08-16 20:20:03.369369: Battery has 13.0 hours left - now at 10.08kWh
2026-08-16 20:20:03.456479: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 694.11p, metric_keep 238.98kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.62kWh, PV 0.0kWh
2026-08-16 20:20:03.580269: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.5p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.62kWh, PV 0.0kWh
2026-08-16 20:20:03.721948: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.87p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.77kWh, PV 0.0kWh
2026-08-16 20:20:03.722085: Saving plan best values to HA entities
2026-08-16 20:20:04.074892: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:20:04.083128: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:20:04.091629: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.26kWh, house 0.0kWh, export 0.0kWh, metric 441.87p, metric10 443.5p
2026-08-16 20:20:04.217772: Marginal costs baseline metric (no standing charge): 395.2325
2026-08-16 20:20:04.755197: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 20:20:04.882295: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:20:04.883395: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:20:04.883461: - 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-16 20:20:04.883491: - The battery is currently at 63% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 20:20:04.883633: - For the next 48 hours there will be no solar generation.
2026-08-16 20:20:04.883679: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:20:04.883704: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 20:20:04.883792: 
2026-08-16 20:20:04.953467: Plan calculation took 1.89 seconds
2026-08-16 20:20:04.959373: No high rate period found
2026-08-16 20:20:05.100315: Import threshold used for optimisation was 8.0p
2026-08-16 20:20:05.208148: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:20:05.218118: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:20:05.218302: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:20:05.218409: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:20:05.219965: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:20:05.220119: No export window planned
2026-08-16 20:20:05.220280: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:20:05.220340: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:20:05.229720: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:20:05.230051: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:20:05.230164: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:20:05.230270: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:20:05.230415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.230467: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231280: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231360: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.231957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.232069: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:05.232110: Inverter 0 count register writes 0
2026-08-16 20:20:05.253260: 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-16 20:20:05.253598: Recompute is saving previous plan...
2026-08-16 20:20:05.254894: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:20:05.254973: Best export window [  ]
2026-08-16 20:20:05.256282: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:20:05.260114: Load divergence over 8.0 hours mean 604.89W, min 363.6W, max 1047.6W, std dev 227.13W, divergence 18.77%
2026-08-16 20:20:05.281817: Calculating data from yesterday for savings calculation
2026-08-16 20:20:05.298454: 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-16 20:20:05.363506: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 20:20:05.383091: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 233.09p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 20:20:05.439304: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 20:20:05.516064: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.72kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.46kWh
2026-08-16 20:20:05.666034: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 333.28p, metric_keep 639.19kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 20:20:05.666471: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.43 (adjusted £-1.59) with import 12.49kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 20:20:05.681056: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:20:05.681825: LoadML is_calculating True
2026-08-16 20:20:05.681958: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:20:05.690576: 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-16 20:20:05.691999: Optimise levels pass started at 2026-08-16 20:20:05
2026-08-16 20:20:05.692187: Optimise all windows, total charge 25 export 1
2026-08-16 20:20:07.891123: >> Region optimisation pass width 960 gives best_metric 497.25p, best_cost 525.68p, best_cycle 41.06kWh, best_import 28.57kWh
2026-08-16 20:20:08.308422: >> Region optimisation pass width 480 gives best_metric 497.25p, best_cost 525.68p, best_cycle 41.06kWh, best_import 28.57kWh
2026-08-16 20:20:08.806099: >> Region optimisation pass width 240 gives best_metric 497.25p, best_cost 525.68p, best_cycle 41.06kWh, best_import 28.57kWh
2026-08-16 20:20:10.613692: >> Region optimisation pass width 120 gives best_metric 497.25p, best_cost 525.68p, best_cycle 41.06kWh, best_import 28.57kWh
2026-08-16 20:20:10.614025: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:20:10.614273: Optimise levels pass ended at 2026-08-16 20:20:10, duration 4.9 seconds tried 78 combinations
2026-08-16 20:20:10.614406: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 497.25p, best_keep 0.43kWh, best_cycle 41.06kWh, best_carbon 0kg, best_import 28.57kWh
2026-08-16 20:20:10.636419: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 0, 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-16 20:20:20.895647: Tweak plan optimisation started metric 373.62p, cost 385.33p
2026-08-16 20:20:22.150236: Tweak optimisation finished metric 373.62p, cost 385.33p, metric_keep 0.21kWh, cycle 19.82kWh, carbon 0kg, import 11.02kWh, changed 8 window(s)
2026-08-16 20:20:22.174542: Swap charge optimisation started metric 373.62p, cost 385.33p, min_improvement_swap 0.1p
2026-08-16 20:20:23.060205: Swap charge optimisation finished metric 373.62p, cost 385.33p
2026-08-16 20:20:23.285605: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 72%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 86%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 86%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 86%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 86%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 86%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 86%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 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 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% ] reserve 1.12
2026-08-16 20:20:23.286077: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 72%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:20:23.286284: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 72%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:20:23.286464: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 72%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:20:23.320562: Previous plan best metric is 373.73 (cost 386.81) and new plan best metric is 373.62 (cost 385.33)
2026-08-16 20:20:23.320755: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:20:23.320849: Plan valid is now true after recompute was False
2026-08-16 20:20:23.345784: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 663.62p, metric_keep 223.82kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.55kWh, PV 0.0kWh
2026-08-16 20:20:23.496550: Battery has 13.0 hours left - now at 10.08kWh
2026-08-16 20:20:23.575559: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 692.27p, metric_keep 238.4kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.39kWh, PV 0.0kWh
2026-08-16 20:20:23.724452: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 436.1p, metric_keep 2.11kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.39kWh, PV 0.0kWh
2026-08-16 20:20:23.897279: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 433.44p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.55kWh, PV 0.0kWh
2026-08-16 20:20:23.897412: Saving plan best values to HA entities
2026-08-16 20:20:24.170599: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:20:24.191858: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:20:24.199284: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.21kWh, house 0.0kWh, export 0.0kWh, metric 433.44p, metric10 436.1p
2026-08-16 20:20:24.297413: Marginal costs baseline metric (no standing charge): 386.8066
2026-08-16 20:20:24.664350: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 20:20:24.859569: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1220, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:20:24.861929: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:20:24.862352: - 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-16 20:20:24.862495: - The battery is currently at 63% and is in eco mode for the next 3 and a quarter hours.
2026-08-16 20:20:24.862577: - For the next 48 hours there will be no solar generation.
2026-08-16 20:20:24.862677: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:20:24.864086: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 20:20:24.864198: 
2026-08-16 20:20:24.901444: Plan calculation took 19.65 seconds
2026-08-16 20:20:24.901687: Inverter 0: Type SK Sunsynk
2026-08-16 20:20:24.901726: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:20:24.901939: Reserve min: 7%, battery_min: 7%
2026-08-16 20:20:24.902009: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:20:24.902389: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 515W, current battery voltage 51.2V, grid power -54W, load power 570W, PV Power 0W
2026-08-16 20:20:24.902863: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:20:24.902972: Inverter 0 scheduled charge enable is False
2026-08-16 20:20:24.903010: Inverter 0 charge windows currently []
2026-08-16 20:20:24.903062: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:20:24.903196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:20:24.903236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:20:24.903275: Inverter 0 scheduled discharge enable is False
2026-08-16 20:20:24.903486: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:20:24.903546: Inverter 0 discharge windows currently []
2026-08-16 20:20:24.903582: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:20:24.903616: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:20:24.903648: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:20:24.985922: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:20:24.986150: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:20:24.986253: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:20:24.986486: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:20:24.986574: No export window planned
2026-08-16 20:20:24.986700: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:20:24.986742: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:20:24.986908: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:20:24.987103: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:20:24.987168: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:20:24.987225: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:20:24.996782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.996894: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.996934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.997003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.997062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.997107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.997141: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.997863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.998650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.998715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.998843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.998986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.999024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.999156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:20:24.999199: Inverter 0 count register writes 0
2026-08-16 20:20:25.050653: Total inverter register writes now 844
2026-08-16 20:20:25.134747: Info: Completed run status Demand
2026-08-16 20:20:25.150165: Info: record_status Demand
2026-08-16 20:20:25.163578: Saved current settings to /config/predbat_config.json
2026-08-16 20:20:25.163856: Compare, best tariff: current metric 318.25p
2026-08-16 20:20:39.333363: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0063 val_mae=0.0026 kWh val_bias=+0.0007 kWh (+1.0%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-16 20:21:04.334142: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:21:04.334445: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:21:04.334497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:21:04.334665: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:21:04.334713: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:21:04.334741: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:21:04.334768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:21:05.987993: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0061 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 20:21:31.700227: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-16 20:21:56.733023: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0024 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 20:22:25.284846: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 20:22:50.727887: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 20:23:17.344011: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0056 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 20:23:18.765903: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:23:18.766162: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:23:18.766213: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:23:18.766379: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:23:18.766421: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:23:18.766442: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:23:18.766460: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:23:43.156049: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 20:24:09.545128: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 20:24:09.554350: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%)
2026-08-16 20:24:09.554575: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%)
2026-08-16 20:24:18.086960: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=+0.0002 kWh (+0.2%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 20:24:18.100365: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0023 kWh
2026-08-16 20:24:18.198215: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-16 20:24:18.198376: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 20:24:18.825143: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 20:24:23.763384: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 20:24:23.815133: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0589 std=0.0471) 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-16 20:24:23.892856: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 20:24:23.907075: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 20:24:23.949760: ML Predictor: Baseline (pre-finetune) val_mae=0.0050 kWh val_bias=-0.0002 kWh
2026-08-16 20:24:52.829079: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0058 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0041 kWh ema_combined=0.0041 kWh
2026-08-16 20:25:00.483998: --------------- PredBat - update at 2026-08-16 20:25:00+01:00 with clock skew 0 minutes, minutes now 1225
2026-08-16 20:25:00.484845: Saved current settings to /config/predbat_config.json
2026-08-16 20:25:00.485566: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 20:25:00.485658: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:25:00.485719: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:25:00.522508: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:25:00.522649: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:25:00.522812: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:25:00.523368: 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-16 20:25:00.523493: Predbat mode is set to Control charge & discharge
2026-08-16 20:25:00.788615: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:25:00.788855: Using load_power data to fill gaps in load_today data
2026-08-16 20:25:02.011888: Processing 721 30-minute periods for power integration
2026-08-16 20:25:02.266716: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:25:02.266859: Car charging hold False, threshold 6.0kWh
2026-08-16 20:25:02.266907: Current data so far today: load 9.75kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:25:02.286658: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:25:02.286800: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:25:02.287575: Standing charge is set to 46.63p
2026-08-16 20:25:02.392467: 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-16 20:25:02.393542: 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-16 20:25:02.393924: 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-16 20:25:02.394290: 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-16 20:25:02.394667: 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-16 20:25:02.395016: 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-16 20:25:02.395386: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.395625: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.395849: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.396072: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.396288: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.396529: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.396744: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.396966: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.397332: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:25:02.397458: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:25:02.405891: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:25:02.406527: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:25:02.479515: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:25:02.479716: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:25:02.481919: High export rate found rates in range 99p to -99p
2026-08-16 20:25:02.540759: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:25:02.541265: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:25:02.541565: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:25:02.564535: Battery level now 10.08kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -14.63p, rate_forward 6.87p
2026-08-16 20:25:02.565384: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.41p, import 1.41p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:25:02.730192: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:25:02.730683: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:25:02.903295: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:25:02.933078: Today's load divergence 80.28%, in-day adjustment 81.52%, damping 0.95x, yesterday 82.97% today 81.26% blend 14.93%
2026-08-16 20:25:02.933811: Today's predicted so far 12.24kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 12.24kWh forecast extra.
2026-08-16 20:25:02.933880: Today's actual load so far 9.72kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 20:25:02.987872: Inverter 0: Type SK Sunsynk
2026-08-16 20:25:02.987980: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:25:02.988202: Reserve min: 7%, battery_min: 7%
2026-08-16 20:25:02.988293: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:25:02.988645: Inverter 0 SoC: 10.0kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 281W, current battery voltage 51.2V, grid power -54W, load power 339W, PV Power 0W
2026-08-16 20:25:02.988836: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:25:02.988985: Inverter 0 scheduled charge enable is False
2026-08-16 20:25:02.989040: Inverter 0 charge windows currently []
2026-08-16 20:25:02.989074: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:25:02.989225: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:25:02.989270: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:25:02.989333: Inverter 0 scheduled discharge enable is False
2026-08-16 20:25:02.989505: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:25:02.989635: Inverter 0 discharge windows currently []
2026-08-16 20:25:02.989667: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:25:02.989699: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:25:02.989728: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:25:03.082418: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:25:03.082529: Plan was last updated on 2026-08-16 20:20:00+01:00 and is now 5.0 minutes old
2026-08-16 20:25:03.082713: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:25:03.082751: Best export window [  ]
2026-08-16 20:25:03.083429: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:25:03.087841: Load divergence over 8.0 hours mean 603.21W, min 339.0W, max 1060.8W, std dev 224.81W, divergence 18.63%
2026-08-16 20:25:03.112613: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:25:03.112866: LoadML is_calculating True
2026-08-16 20:25:03.112908: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:25:03.162969: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 665.43p, metric_keep 224.85kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.63kWh, PV 0.0kWh
2026-08-16 20:25:03.372785: Battery has 12.92 hours left - now at 10.0kWh
2026-08-16 20:25:03.445205: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 694.04p, metric_keep 239.6kWh, min_soc 1.12kWh @ 08-17 08:20:00, load 28.48kWh, PV 0.0kWh
2026-08-16 20:25:03.598737: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 440.0p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.48kWh, PV 0.0kWh
2026-08-16 20:25:03.739295: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 437.86p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.63kWh, PV 0.0kWh
2026-08-16 20:25:03.739419: Saving plan best values to HA entities
2026-08-16 20:25:04.102935: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:25:04.111539: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:25:04.120648: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.76kWh, house 0.0kWh, export 0.0kWh, metric 437.86p, metric10 440.0p
2026-08-16 20:25:04.251793: Marginal costs baseline metric (no standing charge): 391.2285
2026-08-16 20:25:04.756648: Marginal energy costs matrix computed: min=4.75 max=30.13
2026-08-16 20:25:04.884463: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:25:04.885134: - Your estimated bill for today is £3.21 and tomorrow is £1.38
2026-08-16 20:25:04.885186: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 20:25:04.885209: - The battery is currently at 63% and is in eco mode for the next 3 hours.
2026-08-16 20:25:04.885228: - For the next 48 hours there will be no solar generation.
2026-08-16 20:25:04.885245: - You will reach a minimum of 13% battery in 27 hours.
2026-08-16 20:25:04.885263: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-16 20:25:04.885281: 
2026-08-16 20:25:04.944120: Plan calculation took 1.86 seconds
2026-08-16 20:25:04.948172: No high rate period found
2026-08-16 20:25:05.039355: Import threshold used for optimisation was 8.0p
2026-08-16 20:25:05.137082: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:25:05.145540: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-16 20:25:05.145687: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:25:05.145788: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:25:05.146014: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:25:05.146099: No export window planned
2026-08-16 20:25:05.146203: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:25:05.146239: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:25:05.146394: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:25:05.146604: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:25:05.146665: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:25:05.146714: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:25:05.146797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.146839: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.146867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147010: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147067: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147186: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147231: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:25:05.147856: Inverter 0 count register writes 0
2026-08-16 20:25:05.171856: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:25:05.179419: Total inverter register writes now 844
2026-08-16 20:25:05.224468: Info: Completed run status Demand
2026-08-16 20:25:05.233011: Info: record_status Demand
2026-08-16 20:25:05.242451: Saved current settings to /config/predbat_config.json
2026-08-16 20:25:05.242853: Compare, best tariff: current metric 318.25p
2026-08-16 20:25:23.556010: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0057 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0033 kWh ema_combined=0.0039 kWh
2026-08-16 20:25:48.439134: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:25:48.439440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:25:48.439524: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:25:48.439671: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:25:48.439713: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:25:48.439734: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:25:48.439840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:25:49.641894: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0123 val_mae=0.0063 kWh val_bias=-0.0021 kWh (-2.3%) combined=0.0046 kWh ema_combined=0.0041 kWh
2026-08-16 20:26:16.334723: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0138 val_mae=0.0046 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0025 kWh ema_combined=0.0036 kWh
2026-08-16 20:26:43.606404: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0150 val_mae=0.0055 kWh val_bias=+0.0017 kWh (+1.9%) combined=0.0044 kWh ema_combined=0.0039 kWh
2026-08-16 20:27:09.715308: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0124 val_mae=0.0062 kWh val_bias=-0.0047 kWh (-5.3%) combined=0.0054 kWh ema_combined=0.0043 kWh
2026-08-16 20:27:35.805320: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0099 val_mae=0.0047 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0027 kWh ema_combined=0.0038 kWh
2026-08-16 20:27:48.847514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:27:48.847803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:27:48.847855: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:27:48.848023: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:27:48.848071: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:27:48.848099: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:27:48.848124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:28:04.159231: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0039 kWh val_bias=+0.0013 kWh (+1.5%) combined=0.0032 kWh ema_combined=0.0036 kWh
2026-08-16 20:28:30.513531: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0121 val_mae=0.0043 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0031 kWh ema_combined=0.0035 kWh
2026-08-16 20:28:56.911030: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0101 val_mae=0.0037 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0027 kWh ema_combined=0.0032 kWh
2026-08-16 20:28:56.911284: ML Predictor: Early stopping at epoch 10
2026-08-16 20:28:56.912297: ML Predictor: Restored best weights from epoch with val_mae=0.0050 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 20:28:56.912549: ML Predictor: Training complete, final val_mae=0.0050 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-16 20:29:04.845447: ML Predictor: AR rollout over holdout: ar_mae=0.0057 kWh ar_bias=+0.0002 kWh (+0.2%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-16 20:29:04.864577: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0050 kWh
2026-08-16 20:29:04.932825: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-16 20:29:04.933119: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 20:29:05.501053: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 20:29:10.591088: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 20:29:10.647542: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0590 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6270 std=4.5032) import_rate(mean=16.8678 std=8.3496) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-16 20:29:10.739463: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 20:29:10.756420: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 20:29:10.895895: ML Predictor: Baseline (pre-finetune) val_mae=0.0068 kWh val_bias=+0.0005 kWh
2026-08-16 20:29:38.356019: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0113 val_mae=0.0059 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 20:29:49.171960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:29:49.172305: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:29:49.172431: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:29:49.172644: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:29:49.172760: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:29:49.172838: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:29:49.172900: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:30:00.393076: --------------- PredBat - update at 2026-08-16 20:30:00+01:00 with clock skew 0 minutes, minutes now 1230
2026-08-16 20:30:00.396741: Saved current settings to /config/predbat_config.json
2026-08-16 20:30:00.397071: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 20:30:00.397256: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:30:00.397419: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:30:00.443936: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:30:00.444104: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:30:00.444322: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:30:00.445395: 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-16 20:30:00.445592: Predbat mode is set to Control charge & discharge
2026-08-16 20:30:00.980119: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:30:00.981026: Using load_power data to fill gaps in load_today data
2026-08-16 20:30:02.277769: Processing 721 30-minute periods for power integration
2026-08-16 20:30:02.555857: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:30:02.556168: Car charging hold False, threshold 6.0kWh
2026-08-16 20:30:02.556232: Current data so far today: load 9.85kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:30:02.574585: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:30:02.575190: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:30:02.575911: Standing charge is set to 46.63p
2026-08-16 20:30:02.661562: 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-16 20:30:02.661957: 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-16 20:30:02.662271: 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-16 20:30:02.662615: 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-16 20:30:02.662920: 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-16 20:30:02.663230: 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-16 20:30:02.663535: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.663770: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.663972: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.664168: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.664363: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.664576: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.664801: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.664995: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.665282: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:30:02.665412: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:30:02.670271: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:30:02.670696: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:30:02.713699: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:30:02.713962: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:30:02.715461: High export rate found rates in range 99p to -99p
2026-08-16 20:30:02.753681: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:30:02.754057: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:30:02.754251: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:30:02.785247: Battery level now 10.0kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -2.75p, change today -15.18p, rate_forward 6.87p
2026-08-16 20:30:02.786235: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:30:02.983944: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:30:02.984266: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:30:03.217769: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:30:03.287483: Today's load divergence 80.35%, in-day adjustment 81.57%, damping 0.95x, yesterday 82.97% today 81.33% blend 14.58%
2026-08-16 20:30:03.287767: Today's predicted so far 12.37kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.37kWh forecast extra.
2026-08-16 20:30:03.287899: Today's actual load so far 9.85kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 20:30:03.403562: 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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 20:30:03.404429: Sensor changes require a replan, will recompute the plan
2026-08-16 20:30:03.404706: Inverter 0: Type SK Sunsynk
2026-08-16 20:30:03.404841: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:30:03.405184: Reserve min: 7%, battery_min: 7%
2026-08-16 20:30:03.405432: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:30:03.405872: Inverter 0 SoC: 10.0kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 468W, current battery voltage 51.2V, grid power -54W, load power 524W, PV Power 0W
2026-08-16 20:30:03.406173: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:30:03.406338: Inverter 0 scheduled charge enable is False
2026-08-16 20:30:03.406448: Inverter 0 charge windows currently []
2026-08-16 20:30:03.406582: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:30:03.406799: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:30:03.406909: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:30:03.407026: Inverter 0 scheduled discharge enable is False
2026-08-16 20:30:03.407256: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:30:03.407414: Inverter 0 discharge windows currently []
2026-08-16 20:30:03.407509: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:30:03.407633: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:30:03.407718: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:30:03.574258: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:30:03.574722: Will recompute the plan as it is invalid
2026-08-16 20:30:03.575039: Recompute is saving previous plan...
2026-08-16 20:30:03.576032: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:30:03.576745: Best export window [  ]
2026-08-16 20:30:03.577716: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:30:03.580540: Load divergence over 8.0 hours mean 601.71W, min 339.0W, max 1100.4W, std dev 227.79W, divergence 18.93%
2026-08-16 20:30:03.595928: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:30:03.596250: LoadML is_calculating True
2026-08-16 20:30:03.596290: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:30:03.604645: 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-16 20:30:03.605204: Optimise levels pass started at 2026-08-16 20:30:03
2026-08-16 20:30:03.605364: Optimise all windows, total charge 25 export 1
2026-08-16 20:30:08.120497: >> Region optimisation pass width 960 gives best_metric 497.74p, best_cost 525.87p, best_cycle 41.06kWh, best_import 28.59kWh
2026-08-16 20:30:08.521042: >> Region optimisation pass width 480 gives best_metric 497.23p, best_cost 519.33p, best_cycle 41.91kWh, best_import 27.77kWh
2026-08-16 20:30:09.142951: >> Region optimisation pass width 240 gives best_metric 497.23p, best_cost 519.33p, best_cycle 41.91kWh, best_import 27.77kWh
2026-08-16 20:30:10.657355: >> Region optimisation pass width 120 gives best_metric 497.23p, best_cost 519.33p, best_cycle 41.91kWh, best_import 27.77kWh
2026-08-16 20:30:10.657741: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:30:10.657884: Optimise levels pass ended at 2026-08-16 20:30:10, duration 7.1 seconds tried 79 combinations
2026-08-16 20:30:10.658019: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 497.23p, best_keep 0kWh, best_cycle 41.91kWh, best_carbon 0kg, best_import 27.77kWh
2026-08-16 20:30:10.699719: Starting detailed optimisation end_record 08-17 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, 0, 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-16 20:30:12.067799: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0122 val_mae=0.0063 kWh val_bias=-0.0016 kWh (-2.1%) combined=0.0034 kWh ema_combined=0.0035 kWh
2026-08-16 20:30:18.420558: Tweak plan optimisation started metric 376.04p, cost 388.77p
2026-08-16 20:30:19.061615: Tweak optimisation finished metric 376.04p, cost 388.77p, metric_keep 0.01kWh, cycle 23.94kWh, carbon 0kg, import 11.45kWh, changed 8 window(s)
2026-08-16 20:30:19.084125: Swap charge optimisation started metric 376.04p, cost 388.77p, min_improvement_swap 0.1p
2026-08-16 20:30:19.989108: Swap charge optimisation finished metric 376.04p, cost 388.77p
2026-08-16 20:30:20.101600: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 20:30:20.102322: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:30:20.102657: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:30:20.102987: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:30:20.156697: Previous plan best metric is 373.79 (cost 386.87) and new plan best metric is 376.04 (cost 388.77)
2026-08-16 20:30:20.157031: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:30:20.157257: Plan valid is now true after recompute was False
2026-08-16 20:30:20.205234: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 663.91p, metric_keep 223.99kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.6kWh, PV 0.0kWh
2026-08-16 20:30:20.467753: Battery has 12.83 hours left - now at 10.0kWh
2026-08-16 20:30:20.525831: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 692.52p, metric_keep 238.61kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.45kWh, PV 0.0kWh
2026-08-16 20:30:20.634887: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 436.14p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.45kWh, PV 0.0kWh
2026-08-16 20:30:20.759235: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 433.5p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.6kWh, PV 0.0kWh
2026-08-16 20:30:20.759343: Saving plan best values to HA entities
2026-08-16 20:30:21.067540: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:30:21.074928: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:30:21.081373: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.22kWh, house 0.0kWh, export 0.0kWh, metric 433.5p, metric10 436.14p
2026-08-16 20:30:21.195615: Marginal costs baseline metric (no standing charge): 386.8682
2026-08-16 20:30:21.640167: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 20:30:21.732201: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1230, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:30:21.733076: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:30:21.733133: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 20:30:21.733156: - The battery is currently at 63% and is in eco mode for the next 3 hours.
2026-08-16 20:30:21.733175: - For the next 48 hours there will be no solar generation.
2026-08-16 20:30:21.733194: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:30:21.733212: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-16 20:30:21.733241: 
2026-08-16 20:30:21.781671: Plan calculation took 18.21 seconds
2026-08-16 20:30:21.837650: Saved plan to storage
2026-08-16 20:30:21.843119: No high rate period found
2026-08-16 20:30:21.994933: Import threshold used for optimisation was 8.0p
2026-08-16 20:30:22.124286: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:30:22.141981: Inverter 0: Type SK Sunsynk
2026-08-16 20:30:22.142077: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:30:22.142271: Reserve min: 7%, battery_min: 7%
2026-08-16 20:30:22.142334: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:30:22.143312: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 454W, current battery voltage 51.2V, grid power -54W, load power 510W, PV Power 0W
2026-08-16 20:30:22.144845: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:30:22.145057: Inverter 0 scheduled charge enable is False
2026-08-16 20:30:22.145124: Inverter 0 charge windows currently []
2026-08-16 20:30:22.145176: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:30:22.145352: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:30:22.145408: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:30:22.145481: Inverter 0 scheduled discharge enable is False
2026-08-16 20:30:22.145748: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:30:22.145800: Inverter 0 discharge windows currently []
2026-08-16 20:30:22.145840: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:30:22.145873: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:30:22.145897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:30:22.224838: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:30:22.225019: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:30:22.225182: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:30:22.225442: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:30:22.225590: No export window planned
2026-08-16 20:30:22.225763: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:30:22.225902: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:30:22.226162: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:30:22.226421: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:30:22.226591: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:30:22.226743: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:30:22.226920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227050: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.227988: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:30:22.228744: Inverter 0 count register writes 0
2026-08-16 20:30:22.260302: Total inverter register writes now 844
2026-08-16 20:30:22.305753: Info: Completed run status Demand
2026-08-16 20:30:22.315710: Info: record_status Demand
2026-08-16 20:30:22.325454: Saved current settings to /config/predbat_config.json
2026-08-16 20:30:22.325839: Compare, best tariff: current metric 318.25p
2026-08-16 20:30:44.984396: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0148 val_mae=0.0050 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0027 kWh ema_combined=0.0033 kWh
2026-08-16 20:31:03.472666: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:31:03.472989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:31:03.473155: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:31:03.473420: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:31:03.473479: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:31:03.473601: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:31:03.473676: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:31:15.816210: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0191 val_mae=0.0047 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0030 kWh ema_combined=0.0032 kWh
2026-08-16 20:31:43.885964: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0129 val_mae=0.0047 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0028 kWh ema_combined=0.0031 kWh
2026-08-16 20:32:12.829726: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0117 val_mae=0.0052 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0038 kWh ema_combined=0.0033 kWh
2026-08-16 20:32:44.181383: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0111 val_mae=0.0044 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-16 20:33:03.925085: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:33:03.925400: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:33:03.925446: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:33:03.925564: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:33:03.925599: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:33:03.925629: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:33:03.925645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:33:12.276754: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0099 val_mae=0.0042 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-16 20:33:39.792154: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0095 val_mae=0.0039 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0025 kWh ema_combined=0.0027 kWh
2026-08-16 20:34:07.808423: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0092 val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0026 kWh ema_combined=0.0027 kWh
2026-08-16 20:34:34.995515: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0082 val_mae=0.0034 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 20:35:00.302779: --------------- PredBat - update at 2026-08-16 20:35:00+01:00 with clock skew 0 minutes, minutes now 1235
2026-08-16 20:35:00.303703: Saved current settings to /config/predbat_config.json
2026-08-16 20:35:00.303880: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 20:35:00.303994: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:35:00.304141: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:35:00.331385: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:35:00.331535: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:35:00.331784: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:35:00.332360: 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-16 20:35:00.332484: Predbat mode is set to Control charge & discharge
2026-08-16 20:35:00.682335: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:35:00.682652: Using load_power data to fill gaps in load_today data
2026-08-16 20:35:01.916575: Processing 721 30-minute periods for power integration
2026-08-16 20:35:02.271426: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:35:02.271588: Car charging hold False, threshold 6.0kWh
2026-08-16 20:35:02.271758: Current data so far today: load 9.9kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:35:02.337264: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:35:02.353717: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:35:02.354907: Standing charge is set to 46.63p
2026-08-16 20:35:02.530158: 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-16 20:35:02.530949: 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-16 20:35:02.531173: 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-16 20:35:02.531416: 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-16 20:35:02.531684: 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-16 20:35:02.531866: 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-16 20:35:02.532327: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532469: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532555: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532638: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532739: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532825: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.532897: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.533005: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.533206: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:35:02.533526: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:35:02.539274: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:35:02.540019: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:35:02.586488: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:35:02.586616: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:35:02.588030: High export rate found rates in range 99p to -99p
2026-08-16 20:35:02.622445: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:35:02.622581: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:35:02.622651: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:35:02.641456: Battery level now 10.0kWh, -1hr ago 10.4kWh, at midnight 12.21kWh, battery value change in the last hour -2.75p, change today -15.18p, rate_forward 6.87p
2026-08-16 20:35:02.641864: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.12p, import 1.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:35:02.721608: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:35:02.721799: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:35:02.922500: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:35:02.993064: Today's load divergence 80.54%, in-day adjustment 81.72%, damping 0.95x, yesterday 82.97% today 81.51% blend 14.24%
2026-08-16 20:35:02.994531: Today's predicted so far 12.46kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.46kWh forecast extra.
2026-08-16 20:35:02.994593: Today's actual load so far 9.96kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 20:35:03.042064: Inverter 0: Type SK Sunsynk
2026-08-16 20:35:03.042258: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:35:03.042529: Reserve min: 7%, battery_min: 7%
2026-08-16 20:35:03.042653: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:35:03.043007: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 470W, current battery voltage 51.2V, grid power -54W, load power 527W, PV Power 0W
2026-08-16 20:35:03.043232: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:35:03.043376: Inverter 0 scheduled charge enable is False
2026-08-16 20:35:03.043420: Inverter 0 charge windows currently []
2026-08-16 20:35:03.043516: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:35:03.043716: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:35:03.043763: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:35:03.043875: Inverter 0 scheduled discharge enable is False
2026-08-16 20:35:03.044076: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:35:03.044123: Inverter 0 discharge windows currently []
2026-08-16 20:35:03.044189: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:35:03.044223: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:35:03.044275: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:35:03.193764: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:35:03.193884: Plan was last updated on 2026-08-16 20:30:00+01:00 and is now 5.0 minutes old
2026-08-16 20:35:03.194132: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:35:03.194177: Best export window [  ]
2026-08-16 20:35:03.194984: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:35:03.198163: Load divergence over 8.0 hours mean 600.17W, min 335.4W, max 1131.0W, std dev 239.13W, divergence 19.92%
2026-08-16 20:35:03.221441: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:35:03.222437: LoadML is_calculating True
2026-08-16 20:35:03.222577: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:35:03.272052: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 666.72p, metric_keep 226.19kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 27.74kWh, PV 0.0kWh
2026-08-16 20:35:03.485690: Battery has 12.58 hours left - now at 9.92kWh
2026-08-16 20:35:03.578614: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 695.24p, metric_keep 240.94kWh, min_soc 1.12kWh @ 08-17 08:15:00, load 28.59kWh, PV 0.0kWh
2026-08-16 20:35:03.749856: predict best10 end_record 08-17 23:35:00, final soc 1.81kWh, metric 440.38p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.59kWh, PV 0.0kWh
2026-08-16 20:35:03.950215: predict best end_record 08-17 23:35:00, final soc 2.44kWh, metric 438.27p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.74kWh, PV 0.0kWh
2026-08-16 20:35:03.950344: Saving plan best values to HA entities
2026-08-16 20:35:04.326640: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:35:04.335981: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:35:04.348579: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.81kWh, house 0.0kWh, export 0.0kWh, metric 438.27p, metric10 440.38p
2026-08-16 20:35:04.528374: Marginal costs baseline metric (no standing charge): 391.6335
2026-08-16 20:35:04.879860: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 20:35:04.964209: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:35:04.965355: - Your estimated bill for today is £3.20 and tomorrow is £1.38
2026-08-16 20:35:04.965510: - Import rates are very expensive (33.8p) for the next 2  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 20:35:04.965662: - The battery is currently at 62% and is in eco mode for the next 2  hours.
2026-08-16 20:35:04.965800: - For the next 48 hours there will be no solar generation.
2026-08-16 20:35:04.965929: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:35:04.966049: - Your next charge slot will be in 2  hours where import rates will be cheap (8.0p).
2026-08-16 20:35:04.966173: 
2026-08-16 20:35:05.014454: Plan calculation took 1.82 seconds
2026-08-16 20:35:05.020081: No high rate period found
2026-08-16 20:35:05.125927: Import threshold used for optimisation was 8.0p
2026-08-16 20:35:05.246147: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:35:05.255489: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:35:05.255648: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:35:05.255738: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:35:05.255921: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:35:05.255998: No export window planned
2026-08-16 20:35:05.256094: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:35:05.256221: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:35:05.256457: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:35:05.256681: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:35:05.256744: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:35:05.256904: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:35:05.257032: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257192: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257308: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.257922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.258051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.258241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.258378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.258496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.258642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:35:05.266362: Inverter 0 count register writes 0
2026-08-16 20:35:05.303718: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:35:05.312544: Total inverter register writes now 844
2026-08-16 20:35:05.409281: Info: Completed run status Demand
2026-08-16 20:35:05.422480: Info: record_status Demand
2026-08-16 20:35:05.441985: Saved current settings to /config/predbat_config.json
2026-08-16 20:35:05.442387: Compare, best tariff: current metric 318.25p
2026-08-16 20:35:06.760756: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0082 val_mae=0.0041 kWh val_bias=+0.0016 kWh (+2.1%) combined=0.0034 kWh ema_combined=0.0027 kWh
2026-08-16 20:35:34.628183: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0087 val_mae=0.0034 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-16 20:35:48.611935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:35:48.612519: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:35:48.612596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:35:48.612895: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:35:48.612984: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:35:48.613062: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:35:48.613143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:36:05.388259: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0077 val_mae=0.0036 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-16 20:36:33.755210: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0081 val_mae=0.0032 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-16 20:37:02.353230: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0080 val_mae=0.0031 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-16 20:37:32.515532: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0073 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-16 20:37:49.026630: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:37:49.026892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:37:49.026936: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:37:49.027071: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:37:49.027108: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:37:49.027130: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:37:49.027155: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:37:59.003639: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0034 kWh val_bias=+0.0015 kWh (+1.9%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-16 20:38:25.607573: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0066 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-16 20:38:54.168550: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 20:39:22.183685: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0064 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 20:39:49.292295: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0028 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 20:40:00.463067: --------------- PredBat - update at 2026-08-16 20:40:00+01:00 with clock skew 0 minutes, minutes now 1240
2026-08-16 20:40:00.464165: Saved current settings to /config/predbat_config.json
2026-08-16 20:40:00.464316: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 20:40:00.464421: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:40:00.464561: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:40:00.506116: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:40:00.506426: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:40:00.506722: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:40:00.507467: 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-16 20:40:00.507682: Predbat mode is set to Control charge & discharge
2026-08-16 20:40:00.870117: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:40:00.870367: Using load_power data to fill gaps in load_today data
2026-08-16 20:40:02.162125: Processing 721 30-minute periods for power integration
2026-08-16 20:40:02.337877: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:40:02.338098: Car charging hold False, threshold 6.0kWh
2026-08-16 20:40:02.338154: Current data so far today: load 9.95kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:40:02.353449: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:40:02.353641: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:40:02.354355: Standing charge is set to 46.63p
2026-08-16 20:40:02.538220: 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-16 20:40:02.563678: 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-16 20:40:02.563987: 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-16 20:40:02.564351: 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-16 20:40:02.564666: 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-16 20:40:02.565018: 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-16 20:40:02.565341: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.565541: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.565729: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.565940: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.566162: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.566350: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.566525: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.566692: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.567044: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:40:02.567189: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:40:02.580483: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:40:02.581108: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:40:02.693341: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:40:02.694165: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:40:02.695709: High export rate found rates in range 99p to -99p
2026-08-16 20:40:02.728219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:40:02.729274: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:40:02.729371: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:40:02.744488: Battery level now 9.92kWh, -1hr ago 10.29kWh, at midnight 12.21kWh, battery value change in the last hour -2.53p, change today -15.73p, rate_forward 6.87p
2026-08-16 20:40:02.744909: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.99p, import 0.99p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:40:02.850647: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:40:02.850880: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:40:02.987590: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:40:03.035607: Today's load divergence 80.59%, in-day adjustment 81.75%, damping 0.95x, yesterday 82.97% today 81.56% blend 13.89%
2026-08-16 20:40:03.035898: Today's predicted so far 12.46kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 12.46kWh forecast extra.
2026-08-16 20:40:03.036061: Today's actual load so far 9.98kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 20:40:03.116357: Inverter 0: Type SK Sunsynk
2026-08-16 20:40:03.116629: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:40:03.117036: Reserve min: 7%, battery_min: 7%
2026-08-16 20:40:03.117248: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:40:03.117699: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -54W, load power 475W, PV Power 0W
2026-08-16 20:40:03.118025: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:40:03.118244: Inverter 0 scheduled charge enable is False
2026-08-16 20:40:03.118387: Inverter 0 charge windows currently []
2026-08-16 20:40:03.118520: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:40:03.118819: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:40:03.118968: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:40:03.119118: Inverter 0 scheduled discharge enable is False
2026-08-16 20:40:03.119402: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:40:03.119549: Inverter 0 discharge windows currently []
2026-08-16 20:40:03.119672: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:40:03.119806: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:40:03.119930: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:40:03.273103: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:40:03.273380: Plan was last updated on 2026-08-16 20:30:00+01:00 and is now 10.0 minutes old
2026-08-16 20:40:03.273803: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:40:03.273943: Best export window [  ]
2026-08-16 20:40:03.275313: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:40:03.281497: Load divergence over 8.0 hours mean 598.54W, min 339.0W, max 1105.2W, std dev 237.04W, divergence 19.8%
2026-08-16 20:40:03.315978: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:40:03.316208: LoadML is_calculating True
2026-08-16 20:40:03.316240: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:40:03.392888: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 665.98p, metric_keep 224.82kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.86kWh, PV 0.0kWh
2026-08-16 20:40:03.618749: Battery has 12.67 hours left - now at 9.92kWh
2026-08-16 20:40:03.699778: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 694.51p, metric_keep 239.3kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.71kWh, PV 0.0kWh
2026-08-16 20:40:03.862839: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.56p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.71kWh, PV 0.0kWh
2026-08-16 20:40:04.034119: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.98p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.86kWh, PV 0.0kWh
2026-08-16 20:40:04.044990: Saving plan best values to HA entities
2026-08-16 20:40:04.362819: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:40:04.378607: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:40:04.389112: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.28kWh, house 0.0kWh, export 0.0kWh, metric 441.98p, metric10 443.56p
2026-08-16 20:40:04.577262: Marginal costs baseline metric (no standing charge): 395.348
2026-08-16 20:40:04.975320: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 20:40:05.087166: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:40:05.088422: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:40:05.093026: - 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-16 20:40:05.093255: - The battery is currently at 62% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 20:40:05.093478: - For the next 48 hours there will be no solar generation.
2026-08-16 20:40:05.093631: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:40:05.093844: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 20:40:05.093965: 
2026-08-16 20:40:05.158350: Plan calculation took 1.88 seconds
2026-08-16 20:40:05.164566: No high rate period found
2026-08-16 20:40:05.265586: Import threshold used for optimisation was 8.0p
2026-08-16 20:40:05.376300: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:40:05.384110: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:40:05.384339: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:40:05.384532: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:40:05.384847: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:40:05.385036: No export window planned
2026-08-16 20:40:05.385237: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:40:05.385349: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:40:05.385605: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:40:05.385883: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:40:05.385986: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:40:05.386111: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:40:05.386259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386318: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386535: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386709: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.386998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:05.387563: Inverter 0 count register writes 0
2026-08-16 20:40:05.412749: 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-16 20:40:05.413059: Recompute is saving previous plan...
2026-08-16 20:40:05.414551: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:40:05.414625: Best export window [  ]
2026-08-16 20:40:05.416057: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:40:05.421146: Load divergence over 8.0 hours mean 598.54W, min 339.0W, max 1105.2W, std dev 237.04W, divergence 19.8%
2026-08-16 20:40:05.457577: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:40:05.457716: LoadML is_calculating True
2026-08-16 20:40:05.457748: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:40:05.473562: 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-16 20:40:05.489700: Optimise levels pass started at 2026-08-16 20:40:05
2026-08-16 20:40:05.500378: Optimise all windows, total charge 25 export 1
2026-08-16 20:40:07.779014: >> Region optimisation pass width 960 gives best_metric 498.91p, best_cost 528.01p, best_cycle 41.37kWh, best_import 28.86kWh
2026-08-16 20:40:08.191021: >> Region optimisation pass width 480 gives best_metric 498.91p, best_cost 528.01p, best_cycle 41.37kWh, best_import 28.86kWh
2026-08-16 20:40:08.633326: >> Region optimisation pass width 240 gives best_metric 498.91p, best_cost 528.01p, best_cycle 41.37kWh, best_import 28.86kWh
2026-08-16 20:40:10.160897: >> Region optimisation pass width 120 gives best_metric 498.91p, best_cost 528.01p, best_cycle 41.37kWh, best_import 28.86kWh
2026-08-16 20:40:10.161259: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:40:10.161376: Optimise levels pass ended at 2026-08-16 20:40:10, duration 4.7 seconds tried 78 combinations
2026-08-16 20:40:10.161495: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 498.91p, best_keep 0kWh, best_cycle 41.37kWh, best_carbon 0kg, best_import 28.86kWh
2026-08-16 20:40:10.179291: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 20:40:18.388497: Tweak plan optimisation started metric 373.86p, cost 386.93p
2026-08-16 20:40:20.412408: Tweak optimisation finished metric 373.86p, cost 386.93p, metric_keep 0kWh, cycle 19.83kWh, carbon 0kg, import 11.22kWh, changed 8 window(s)
2026-08-16 20:40:20.433952: Swap charge optimisation started metric 373.86p, cost 386.93p, min_improvement_swap 0.1p
2026-08-16 20:40:21.602723: Swap charge optimisation finished metric 373.86p, cost 386.93p
2026-08-16 20:40:21.794308: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 20:40:21.794988: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:40:21.795425: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:40:21.795810: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:40:21.911524: Previous plan best metric is 373.86 (cost 386.93) and new plan best metric is 373.86 (cost 386.93)
2026-08-16 20:40:21.912449: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:40:21.912696: Plan valid is now true after recompute was False
2026-08-16 20:40:21.940232: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 664.23p, metric_keep 224.23kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.64kWh, PV 0.0kWh
2026-08-16 20:40:22.071496: Battery has 12.67 hours left - now at 9.92kWh
2026-08-16 20:40:22.164134: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 692.67p, metric_keep 238.71kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.48kWh, PV 0.0kWh
2026-08-16 20:40:22.301883: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 436.17p, metric_keep 2.14kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.48kWh, PV 0.0kWh
2026-08-16 20:40:22.406671: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 433.56p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.64kWh, PV 0.0kWh
2026-08-16 20:40:22.406926: Saving plan best values to HA entities
2026-08-16 20:40:22.691391: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:40:22.700383: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 20:40:22.710839: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.22kWh, house 0.0kWh, export 0.0kWh, metric 433.56p, metric10 436.17p
2026-08-16 20:40:22.804417: Marginal costs baseline metric (no standing charge): 386.9261
2026-08-16 20:40:23.339123: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 20:40:23.441429: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1240, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:40:23.442364: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:40:23.442421: - 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-16 20:40:23.442448: - The battery is currently at 62% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 20:40:23.442472: - For the next 48 hours there will be no solar generation.
2026-08-16 20:40:23.442496: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:40:23.442520: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 20:40:23.442637: 
2026-08-16 20:40:23.500879: Plan calculation took 18.09 seconds
2026-08-16 20:40:23.501205: Inverter 0: Type SK Sunsynk
2026-08-16 20:40:23.501262: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:40:23.501485: Reserve min: 7%, battery_min: 7%
2026-08-16 20:40:23.501571: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:40:23.501912: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -54W, load power 464W, PV Power 0W
2026-08-16 20:40:23.502107: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:40:23.502219: Inverter 0 scheduled charge enable is False
2026-08-16 20:40:23.502262: Inverter 0 charge windows currently []
2026-08-16 20:40:23.502296: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:40:23.508714: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:40:23.508837: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:40:23.509002: Inverter 0 scheduled discharge enable is False
2026-08-16 20:40:23.509268: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:40:23.509331: Inverter 0 discharge windows currently []
2026-08-16 20:40:23.509491: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:40:23.509539: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:40:23.509565: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:40:23.607277: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:40:23.607582: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:40:23.607728: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:40:23.608078: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:40:23.608236: No export window planned
2026-08-16 20:40:23.608445: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:40:23.608505: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:40:23.608781: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:40:23.609085: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:40:23.609201: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:40:23.609327: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:40:23.609486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.609547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.609674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.609820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.609983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.610973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.611117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.611258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.611398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:40:23.611526: Inverter 0 count register writes 0
2026-08-16 20:40:23.644816: Total inverter register writes now 844
2026-08-16 20:40:23.732874: Info: Completed run status Demand
2026-08-16 20:40:23.749904: Info: record_status Demand
2026-08-16 20:40:23.789191: Saved current settings to /config/predbat_config.json
2026-08-16 20:40:23.789700: Compare, best tariff: current metric 318.25p
2026-08-16 20:40:30.972454: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0060 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-16 20:40:59.414324: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0056 val_mae=0.0025 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 20:41:04.023280: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:41:04.023532: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:41:04.023695: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:41:04.024002: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:41:04.024144: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:41:04.024265: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:41:04.024378: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:41:28.052650: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-16 20:41:55.491137: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 20:42:28.823583: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 20:43:00.680259: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 20:43:18.518713: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:43:18.518973: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:43:18.519020: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:43:18.519156: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:43:18.519196: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:43:18.519218: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:43:18.519236: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:43:33.844351: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 20:44:07.291718: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-16 20:44:07.293002: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 20:44:07.293153: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-16 20:44:11.733619: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=+0.0002 kWh (+0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 20:44:11.761507: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0023 kWh
2026-08-16 20:44:11.863998: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-16 20:44:11.864249: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 20:44:12.429184: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-16 20:44:16.900642: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-16 20:44:16.951439: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0591 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6335 std=4.5092) import_rate(mean=16.8585 std=8.3678) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-16 20:44:17.038047: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 20:44:17.052338: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 20:44:17.107000: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=+0.0004 kWh
2026-08-16 20:44:45.899501: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0093 val_mae=0.0044 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0035 kWh ema_combined=0.0035 kWh
2026-08-16 20:45:00.987476: --------------- PredBat - update at 2026-08-16 20:45:00+01:00 with clock skew 0 minutes, minutes now 1245
2026-08-16 20:45:00.988665: Saved current settings to /config/predbat_config.json
2026-08-16 20:45:00.988869: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 20:45:00.989077: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:45:00.989227: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:45:01.012898: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:45:01.013100: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:45:01.013343: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:45:01.014022: 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-16 20:45:01.014182: Predbat mode is set to Control charge & discharge
2026-08-16 20:45:01.350032: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:45:01.350240: Using load_power data to fill gaps in load_today data
2026-08-16 20:45:02.536581: Processing 721 30-minute periods for power integration
2026-08-16 20:45:02.833463: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:45:02.833682: Car charging hold False, threshold 6.0kWh
2026-08-16 20:45:02.833759: Current data so far today: load 10.0kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:45:02.900819: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:45:02.908830: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:45:02.910287: Standing charge is set to 46.63p
2026-08-16 20:45:03.062296: 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-16 20:45:03.062673: 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-16 20:45:03.063112: 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-16 20:45:03.063432: 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-16 20:45:03.063717: 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-16 20:45:03.064093: 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-16 20:45:03.064555: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.064771: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.065037: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.065260: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.065417: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.065703: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.066738: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.066931: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.067273: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:45:03.067366: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:45:03.076461: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:45:03.076975: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:45:03.121859: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:45:03.122005: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:45:03.123287: High export rate found rates in range 99p to -99p
2026-08-16 20:45:03.158346: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:45:03.158638: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:45:03.158871: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:45:03.176405: Battery level now 9.92kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -15.73p, rate_forward 6.87p
2026-08-16 20:45:03.176931: Last hour: net energy 0.03kWh, import 0.03kWh, 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-16 20:45:03.280333: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:45:03.280679: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:45:03.489474: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:45:03.522015: Today's load divergence 80.27%, in-day adjustment 81.49%, damping 0.95x, yesterday 82.97% today 81.25% blend 13.54%
2026-08-16 20:45:03.522474: Today's predicted so far 12.47kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 12.47kWh forecast extra.
2026-08-16 20:45:03.522549: Today's actual load so far 9.94kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 20:45:03.595525: Inverter 0: Type SK Sunsynk
2026-08-16 20:45:03.595636: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:45:03.595883: Reserve min: 7%, battery_min: 7%
2026-08-16 20:45:03.596006: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:45:03.596386: Inverter 0 SoC: 9.87kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 544W, current battery voltage 51.2V, grid power -55W, load power 598W, PV Power 0W
2026-08-16 20:45:03.596595: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:45:03.596724: Inverter 0 scheduled charge enable is False
2026-08-16 20:45:03.596775: Inverter 0 charge windows currently []
2026-08-16 20:45:03.596815: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:45:03.597048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:45:03.597109: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:45:03.597167: Inverter 0 scheduled discharge enable is False
2026-08-16 20:45:03.597359: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:45:03.597411: Inverter 0 discharge windows currently []
2026-08-16 20:45:03.597459: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:45:03.597500: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:45:03.597529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:45:03.779545: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:45:03.779912: Plan was last updated on 2026-08-16 20:40:00+01:00 and is now 5.0 minutes old
2026-08-16 20:45:03.780662: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:45:03.780823: Best export window [  ]
2026-08-16 20:45:03.782668: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:45:03.785866: Load divergence over 8.0 hours mean 597.14W, min 335.4W, max 1153.2W, std dev 238.85W, divergence 20.0%
2026-08-16 20:45:03.806428: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:45:03.806559: LoadML is_calculating True
2026-08-16 20:45:03.806587: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:45:03.850964: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 665.15p, metric_keep 224.31kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.76kWh, PV 0.0kWh
2026-08-16 20:45:04.061343: Battery has 12.58 hours left - now at 9.87kWh
2026-08-16 20:45:04.236564: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 693.53p, metric_keep 238.54kWh, min_soc 1.12kWh @ 08-17 08:25:00, load 28.6kWh, PV 0.0kWh
2026-08-16 20:45:04.371222: predict best10 end_record 08-17 23:35:00, final soc 1.78kWh, metric 439.75p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.6kWh, PV 0.0kWh
2026-08-16 20:45:04.499326: predict best end_record 08-17 23:35:00, final soc 2.42kWh, metric 437.69p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.76kWh, PV 0.0kWh
2026-08-16 20:45:04.499450: Saving plan best values to HA entities
2026-08-16 20:45:04.796752: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:45:04.804995: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:45:04.823425: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.74kWh, house 0kWh, export 0.0kWh, metric 437.69p, metric10 439.75p
2026-08-16 20:45:04.960292: Marginal costs baseline metric (no standing charge): 391.0536
2026-08-16 20:45:05.439832: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 20:45:05.561765: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:45:05.562735: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:45:05.562794: - 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-16 20:45:05.562826: - The battery is currently at 62% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 20:45:05.562856: - For the next 48 hours there will be no solar generation.
2026-08-16 20:45:05.562905: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:45:05.562938: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 20:45:05.562973: 
2026-08-16 20:45:05.616343: Plan calculation took 1.84 seconds
2026-08-16 20:45:05.621966: No high rate period found
2026-08-16 20:45:05.725624: Import threshold used for optimisation was 8.0p
2026-08-16 20:45:05.835231: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:45:05.853398: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:45:05.853582: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:45:05.853662: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:45:05.853914: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:45:05.854009: No export window planned
2026-08-16 20:45:05.854135: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:45:05.854179: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:45:05.854353: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:45:05.854535: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:45:05.854601: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:45:05.854680: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:45:05.854797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.854861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.854986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:45:05.855559: Inverter 0 count register writes 0
2026-08-16 20:45:05.889225: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:45:05.903383: Total inverter register writes now 844
2026-08-16 20:45:05.955388: Info: Completed run status Demand
2026-08-16 20:45:05.964098: Info: record_status Demand
2026-08-16 20:45:05.974485: Saved current settings to /config/predbat_config.json
2026-08-16 20:45:05.974972: Compare, best tariff: current metric 318.25p
2026-08-16 20:45:16.254742: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0136 val_mae=0.0045 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0030 kWh ema_combined=0.0033 kWh
2026-08-16 20:45:45.323806: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0139 val_mae=0.0040 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0021 kWh ema_combined=0.0029 kWh
2026-08-16 20:45:49.117519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:45:49.118393: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:45:49.118454: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:45:49.118629: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:45:49.118677: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:45:49.118699: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:45:49.118717: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:46:14.492207: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0124 val_mae=0.0039 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-16 20:46:42.839545: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-16 20:47:10.718741: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0121 val_mae=0.0037 kWh val_bias=+0.0009 kWh (+1.7%) combined=0.0028 kWh ema_combined=0.0025 kWh
2026-08-16 20:47:41.087279: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0112 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-1.8%) combined=0.0029 kWh ema_combined=0.0026 kWh
2026-08-16 20:48:03.606262: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:48:03.606601: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:48:03.606666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:48:03.606900: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:48:03.606974: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:48:03.607015: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:48:03.607136: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:48:07.294332: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0100 val_mae=0.0041 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0031 kWh ema_combined=0.0028 kWh
2026-08-16 20:48:32.884181: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0101 val_mae=0.0034 kWh val_bias=-0.0010 kWh (-1.9%) combined=0.0025 kWh ema_combined=0.0027 kWh
2026-08-16 20:48:59.455971: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0088 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-16 20:48:59.456113: ML Predictor: Early stopping at epoch 10
2026-08-16 20:48:59.457242: ML Predictor: Restored best weights from epoch with val_mae=0.0038 kWh val_bias=+0.0004 kWh (+0.7%)
2026-08-16 20:48:59.457404: ML Predictor: Training complete, final val_mae=0.0038 kWh val_bias=+0.0004 kWh (+0.7%)
2026-08-16 20:49:00.567674: ML Predictor: AR rollout over holdout: ar_mae=0.0050 kWh ar_bias=+0.0016 kWh (+2.9%) [drift vs teacher-forced: +0.0012 kWh]
2026-08-16 20:49:00.587593: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0038 kWh
2026-08-16 20:49:00.587737: ML Predictor: Curriculum final pass 5/5: full dataset (58.3 days)
2026-08-16 20:49:00.587924: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 20:49:01.334578: ML Predictor: Creating dataset with 1398 hours of training data, 48 hours validation
2026-08-16 20:49:06.846691: ML Predictor: Created 16489 training samples, 576 validation samples
2026-08-16 20:49:06.904937: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0480) load(mean=0.0591 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.6375 std=4.5150) import_rate(mean=16.8537 std=8.3879) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1918 std=0.5268)
2026-08-16 20:49:06.997922: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 20:49:07.015461: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 20:49:07.113441: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=+0.0004 kWh
2026-08-16 20:49:34.401489: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0043 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-16 20:50:00.636533: --------------- PredBat - update at 2026-08-16 20:50:00+01:00 with clock skew 0 minutes, minutes now 1250
2026-08-16 20:50:00.637370: Saved current settings to /config/predbat_config.json
2026-08-16 20:50:00.637536: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 20:50:00.637655: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:50:00.637751: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:50:00.685629: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:50:00.685822: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:50:00.686000: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:50:00.686589: 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-16 20:50:00.686736: Predbat mode is set to Control charge & discharge
2026-08-16 20:50:01.135308: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:50:01.136289: Using load_power data to fill gaps in load_today data
2026-08-16 20:50:02.270658: Processing 721 30-minute periods for power integration
2026-08-16 20:50:02.560366: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:50:02.562656: Car charging hold False, threshold 6.0kWh
2026-08-16 20:50:02.562774: Current data so far today: load 9.9kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:50:02.601198: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:50:02.601324: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:50:02.602154: Standing charge is set to 46.63p
2026-08-16 20:50:02.824750: 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-16 20:50:02.825221: 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-16 20:50:02.825441: 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-16 20:50:02.825627: 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-16 20:50:02.825864: 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-16 20:50:02.826055: 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-16 20:50:02.826520: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.826628: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.826729: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.826815: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.826919: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.827019: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.827091: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.827154: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.827326: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:50:02.827384: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:50:02.833037: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:50:02.833297: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:50:02.868636: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:50:02.869229: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:50:02.870382: High export rate found rates in range 99p to -99p
2026-08-16 20:50:02.898424: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:50:02.898600: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:50:02.898656: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:50:02.918826: Battery level now 9.87kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -2.53p, change today -16.05p, rate_forward 6.87p
2026-08-16 20:50:02.919320: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.7p, import 0.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:50:03.041569: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:50:03.041840: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:50:03.335822: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:50:03.372155: Today's load divergence 79.32%, in-day adjustment 80.7%, damping 0.95x, yesterday 82.97% today 80.35% blend 13.19%
2026-08-16 20:50:03.372664: Today's predicted so far 12.49kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 12.49kWh forecast extra.
2026-08-16 20:50:03.372772: Today's actual load so far 9.87kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 20:50:03.430813: Inverter 0: Type SK Sunsynk
2026-08-16 20:50:03.431074: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:50:03.431390: Reserve min: 7%, battery_min: 7%
2026-08-16 20:50:03.431539: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:50:03.431964: Inverter 0 SoC: 9.87kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 342W, current battery voltage 51.2V, grid power -55W, load power 400W, PV Power 0W
2026-08-16 20:50:03.432226: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:50:03.432399: Inverter 0 scheduled charge enable is False
2026-08-16 20:50:03.432453: Inverter 0 charge windows currently []
2026-08-16 20:50:03.432541: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:50:03.432782: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:50:03.432841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:50:03.445051: Inverter 0 scheduled discharge enable is False
2026-08-16 20:50:03.445444: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:50:03.445506: Inverter 0 discharge windows currently []
2026-08-16 20:50:03.445589: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:50:03.445726: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:50:03.445776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:50:03.600598: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:50:03.600882: Plan was last updated on 2026-08-16 20:40:00+01:00 and is now 10.0 minutes old
2026-08-16 20:50:03.601305: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:50:03.601368: Best export window [  ]
2026-08-16 20:50:03.602758: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:50:03.607606: Load divergence over 8.0 hours mean 597.14W, min 361.2W, max 1047.6W, std dev 232.53W, divergence 19.47%
2026-08-16 20:50:03.666250: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:50:03.666402: LoadML is_calculating True
2026-08-16 20:50:03.666436: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:50:03.791046: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 663.07p, metric_keep 222.39kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.68kWh, PV 0.0kWh
2026-08-16 20:50:04.018906: Battery has 12.67 hours left - now at 9.87kWh
2026-08-16 20:50:04.083108: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 691.35p, metric_keep 236.13kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.52kWh, PV 0.0kWh
2026-08-16 20:50:04.284211: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 442.75p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.52kWh, PV 0.0kWh
2026-08-16 20:50:04.518522: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.24p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.68kWh, PV 0.0kWh
2026-08-16 20:50:04.519561: Saving plan best values to HA entities
2026-08-16 20:50:04.762453: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 20:50:04.768835: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:50:04.776750: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.18kWh, house 0.0kWh, export 0.0kWh, metric 441.24p, metric10 442.75p
2026-08-16 20:50:04.934938: Marginal costs baseline metric (no standing charge): 394.6072
2026-08-16 20:50:05.145278: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0126 val_mae=0.0044 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0034 kWh ema_combined=0.0031 kWh
2026-08-16 20:50:05.449075: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 20:50:05.556884: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:50:05.558247: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:50:05.558433: - 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-16 20:50:05.558484: - The battery is currently at 62% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 20:50:05.558511: - For the next 48 hours there will be no solar generation.
2026-08-16 20:50:05.558791: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:50:05.558846: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 20:50:05.558932: 
2026-08-16 20:50:05.624296: Plan calculation took 2.02 seconds
2026-08-16 20:50:05.629904: No high rate period found
2026-08-16 20:50:05.765509: Import threshold used for optimisation was 8.0p
2026-08-16 20:50:05.889098: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:50:05.897237: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-16 20:50:05.897455: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:50:05.897575: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:50:05.897902: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:50:05.898030: No export window planned
2026-08-16 20:50:05.898264: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:50:05.898311: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:50:05.898555: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:50:05.898816: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:50:05.898908: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:50:05.899021: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:50:05.899225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899614: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899659: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.899981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.900085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.900130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.900263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.900338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:05.900380: Inverter 0 count register writes 0
2026-08-16 20:50:05.921342: 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-16 20:50:05.921614: Recompute is saving previous plan...
2026-08-16 20:50:05.922787: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 20:50:05.922848: Best export window [  ]
2026-08-16 20:50:05.923959: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:50:05.927884: Load divergence over 8.0 hours mean 597.14W, min 361.2W, max 1047.6W, std dev 232.53W, divergence 19.47%
2026-08-16 20:50:05.950604: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:50:05.950723: LoadML is_calculating True
2026-08-16 20:50:05.950896: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:50:05.962902: 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-16 20:50:05.963436: Optimise levels pass started at 2026-08-16 20:50:05
2026-08-16 20:50:05.963487: Optimise all windows, total charge 25 export 1
2026-08-16 20:50:08.197504: >> Region optimisation pass width 960 gives best_metric 498.79p, best_cost 525.06p, best_cycle 41.03kWh, best_import 28.49kWh
2026-08-16 20:50:08.627419: >> Region optimisation pass width 480 gives best_metric 498.79p, best_cost 525.06p, best_cycle 41.03kWh, best_import 28.49kWh
2026-08-16 20:50:09.248314: >> Region optimisation pass width 240 gives best_metric 498.79p, best_cost 525.06p, best_cycle 41.03kWh, best_import 28.49kWh
2026-08-16 20:50:12.984507: >> Region optimisation pass width 120 gives best_metric 498.42p, best_cost 525.11p, best_cycle 41.12kWh, best_import 28.5kWh
2026-08-16 20:50:12.985078: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 20:50:12.985334: Optimise levels pass ended at 2026-08-16 20:50:12, duration 7.0 seconds tried 83 combinations
2026-08-16 20:50:12.985520: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 498.42p, best_keep 0.0kWh, best_cycle 41.12kWh, best_carbon 0kg, best_import 28.5kWh
2026-08-16 20:50:13.023513: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 14.0, 14.0, 14.0, 14.0, 14.0, 13.75, 0, 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-16 20:50:21.223314: Tweak plan optimisation started metric 373.06p, cost 385.83p
2026-08-16 20:50:23.437251: Tweak optimisation finished metric 373.06p, cost 385.83p, metric_keep 0.0kWh, cycle 19.7kWh, carbon 0kg, import 11.09kWh, changed 8 window(s)
2026-08-16 20:50:23.462693: Swap charge optimisation started metric 373.06p, cost 385.83p, min_improvement_swap 0.1p
2026-08-16 20:50:24.861591: Swap charge optimisation finished metric 373.06p, cost 385.83p
2026-08-16 20:50:25.038389: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 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 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% ] reserve 1.12
2026-08-16 20:50:25.039027: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:50:25.039319: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:50:25.039536: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 86%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 20:50:25.192921: Previous plan best metric is 373.09 (cost 386.18) and new plan best metric is 373.06 (cost 385.83)
2026-08-16 20:50:25.193415: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 20:50:25.193752: Plan valid is now true after recompute was False
2026-08-16 20:50:25.232893: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 661.31p, metric_keep 221.81kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.46kWh, PV 0.0kWh
2026-08-16 20:50:25.429801: Battery has 12.67 hours left - now at 9.87kWh
2026-08-16 20:50:25.539579: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 689.51p, metric_keep 235.54kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.29kWh, PV 0.0kWh
2026-08-16 20:50:25.712601: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 435.35p, metric_keep 2.11kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.29kWh, PV 0.0kWh
2026-08-16 20:50:25.884979: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 432.82p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.46kWh, PV 0.0kWh
2026-08-16 20:50:25.885410: Saving plan best values to HA entities
2026-08-16 20:50:26.143435: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 20:50:26.153160: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:50:26.161537: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.13kWh, house 0.0kWh, export 0.0kWh, metric 432.82p, metric10 435.35p
2026-08-16 20:50:26.334204: Marginal costs baseline metric (no standing charge): 386.1813
2026-08-16 20:50:26.699712: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 20:50:26.809353: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1250, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 20:50:26.810563: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:50:26.810648: - 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-16 20:50:26.810682: - The battery is currently at 62% and is in eco mode for the next 2 and three quarters hours.
2026-08-16 20:50:26.810770: - For the next 48 hours there will be no solar generation.
2026-08-16 20:50:26.810860: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:50:26.810935: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 20:50:26.810980: 
2026-08-16 20:50:26.855326: Plan calculation took 20.93 seconds
2026-08-16 20:50:26.855599: Inverter 0: Type SK Sunsynk
2026-08-16 20:50:26.855666: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:50:26.855999: Reserve min: 7%, battery_min: 7%
2026-08-16 20:50:26.856101: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:50:26.856427: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 345W, current battery voltage 51.2V, grid power -55W, load power 401W, PV Power 0W
2026-08-16 20:50:26.856620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:50:26.856751: Inverter 0 scheduled charge enable is False
2026-08-16 20:50:26.856887: Inverter 0 charge windows currently []
2026-08-16 20:50:26.857003: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:50:26.857288: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:50:26.857346: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:50:26.857485: Inverter 0 scheduled discharge enable is False
2026-08-16 20:50:26.857749: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:50:26.857806: Inverter 0 discharge windows currently []
2026-08-16 20:50:26.857890: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:50:26.857931: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:50:26.858001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:50:27.009484: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 20:50:27.009772: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:50:27.009957: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:50:27.010268: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:50:27.010424: No export window planned
2026-08-16 20:50:27.010625: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:50:27.010698: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:50:27.010996: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:50:27.011253: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:50:27.011368: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:50:27.011494: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:50:27.011674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.011738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.011881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.011938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.012910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.013031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.013135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:50:27.013182: Inverter 0 count register writes 0
2026-08-16 20:50:27.060235: Total inverter register writes now 844
2026-08-16 20:50:27.113005: Info: Completed run status Demand
2026-08-16 20:50:27.123583: Info: record_status Demand
2026-08-16 20:50:27.149586: Saved current settings to /config/predbat_config.json
2026-08-16 20:50:27.149929: Compare, best tariff: current metric 318.25p
2026-08-16 20:50:47.609608: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0043 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-16 20:51:04.291474: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:51:04.291979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:51:04.292172: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:51:04.292479: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:51:04.292652: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:51:04.292783: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:51:04.292909: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:51:14.028028: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0142 val_mae=0.0044 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-16 20:51:40.975756: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0148 val_mae=0.0042 kWh val_bias=-0.0011 kWh (-2.4%) combined=0.0026 kWh ema_combined=0.0027 kWh
2026-08-16 20:52:08.199938: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0122 val_mae=0.0046 kWh val_bias=+0.0012 kWh (+2.7%) combined=0.0043 kWh ema_combined=0.0031 kWh
2026-08-16 20:52:34.920116: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0125 val_mae=0.0041 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-16 20:53:04.258086: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0112 val_mae=0.0043 kWh val_bias=-0.0008 kWh (-1.6%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-16 20:53:18.769417: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:53:18.769727: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:53:18.769795: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:53:18.769967: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:53:18.770017: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:53:18.770149: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:53:18.770216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:53:34.691834: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0105 val_mae=0.0039 kWh val_bias=-0.0013 kWh (-2.7%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 20:54:03.004644: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0092 val_mae=0.0037 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0025 kWh
2026-08-16 20:54:31.058123: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0084 val_mae=0.0037 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-16 20:54:56.875758: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0081 val_mae=0.0039 kWh val_bias=-0.0018 kWh (-3.9%) combined=0.0030 kWh ema_combined=0.0025 kWh
2026-08-16 20:55:00.146816: --------------- PredBat - update at 2026-08-16 20:55:00+01:00 with clock skew 0 minutes, minutes now 1255
2026-08-16 20:55:00.147879: Saved current settings to /config/predbat_config.json
2026-08-16 20:55:00.148076: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 20:55:00.148294: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.2, latest beta is v8.48.2
2026-08-16 20:55:00.148413: Autoupdate: There is an update pending v8.48.2 PV90 and second pass enabled by default, bug fixes - auto update is off
2026-08-16 20:55:00.192173: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 20:55:00.192371: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 20:55:00.192685: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 20:55:00.193770: 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-16 20:55:00.194015: Predbat mode is set to Control charge & discharge
2026-08-16 20:55:00.544166: Found 21602 load_today datapoints going back 28 days
2026-08-16 20:55:00.544383: Using load_power data to fill gaps in load_today data
2026-08-16 20:55:01.762681: Processing 721 30-minute periods for power integration
2026-08-16 20:55:01.927958: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 20:55:01.928202: Car charging hold False, threshold 6.0kWh
2026-08-16 20:55:01.928277: Current data so far today: load 9.9kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 20:55:01.944911: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 20:55:01.945249: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 20:55:01.945961: Standing charge is set to 46.63p
2026-08-16 20:55:02.078521: 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-16 20:55:02.078945: 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-16 20:55:02.079231: 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-16 20:55:02.079585: 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-16 20:55:02.079838: 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-16 20:55:02.080095: 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-16 20:55:02.080349: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.080504: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.080664: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.080846: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.081115: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.081314: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.081471: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.081615: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.081927: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 20:55:02.082061: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 20:55:02.086707: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 20:55:02.101408: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 20:55:02.156423: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 20:55:02.169081: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 20:55:02.170726: High export rate found rates in range 99p to -99p
2026-08-16 20:55:02.219304: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 20:55:02.233109: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 20:55:02.233352: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 20:55:02.266782: Battery level now 9.87kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -2.53p, change today -16.05p, rate_forward 6.87p
2026-08-16 20:55:02.267231: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.56p, import 0.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 20:55:02.392263: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 20:55:02.392584: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 20:55:02.646699: Using weighted-bucket historical load forecast over 14 days
2026-08-16 20:55:02.770643: Today's load divergence 79.16%, in-day adjustment 80.56%, damping 0.95x, yesterday 82.97% today 80.2% blend 12.85%
2026-08-16 20:55:02.771017: Today's predicted so far 12.51kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 12.51kWh forecast extra.
2026-08-16 20:55:02.771170: Today's actual load so far 9.87kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 20:55:02.814042: Inverter 0: Type SK Sunsynk
2026-08-16 20:55:02.814258: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 20:55:02.814476: Reserve min: 7%, battery_min: 7%
2026-08-16 20:55:02.815633: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 20:55:02.816155: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 338W, current battery voltage 51.2V, grid power -55W, load power 395W, PV Power 0W
2026-08-16 20:55:02.816411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:55:02.816548: Inverter 0 scheduled charge enable is False
2026-08-16 20:55:02.816701: Inverter 0 charge windows currently []
2026-08-16 20:55:02.816855: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 20:55:02.817259: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:55:02.817427: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:55:02.817620: Inverter 0 scheduled discharge enable is False
2026-08-16 20:55:02.817908: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:55:02.818083: Inverter 0 discharge windows currently []
2026-08-16 20:55:02.818202: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:55:02.818329: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:55:02.818432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:55:02.919467: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 20:55:02.919747: Plan was last updated on 2026-08-16 20:50:00+01:00 and is now 5.0 minutes old
2026-08-16 20:55:02.920191: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 20:55:02.920341: Best export window [  ]
2026-08-16 20:55:02.921771: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 20:55:02.926775: Load divergence over 8.0 hours mean 597.16W, min 339.0W, max 1060.8W, std dev 228.81W, divergence 19.16%
2026-08-16 20:55:02.957808: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 20:55:02.958153: LoadML is_calculating True
2026-08-16 20:55:02.958328: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 20:55:03.034704: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 664.17p, metric_keep 223.74kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 27.52kWh, PV 0.0kWh
2026-08-16 20:55:03.253967: Battery has 12.42 hours left - now at 9.76kWh
2026-08-16 20:55:03.320901: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 692.34p, metric_keep 237.89kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.36kWh, PV 0.0kWh
2026-08-16 20:55:03.447363: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 439.55p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 20:55:03.634117: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 437.53p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.52kWh, PV 0.0kWh
2026-08-16 20:55:03.634200: Saving plan best values to HA entities
2026-08-16 20:55:03.924525: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 20:55:03.932086: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 20:55:03.939492: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.72kWh, house 0.0kWh, export 0.0kWh, metric 437.53p, metric10 439.55p
2026-08-16 20:55:04.054703: Marginal costs baseline metric (no standing charge): 390.8975
2026-08-16 20:55:04.449645: Marginal energy costs matrix computed: min=4.67 max=30.12
2026-08-16 20:55:04.560136: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 20:55:04.561115: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 20:55:04.561178: - 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-16 20:55:04.561205: - The battery is currently at 61% and is in eco mode for the next 2 and a half hours.
2026-08-16 20:55:04.561229: - For the next 48 hours there will be no solar generation.
2026-08-16 20:55:04.561261: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 20:55:04.561292: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-16 20:55:04.561317: 
2026-08-16 20:55:04.623490: Plan calculation took 1.70 seconds
2026-08-16 20:55:04.629432: No high rate period found
2026-08-16 20:55:04.714450: Import threshold used for optimisation was 8.0p
2026-08-16 20:55:04.827691: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 20:55:04.837618: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 20:55:04.838115: Inverter 0 disabled charge window while waiting for schedule (now 08-16 20:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 20:55:04.838374: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:55:04.838780: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:55:04.839044: No export window planned
2026-08-16 20:55:04.839353: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 20:55:04.839512: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 20:55:04.839839: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 20:55:04.840212: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 20:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 20:55:04.840387: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 20:55:04.840645: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 20:55:04.840907: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.841120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.841317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.841507: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.841691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.841876: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.842077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.842356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.842519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.842714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.842907: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.843123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.843319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.843513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 20:55:04.843693: Inverter 0 count register writes 0
2026-08-16 20:55:04.890029: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 20:55:04.918339: Total inverter register writes now 844
2026-08-16 20:55:04.977444: Info: Completed run status Demand
2026-08-16 20:55:04.990484: Info: record_status Demand
2026-08-16 20:55:05.002474: Saved current settings to /config/predbat_config.json
2026-08-16 20:55:05.002739: Compare, best tariff: current metric 318.25p
2026-08-16 20:55:27.303318: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=+0.0006 kWh (+1.2%) combined=0.0029 kWh ema_combined=0.0027 kWh
2026-08-16 20:55:49.156125: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:55:49.156417: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:55:49.156466: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:55:49.156605: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:55:49.156646: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:55:49.156668: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:55:49.156687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:55:55.092168: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0074 val_mae=0.0034 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 20:56:25.675956: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=+0.0008 kWh (+1.7%) combined=0.0030 kWh ema_combined=0.0026 kWh
2026-08-16 20:56:54.511682: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0032 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-16 20:57:22.340282: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0070 val_mae=0.0032 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 20:57:51.543904: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0066 val_mae=0.0032 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-16 20:58:03.471744: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 20:58:03.472011: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 20:58:03.472057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 20:58:03.472194: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 20:58:03.472235: Note: Inverter does not support discharge freeze - disabled
2026-08-16 20:58:03.472256: Note: Inverter does not support charge freeze - disabled
2026-08-16 20:58:03.472359: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 20:58:20.640767: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0069 val_mae=0.0031 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-16 20:58:45.879931: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-16 20:59:12.161925: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0061 val_mae=0.0030 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-16 20:59:38.628136: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0063 val_mae=0.0029 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-16 21:00:00.888813: --------------- PredBat - update at 2026-08-16 21:00:00+01:00 with clock skew 0 minutes, minutes now 1260
2026-08-16 21:00:00.890098: Saved current settings to /config/predbat_config.json
2026-08-16 21:00:01.425263: 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-16 21:00:01.425495: 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-16 21:00:01.480366: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:00:01.480618: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:00:01.481004: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:00:01.481677: 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-16 21:00:01.481903: Predbat mode is set to Control charge & discharge
2026-08-16 21:00:01.879922: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:00:01.886012: Using load_power data to fill gaps in load_today data
2026-08-16 21:00:03.254164: Processing 721 30-minute periods for power integration
2026-08-16 21:00:03.556284: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:00:03.569056: Car charging hold False, threshold 6.0kWh
2026-08-16 21:00:03.569172: Current data so far today: load 10.02kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:00:03.625657: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:00:03.625802: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:00:03.626796: Standing charge is set to 46.63p
2026-08-16 21:00:03.807253: 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-16 21:00:03.808006: 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-16 21:00:03.808340: 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-16 21:00:03.808660: 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-16 21:00:03.809010: 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-16 21:00:03.809309: 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-16 21:00:03.809602: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.809789: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.809972: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.810140: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.810300: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.810476: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.810674: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.811455: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.811883: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:00:03.811984: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:00:03.818955: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:00:03.819450: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:00:03.866148: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:00:03.866269: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:00:03.867587: High export rate found rates in range 99p to -99p
2026-08-16 21:00:03.903051: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:00:03.903295: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:00:03.903370: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:00:03.921275: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -16.82p, rate_forward 6.87p
2026-08-16 21:00:03.921967: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 21:00:04.043513: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:00:04.043722: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:00:04.257481: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:00:04.309245: Today's load divergence 79.51%, in-day adjustment 80.84%, damping 0.95x, yesterday 82.97% today 80.54% blend 12.5%
2026-08-16 21:00:04.326125: Today's predicted so far 12.64kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.64kWh forecast extra.
2026-08-16 21:00:04.326225: Today's actual load so far 10.04kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 21:00:04.390183: Inverter 0: Type SK Sunsynk
2026-08-16 21:00:04.390296: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:00:04.390558: Reserve min: 7%, battery_min: 7%
2026-08-16 21:00:04.390668: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:00:04.391024: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 449W, current battery voltage 51.2V, grid power -57W, load power 510W, PV Power 0W
2026-08-16 21:00:04.391297: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:00:04.391431: Inverter 0 scheduled charge enable is False
2026-08-16 21:00:04.391488: Inverter 0 charge windows currently []
2026-08-16 21:00:04.391556: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:00:04.391732: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:00:04.391790: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:00:04.391865: Inverter 0 scheduled discharge enable is False
2026-08-16 21:00:04.392074: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:00:04.392127: Inverter 0 discharge windows currently []
2026-08-16 21:00:04.392162: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:00:04.392216: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:00:04.392246: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:00:04.533068: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:00:04.533225: Plan was last updated on 2026-08-16 20:50:00+01:00 and is now 10.0 minutes old
2026-08-16 21:00:04.533582: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:00:04.533647: Best export window [  ]
2026-08-16 21:00:04.534943: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:00:04.540052: Load divergence over 8.0 hours mean 598.68W, min 339.0W, max 1100.4W, std dev 229.49W, divergence 19.17%
2026-08-16 21:00:04.630452: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:00:04.630633: LoadML is_calculating True
2026-08-16 21:00:04.630674: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 21:00:04.698853: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 664.57p, metric_keep 223.72kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 21:00:04.913629: Battery has 12.42 hours left - now at 9.76kWh
2026-08-16 21:00:05.017999: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 692.85p, metric_keep 237.79kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.58kWh, PV 0.0kWh
2026-08-16 21:00:05.143555: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.03p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.58kWh, PV 0.0kWh
2026-08-16 21:00:05.350403: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.54p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.73kWh, PV 0.0kWh
2026-08-16 21:00:05.350681: Saving plan best values to HA entities
2026-08-16 21:00:05.692099: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:00:05.701598: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:00:05.715803: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.22kWh, house 0.0kWh, export 0.0kWh, metric 441.54p, metric10 443.03p
2026-08-16 21:00:05.871244: Marginal costs baseline metric (no standing charge): 394.9053
2026-08-16 21:00:06.274269: Marginal energy costs matrix computed: min=4.0 max=30.11
2026-08-16 21:00:06.358483: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:00:06.359130: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:00:06.359389: - 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-16 21:00:06.359440: - The battery is currently at 61% and is in eco mode for the next 2 and a half hours.
2026-08-16 21:00:06.359460: - For the next 48 hours there will be no solar generation.
2026-08-16 21:00:06.359561: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:00:06.359592: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-16 21:00:06.359786: 
2026-08-16 21:00:06.415442: Plan calculation took 1.88 seconds
2026-08-16 21:00:06.420591: No high rate period found
2026-08-16 21:00:06.525194: Import threshold used for optimisation was 8.0p
2026-08-16 21:00:06.624685: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:00:06.637924: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 21:00:06.638061: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:00:06.638128: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:00:06.638309: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:00:06.638389: No export window planned
2026-08-16 21:00:06.638630: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:00:06.641299: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:00:06.641609: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:00:06.641855: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:00:06.641993: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:00:06.642103: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:00:06.642264: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642463: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642568: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.642900: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643654: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:06.643762: Inverter 0 count register writes 0
2026-08-16 21:00:06.687743: 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-16 21:00:06.688094: Recompute is saving previous plan...
2026-08-16 21:00:06.690988: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:00:06.691186: Best export window [  ]
2026-08-16 21:00:06.692094: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:00:06.697133: Load divergence over 8.0 hours mean 598.68W, min 339.0W, max 1100.4W, std dev 229.49W, divergence 19.17%
2026-08-16 21:00:06.739748: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:00:06.740068: LoadML is_calculating True
2026-08-16 21:00:06.740187: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 21:00:06.750866: 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-16 21:00:06.752066: Optimise levels pass started at 2026-08-16 21:00:06
2026-08-16 21:00:06.752233: Optimise all windows, total charge 25 export 1
2026-08-16 21:00:10.921989: >> Region optimisation pass width 960 gives best_metric 499.58p, best_cost 525.61p, best_cycle 41.07kWh, best_import 28.56kWh
2026-08-16 21:00:11.281735: >> Region optimisation pass width 480 gives best_metric 499.25p, best_cost 521.41p, best_cycle 41.62kWh, best_import 28.03kWh
2026-08-16 21:00:11.778607: >> Region optimisation pass width 240 gives best_metric 499.25p, best_cost 521.41p, best_cycle 41.62kWh, best_import 28.03kWh
2026-08-16 21:00:13.472366: >> Region optimisation pass width 120 gives best_metric 498.38p, best_cost 510.32p, best_cycle 43.06kWh, best_import 26.65kWh
2026-08-16 21:00:13.472813: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:00:13.473038: Optimise levels pass ended at 2026-08-16 21:00:13, duration 6.7 seconds tried 89 combinations
2026-08-16 21:00:13.473455: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 498.38p, best_keep 0kWh, best_cycle 43.06kWh, best_carbon 0kg, best_import 26.65kWh
2026-08-16 21:00:13.505264: Starting detailed optimisation end_record 08-17 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, 0, 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-16 21:00:18.402698: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0062 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-16 21:00:20.878851: Tweak plan optimisation started metric 375.76p, cost 388.51p
2026-08-16 21:00:21.413892: Tweak optimisation finished metric 375.76p, cost 388.51p, metric_keep 0.01kWh, cycle 23.66kWh, carbon 0kg, import 11.42kWh, changed 8 window(s)
2026-08-16 21:00:21.451433: Swap charge optimisation started metric 375.76p, cost 388.51p, min_improvement_swap 0.1p
2026-08-16 21:00:22.382381: Swap charge optimisation finished metric 375.76p, cost 388.51p
2026-08-16 21:00:22.468021: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 21:00:22.468611: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:00:22.468916: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:00:22.469218: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:00:22.522831: Previous plan best metric is 373.51 (cost 386.61) and new plan best metric is 375.76 (cost 388.51)
2026-08-16 21:00:22.523793: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:00:22.524012: Plan valid is now true after recompute was False
2026-08-16 21:00:22.588350: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 662.94p, metric_keep 223.13kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.53kWh, PV 0.0kWh
2026-08-16 21:00:22.804207: Battery has 12.42 hours left - now at 9.76kWh
2026-08-16 21:00:22.870635: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 691.14p, metric_keep 237.21kWh, min_soc 1.12kWh @ 08-17 08:30:00, load 28.36kWh, PV 0.0kWh
2026-08-16 21:00:22.987935: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 435.77p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.36kWh, PV 0.0kWh
2026-08-16 21:00:23.108645: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 433.24p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.53kWh, PV 0.0kWh
2026-08-16 21:00:23.133095: Saving plan best values to HA entities
2026-08-16 21:00:23.403987: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:00:23.410669: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:00:23.419677: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.18kWh, house 0.0kWh, export 0.0kWh, metric 433.24p, metric10 435.77p
2026-08-16 21:00:23.600809: Marginal costs baseline metric (no standing charge): 386.609
2026-08-16 21:00:24.055553: Marginal energy costs matrix computed: min=4.0 max=30.11
2026-08-16 21:00:24.149259: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1260, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:00:24.150036: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:00:24.150084: - 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-16 21:00:24.150107: - The battery is currently at 61% and is in eco mode for the next 2 and a half hours.
2026-08-16 21:00:24.150126: - For the next 48 hours there will be no solar generation.
2026-08-16 21:00:24.150145: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:00:24.150164: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-16 21:00:24.150191: 
2026-08-16 21:00:24.202606: Plan calculation took 17.51 seconds
2026-08-16 21:00:24.202851: Inverter 0: Type SK Sunsynk
2026-08-16 21:00:24.202892: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:00:24.203078: Reserve min: 7%, battery_min: 7%
2026-08-16 21:00:24.203150: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:00:24.203409: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 436W, current battery voltage 51.2V, grid power -54W, load power 492W, PV Power 0W
2026-08-16 21:00:24.203582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:00:24.203676: Inverter 0 scheduled charge enable is False
2026-08-16 21:00:24.203712: Inverter 0 charge windows currently []
2026-08-16 21:00:24.203739: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:00:24.203844: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:00:24.203955: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:00:24.204012: Inverter 0 scheduled discharge enable is False
2026-08-16 21:00:24.204206: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:00:24.204253: Inverter 0 discharge windows currently []
2026-08-16 21:00:24.204316: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:00:24.204350: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:00:24.204432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:00:24.303420: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 21:00:24.303776: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:00:24.303982: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:00:24.304331: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:00:24.304546: No export window planned
2026-08-16 21:00:24.304800: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:00:24.304983: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:00:24.305312: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:00:24.305639: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:00:24.305811: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:00:24.305984: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:00:24.306194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.306357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.306520: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.306672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.306824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.306983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307130: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.307942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.308108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.308259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:00:24.308393: Inverter 0 count register writes 0
2026-08-16 21:00:24.361432: Total inverter register writes now 844
2026-08-16 21:00:24.422352: Info: Completed run status Demand
2026-08-16 21:00:24.442012: Info: record_status Demand
2026-08-16 21:00:24.450114: Saved current settings to /config/predbat_config.json
2026-08-16 21:00:24.450431: Compare, best tariff: current metric 318.25p
2026-08-16 21:00:52.055427: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 21:01:03.634796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:01:03.635306: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:01:03.635472: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:01:03.635747: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:01:03.635826: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:01:03.636143: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:01:03.636306: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:01:19.965675: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 21:01:45.928147: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0053 val_mae=0.0028 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 21:02:14.348970: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0051 val_mae=0.0028 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-16 21:02:43.316499: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 21:03:04.069666: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:03:04.069957: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:03:04.070010: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:03:04.070178: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:03:04.070227: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:03:04.070255: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:03:04.070310: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:03:11.950351: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 21:03:39.484990: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-16 21:03:39.486041: ML Predictor: Restored best weights from epoch with val_mae=0.0028 kWh val_bias=-0.0005 kWh (-1.0%)
2026-08-16 21:03:39.486235: ML Predictor: Training complete, final val_mae=0.0028 kWh val_bias=-0.0005 kWh (-1.0%)
2026-08-16 21:03:44.206555: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=-0.0006 kWh (-1.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 21:03:44.224414: ML Predictor: Curriculum training complete, final val_mae=0.0028 kWh
2026-08-16 21:03:44.236399: ML Component: Training successful, val_mae=0.0028 kWh
2026-08-16 21:03:44.406196: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-16 21:03:44.410860: ML Component: Generating predictions load data age 58.0 days, 16778 data points
2026-08-16 21:03:44.557426: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0221 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 21:03:45.094310: ML Component: Generated 576 predictions (total 25.80 kWh over 48h)
2026-08-16 21:03:45.135408: ML Component: Prediction cycle completed
2026-08-16 21:03:45.256797: ML Component: Saved 16778 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 21:05:00.495213: --------------- PredBat - update at 2026-08-16 21:05:00+01:00 with clock skew 0 minutes, minutes now 1265
2026-08-16 21:05:00.496047: Saved current settings to /config/predbat_config.json
2026-08-16 21:05:00.496166: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 21:05:00.496283: 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-16 21:05:00.496374: 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-16 21:05:00.519466: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:05:00.519606: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:05:00.519810: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:05:00.520588: 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-16 21:05:00.521227: Predbat mode is set to Control charge & discharge
2026-08-16 21:05:00.782558: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:05:00.782751: Using load_power data to fill gaps in load_today data
2026-08-16 21:05:01.647060: Processing 721 30-minute periods for power integration
2026-08-16 21:05:01.846928: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:05:01.847078: Car charging hold False, threshold 6.0kWh
2026-08-16 21:05:01.847147: Current data so far today: load 10.05kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:05:01.866179: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:05:01.866312: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:05:01.867029: Standing charge is set to 46.63p
2026-08-16 21:05:01.961264: 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-16 21:05:01.963180: 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-16 21:05:01.966184: 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-16 21:05:01.966513: 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-16 21:05:01.966787: 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-16 21:05:01.967018: 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-16 21:05:01.967294: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.967499: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.967809: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.967905: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.967991: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.968082: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.968169: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.968292: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.968491: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:05:01.968553: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:05:01.974686: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:05:01.975031: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:05:02.030499: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:05:02.031807: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:05:02.035666: High export rate found rates in range 99p to -99p
2026-08-16 21:05:02.075539: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:05:02.075681: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:05:02.075747: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:05:02.105474: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -16.82p, rate_forward 6.87p
2026-08-16 21:05:02.105850: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.28p, import 0.28p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 21:05:02.219199: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:05:02.219483: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:05:02.333825: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:05:02.365145: Today's load divergence 79.48%, in-day adjustment 80.8%, damping 0.95x, yesterday 82.97% today 80.5% blend 12.15%
2026-08-16 21:05:02.365265: Today's predicted so far 12.74kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.74kWh forecast extra.
2026-08-16 21:05:02.365308: Today's actual load so far 10.13kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 21:05:02.413620: Inverter 0: Type SK Sunsynk
2026-08-16 21:05:02.413715: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:05:02.413914: Reserve min: 7%, battery_min: 7%
2026-08-16 21:05:02.413985: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:05:02.414255: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 389W, current battery voltage 51.2V, grid power -58W, load power 447W, PV Power 0W
2026-08-16 21:05:02.414445: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:05:02.414590: Inverter 0 scheduled charge enable is False
2026-08-16 21:05:02.414641: Inverter 0 charge windows currently []
2026-08-16 21:05:02.414689: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:05:02.414901: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:05:02.414975: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:05:02.415020: Inverter 0 scheduled discharge enable is False
2026-08-16 21:05:02.415171: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:05:02.415213: Inverter 0 discharge windows currently []
2026-08-16 21:05:02.415306: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:05:02.415364: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:05:02.415409: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:05:02.506771: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:05:02.506908: Plan was last updated on 2026-08-16 21:00:00+01:00 and is now 5.0 minutes old
2026-08-16 21:05:02.507222: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:05:02.507306: Best export window [  ]
2026-08-16 21:05:02.508196: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:05:02.511445: Load divergence over 8.0 hours mean 600.06W, min 335.4W, max 1131.0W, std dev 239.17W, divergence 19.93%
2026-08-16 21:05:02.531728: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:05:02.531866: LoadML is_calculating False
2026-08-16 21:05:02.531963: Creating pool of 12 processes to match your CPU count
2026-08-16 21:05:02.672642: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 662.85p, metric_keep 222.7kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.63kWh, PV 0.0kWh
2026-08-16 21:05:02.822418: Battery has 12.33 hours left - now at 9.76kWh
2026-08-16 21:05:02.872406: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 690.97p, metric_keep 236.64kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.47kWh, PV 0.0kWh
2026-08-16 21:05:02.964393: predict best10 end_record 08-17 23:35:00, final soc 1.81kWh, metric 439.22p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.47kWh, PV 0.0kWh
2026-08-16 21:05:03.062466: predict best end_record 08-17 23:35:00, final soc 2.44kWh, metric 437.22p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.63kWh, PV 0.0kWh
2026-08-16 21:05:03.062568: Saving plan best values to HA entities
2026-08-16 21:05:03.234879: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:05:03.240789: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:05:03.246581: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.68kWh, house 0.0kWh, export 0.0kWh, metric 437.22p, metric10 439.22p
2026-08-16 21:05:03.338179: Marginal costs baseline metric (no standing charge): 390.5818
2026-08-16 21:05:03.634637: Marginal energy costs matrix computed: min=3.33 max=30.08
2026-08-16 21:05:03.714336: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:05:03.715049: - Your estimated bill for today is £3.20 and tomorrow is £1.37
2026-08-16 21:05:03.715095: - 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-16 21:05:03.715117: - The battery is currently at 61% and is in eco mode for the next 2 and a half hours.
2026-08-16 21:05:03.715135: - For the next 48 hours there will be no solar generation.
2026-08-16 21:05:03.715153: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:05:03.715171: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-16 21:05:03.715214: 
2026-08-16 21:05:03.777411: Plan calculation took 1.27 seconds
2026-08-16 21:05:03.781595: No high rate period found
2026-08-16 21:05:03.834497: Import threshold used for optimisation was 8.0p
2026-08-16 21:05:03.891700: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:05:03.898968: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 21:05:03.899158: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:05:03.899354: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:05:03.899712: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:05:03.899855: No export window planned
2026-08-16 21:05:03.900061: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:05:03.900116: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:05:03.900342: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:05:03.900605: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:05:03.900700: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:05:03.900806: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:05:03.900934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901192: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901265: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:05:03.901772: Inverter 0 count register writes 0
2026-08-16 21:05:03.920495: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:05:03.926412: Total inverter register writes now 844
2026-08-16 21:05:03.965038: Info: Completed run status Demand
2026-08-16 21:05:03.972799: Info: record_status Demand
2026-08-16 21:05:03.981286: Saved current settings to /config/predbat_config.json
2026-08-16 21:05:03.981698: Compare, best tariff: current metric 318.25p
2026-08-16 21:05:34.089265: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:05:34.089544: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:05:34.089650: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:05:34.089859: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:05:34.089922: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:05:34.089944: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:05:34.089962: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:07:34.314872: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:07:34.315107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:07:34.315171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:07:34.315333: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:07:34.315400: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:07:34.315421: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:07:34.315445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:09:48.551247: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:09:48.551532: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:09:48.551600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:09:48.551810: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:09:48.551861: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:09:48.551898: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:09:48.551934: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:10:00.644351: --------------- PredBat - update at 2026-08-16 21:10:00+01:00 with clock skew 0 minutes, minutes now 1270
2026-08-16 21:10:00.645237: Saved current settings to /config/predbat_config.json
2026-08-16 21:10:00.645427: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 21:10:00.645574: 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-16 21:10:00.645672: 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-16 21:10:00.667535: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:10:00.667692: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:10:00.667860: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:10:00.668393: 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-16 21:10:00.668542: Predbat mode is set to Control charge & discharge
2026-08-16 21:10:00.888552: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:10:00.888716: Using load_power data to fill gaps in load_today data
2026-08-16 21:10:01.603683: Processing 721 30-minute periods for power integration
2026-08-16 21:10:01.759923: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:10:01.760065: Car charging hold False, threshold 6.0kWh
2026-08-16 21:10:01.760109: Current data so far today: load 10.15kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:10:01.775430: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:10:01.775525: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:10:01.776194: Standing charge is set to 46.63p
2026-08-16 21:10:01.849062: 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-16 21:10:01.849287: 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-16 21:10:01.849458: 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-16 21:10:01.849607: 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-16 21:10:01.849774: 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-16 21:10:01.849911: 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-16 21:10:01.850066: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850146: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850212: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850279: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850340: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850404: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850464: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850517: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850669: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:10:01.850712: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:10:01.855258: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:10:01.855643: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:10:01.889852: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:10:01.889962: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:10:01.891164: High export rate found rates in range 99p to -99p
2026-08-16 21:10:01.918543: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:10:01.918661: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:10:01.918712: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:10:01.931871: Battery level now 9.76kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -16.82p, rate_forward 6.87p
2026-08-16 21:10:01.932367: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.14p, import 0.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 21:10:01.986980: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:10:01.987159: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:10:02.067708: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:10:02.092784: Today's load divergence 79.97%, in-day adjustment 81.21%, damping 0.95x, yesterday 82.97% today 80.97% blend 11.81%
2026-08-16 21:10:02.092865: Today's predicted so far 12.73kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 12.73kWh forecast extra.
2026-08-16 21:10:02.092891: Today's actual load so far 10.18kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 21:10:02.125289: Inverter 0: Type SK Sunsynk
2026-08-16 21:10:02.125371: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:10:02.125555: Reserve min: 7%, battery_min: 7%
2026-08-16 21:10:02.125620: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:10:02.125839: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -51W, load power 441W, PV Power 0W
2026-08-16 21:10:02.125971: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:10:02.126055: Inverter 0 scheduled charge enable is False
2026-08-16 21:10:02.126085: Inverter 0 charge windows currently []
2026-08-16 21:10:02.126106: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:10:02.126193: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:10:02.126223: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:10:02.126251: Inverter 0 scheduled discharge enable is False
2026-08-16 21:10:02.126352: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:10:02.126383: Inverter 0 discharge windows currently []
2026-08-16 21:10:02.126400: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:10:02.126415: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:10:02.126429: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:10:02.178082: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:10:02.178183: Plan was last updated on 2026-08-16 21:00:00+01:00 and is now 10.0 minutes old
2026-08-16 21:10:02.178370: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:10:02.178406: Best export window [  ]
2026-08-16 21:10:02.179081: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:10:02.181560: Load divergence over 8.0 hours mean 598.53W, min 339.0W, max 1105.2W, std dev 236.99W, divergence 19.8%
2026-08-16 21:10:02.196576: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:10:02.196675: LoadML is_calculating False
2026-08-16 21:10:02.196732: Creating pool of 12 processes to match your CPU count
2026-08-16 21:10:02.301571: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 662.73p, metric_keep 221.92kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.81kWh, PV 0.0kWh
2026-08-16 21:10:02.423640: Battery has 12.33 hours left - now at 9.76kWh
2026-08-16 21:10:02.463569: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 690.86p, metric_keep 235.56kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.65kWh, PV 0.0kWh
2026-08-16 21:10:02.552760: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 442.57p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.65kWh, PV 0.0kWh
2026-08-16 21:10:02.639791: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.1p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.81kWh, PV 0.0kWh
2026-08-16 21:10:02.639904: Saving plan best values to HA entities
2026-08-16 21:10:02.814989: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:10:02.821974: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:10:02.828259: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.17kWh, house 0.0kWh, export 0.0kWh, metric 441.1p, metric10 442.57p
2026-08-16 21:10:02.916075: Marginal costs baseline metric (no standing charge): 394.4628
2026-08-16 21:10:03.229605: Marginal energy costs matrix computed: min=2.67 max=30.12
2026-08-16 21:10:03.302140: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:10:03.302816: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:10:03.302863: - 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-16 21:10:03.302885: - The battery is currently at 61% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 21:10:03.302903: - For the next 48 hours there will be no solar generation.
2026-08-16 21:10:03.302920: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:10:03.302942: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 21:10:03.302959: 
2026-08-16 21:10:03.356365: Plan calculation took 1.18 seconds
2026-08-16 21:10:03.360595: No high rate period found
2026-08-16 21:10:03.416763: Import threshold used for optimisation was 8.0p
2026-08-16 21:10:03.471962: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:10:03.478098: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 21:10:03.478242: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:10:03.478364: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:10:03.478695: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:10:03.478796: No export window planned
2026-08-16 21:10:03.478917: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:10:03.478956: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:10:03.479121: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:10:03.479311: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:10:03.479377: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:10:03.479441: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:10:03.479542: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479614: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479761: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.479951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:03.480364: Inverter 0 count register writes 0
2026-08-16 21:10:03.499520: 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-16 21:10:03.499705: Recompute is saving previous plan...
2026-08-16 21:10:03.500660: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:10:03.500710: Best export window [  ]
2026-08-16 21:10:03.501558: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:10:03.504685: Load divergence over 8.0 hours mean 598.53W, min 339.0W, max 1105.2W, std dev 236.99W, divergence 19.8%
2026-08-16 21:10:03.522609: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:10:03.522722: LoadML is_calculating False
2026-08-16 21:10:03.522799: Creating pool of 12 processes to match your CPU count
2026-08-16 21:10:03.616671: 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-16 21:10:03.617797: Optimise levels pass started at 2026-08-16 21:10:03
2026-08-16 21:10:03.617875: Optimise all windows, total charge 25 export 1
2026-08-16 21:10:04.032237: >> Region optimisation pass width 960 gives best_metric 500.1p, best_cost 527.13p, best_cycle 41.31kWh, best_import 28.75kWh
2026-08-16 21:10:04.197898: >> Region optimisation pass width 480 gives best_metric 500.1p, best_cost 527.13p, best_cycle 41.31kWh, best_import 28.75kWh
2026-08-16 21:10:04.511155: >> Region optimisation pass width 240 gives best_metric 500.1p, best_cost 527.13p, best_cycle 41.31kWh, best_import 28.75kWh
2026-08-16 21:10:05.161397: >> Region optimisation pass width 120 gives best_metric 499.18p, best_cost 515.33p, best_cycle 42.84kWh, best_import 27.27kWh
2026-08-16 21:10:05.161656: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:10:05.161745: Optimise levels pass ended at 2026-08-16 21:10:05, duration 1.5 seconds tried 79 combinations
2026-08-16 21:10:05.161810: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 499.18p, best_keep 0kWh, best_cycle 42.84kWh, best_carbon 0kg, best_import 27.27kWh
2026-08-16 21:10:05.183183: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 21:10:07.666796: Tweak plan optimisation started metric 372.96p, cost 386.04p
2026-08-16 21:10:07.983409: Tweak optimisation finished metric 372.96p, cost 386.04p, metric_keep 0kWh, cycle 19.48kWh, carbon 0kg, import 11.11kWh, changed 8 window(s)
2026-08-16 21:10:08.004968: Swap charge optimisation started metric 372.96p, cost 386.04p, min_improvement_swap 0.1p
2026-08-16 21:10:08.940517: Swap charge optimisation finished metric 372.96p, cost 386.04p
2026-08-16 21:10:09.085188: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 21:10:09.085574: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:10:09.085826: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:10:09.086002: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:10:09.126184: Previous plan best metric is 372.96 (cost 386.04) and new plan best metric is 372.96 (cost 386.04)
2026-08-16 21:10:09.126434: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:10:09.126599: Plan valid is now true after recompute was False
2026-08-16 21:10:09.161757: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 660.97p, metric_keep 221.33kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.59kWh, PV 0.0kWh
2026-08-16 21:10:09.284291: Battery has 12.33 hours left - now at 9.76kWh
2026-08-16 21:10:09.334354: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 689.03p, metric_keep 234.97kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.43kWh, PV 0.0kWh
2026-08-16 21:10:09.415456: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 435.17p, metric_keep 2.14kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.43kWh, PV 0.0kWh
2026-08-16 21:10:09.500730: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 432.67p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.59kWh, PV 0.0kWh
2026-08-16 21:10:09.500845: Saving plan best values to HA entities
2026-08-16 21:10:09.660995: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:10:09.666777: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:10:09.673175: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.11kWh, house 0.0kWh, export 0.0kWh, metric 432.67p, metric10 435.17p
2026-08-16 21:10:09.757706: Marginal costs baseline metric (no standing charge): 386.041
2026-08-16 21:10:10.058971: Marginal energy costs matrix computed: min=2.67 max=30.12
2026-08-16 21:10:10.132232: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1270, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:10:10.132882: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:10:10.132929: - 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-16 21:10:10.132978: - The battery is currently at 61% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 21:10:10.133003: - For the next 48 hours there will be no solar generation.
2026-08-16 21:10:10.133115: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:10:10.133160: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 21:10:10.133182: 
2026-08-16 21:10:10.189500: Plan calculation took 6.69 seconds
2026-08-16 21:10:10.189866: Inverter 0: Type SK Sunsynk
2026-08-16 21:10:10.189914: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:10:10.190267: Reserve min: 7%, battery_min: 7%
2026-08-16 21:10:10.190410: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:10:10.190911: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -51W, load power 441W, PV Power 0W
2026-08-16 21:10:10.191309: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:10:10.191480: Inverter 0 scheduled charge enable is False
2026-08-16 21:10:10.191543: Inverter 0 charge windows currently []
2026-08-16 21:10:10.191603: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:10:10.191786: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:10:10.191856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:10:10.191926: Inverter 0 scheduled discharge enable is False
2026-08-16 21:10:10.192154: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:10:10.192210: Inverter 0 discharge windows currently []
2026-08-16 21:10:10.192254: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:10:10.192283: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:10:10.192308: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:10:10.250521: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 21:10:10.250682: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:10:10.250775: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:10:10.250965: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:10:10.251066: No export window planned
2026-08-16 21:10:10.251179: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:10:10.251208: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:10:10.251341: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:10:10.251508: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:10:10.251563: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:10:10.251618: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:10:10.251715: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251840: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251866: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251890: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.251979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:10:10.252183: Inverter 0 count register writes 0
2026-08-16 21:10:10.278566: Total inverter register writes now 844
2026-08-16 21:10:10.335633: Info: Completed run status Demand
2026-08-16 21:10:10.345821: Info: record_status Demand
2026-08-16 21:10:10.355871: Saved current settings to /config/predbat_config.json
2026-08-16 21:10:10.356389: Compare, best tariff: current metric 318.25p
2026-08-16 21:10:48.477846: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:10:48.478113: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:10:48.478157: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:10:48.478320: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:10:48.478383: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:10:48.478405: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:10:48.478423: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:12:48.727488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:12:48.727811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:12:48.727847: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:12:48.728005: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:12:48.728069: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:12:48.728092: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:12:48.728110: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:13:45.859675: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 21:13:46.777150: Processing 1345 30-minute periods for power integration
2026-08-16 21:13:46.860487: ML Component: Car charging hold False, car energy reported load False
2026-08-16 21:13:46.963876: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:13:47.053246: ML Temperature data points: 49131
2026-08-16 21:13:47.277493: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 21:13:47.314528: ML Component: Data fetch completed, load data age 58.0 days, 16790 data points
2026-08-16 21:13:47.314653: ML Component: No training needed, model age is 0.1 hours
2026-08-16 21:13:47.314711: ML Component: Generating predictions load data age 58.0 days, 16790 data points
2026-08-16 21:13:47.432445: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0378 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 21:13:47.957969: ML Component: Generated 576 predictions (total 25.92 kWh over 48h)
2026-08-16 21:13:47.993645: ML Component: Prediction cycle completed
2026-08-16 21:13:48.095871: ML Component: Saved 16790 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 21:14:29.765333: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 21:14:29.905219: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 21:14:48.999108: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:14:48.999392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:14:48.999442: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:14:48.999615: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:14:48.999660: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:14:48.999686: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:14:48.999734: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:15:00.108168: --------------- PredBat - update at 2026-08-16 21:15:00+01:00 with clock skew 0 minutes, minutes now 1275
2026-08-16 21:15:00.108934: Saved current settings to /config/predbat_config.json
2026-08-16 21:15:00.109086: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 21:15:00.109172: 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-16 21:15:00.109305: 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-16 21:15:00.129541: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:15:00.129700: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:15:00.129892: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:15:00.130536: 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-16 21:15:00.130670: Predbat mode is set to Control charge & discharge
2026-08-16 21:15:00.335821: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:15:00.335995: Using load_power data to fill gaps in load_today data
2026-08-16 21:15:01.188845: Processing 721 30-minute periods for power integration
2026-08-16 21:15:01.385106: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:15:01.385262: Car charging hold False, threshold 6.0kWh
2026-08-16 21:15:01.385312: Current data so far today: load 10.2kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:15:01.406111: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:15:01.406226: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:15:01.406977: Standing charge is set to 46.63p
2026-08-16 21:15:01.497298: 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-16 21:15:01.497564: 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-16 21:15:01.497750: 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-16 21:15:01.497952: 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-16 21:15:01.498152: 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-16 21:15:01.498346: 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-16 21:15:01.498519: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.498612: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.498690: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.498773: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.498845: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.498959: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.499035: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.499109: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.499300: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:15:01.499359: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:15:01.504885: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:15:01.505224: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:15:01.549432: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:15:01.549555: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:15:01.550897: High export rate found rates in range 99p to -99p
2026-08-16 21:15:01.584289: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:15:01.584414: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:15:01.584475: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:15:01.599522: Battery level now 9.76kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -16.82p, rate_forward 6.87p
2026-08-16 21:15:01.599933: 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-16 21:15:01.668715: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:15:01.668886: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:15:01.771404: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:15:01.803178: Today's load divergence 79.62%, in-day adjustment 80.9%, damping 0.95x, yesterday 82.97% today 80.64% blend 11.46%
2026-08-16 21:15:01.803277: Today's predicted so far 12.74kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 12.74kWh forecast extra.
2026-08-16 21:15:01.803315: Today's actual load so far 10.15kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 21:15:01.839590: Inverter 0: Type SK Sunsynk
2026-08-16 21:15:01.839680: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:15:01.839869: Reserve min: 7%, battery_min: 7%
2026-08-16 21:15:01.839942: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:15:01.840196: Inverter 0 SoC: 9.67kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 430W, current battery voltage 51.2V, grid power -57W, load power 483W, PV Power 0W
2026-08-16 21:15:01.840356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:15:01.840445: Inverter 0 scheduled charge enable is False
2026-08-16 21:15:01.840479: Inverter 0 charge windows currently []
2026-08-16 21:15:01.840506: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:15:01.840619: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:15:01.840654: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:15:01.840690: Inverter 0 scheduled discharge enable is False
2026-08-16 21:15:01.840817: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:15:01.840872: Inverter 0 discharge windows currently []
2026-08-16 21:15:01.840897: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:15:01.840919: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:15:01.840937: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:15:01.903699: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:15:01.903809: Plan was last updated on 2026-08-16 21:10:00+01:00 and is now 5.0 minutes old
2026-08-16 21:15:01.904075: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:15:01.904129: Best export window [  ]
2026-08-16 21:15:01.904888: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:15:01.908178: Load divergence over 8.0 hours mean 596.8W, min 335.4W, max 1153.2W, std dev 239.03W, divergence 20.03%
2026-08-16 21:15:01.926906: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:15:01.927038: LoadML is_calculating False
2026-08-16 21:15:01.927108: Creating pool of 12 processes to match your CPU count
2026-08-16 21:15:02.056304: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 663.1p, metric_keep 222.51kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.71kWh, PV 0.0kWh
2026-08-16 21:15:02.194065: Battery has 12.17 hours left - now at 9.67kWh
2026-08-16 21:15:02.233286: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 691.09p, metric_keep 236.02kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.54kWh, PV 0.0kWh
2026-08-16 21:15:02.308305: predict best10 end_record 08-17 23:35:00, final soc 1.78kWh, metric 439.09p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.54kWh, PV 0.0kWh
2026-08-16 21:15:02.381831: predict best end_record 08-17 23:35:00, final soc 2.42kWh, metric 437.13p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.71kWh, PV 0.0kWh
2026-08-16 21:15:02.381941: Saving plan best values to HA entities
2026-08-16 21:15:02.544545: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:15:02.557712: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:15:02.563750: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.67kWh, house 0kWh, export 0.0kWh, metric 437.13p, metric10 439.09p
2026-08-16 21:15:02.643480: Marginal costs baseline metric (no standing charge): 390.4971
2026-08-16 21:15:02.882296: Marginal energy costs matrix computed: min=2.0 max=30.18
2026-08-16 21:15:02.944435: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:15:02.945127: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:15:02.945175: - 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-16 21:15:02.945221: - The battery is currently at 60% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 21:15:02.945236: - For the next 48 hours there will be no solar generation.
2026-08-16 21:15:02.945251: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:15:02.945278: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 21:15:02.945313: 
2026-08-16 21:15:02.997358: Plan calculation took 1.09 seconds
2026-08-16 21:15:03.001421: No high rate period found
2026-08-16 21:15:03.050550: Import threshold used for optimisation was 8.0p
2026-08-16 21:15:03.104191: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:15:03.109799: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:15:03.109929: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:15:03.110040: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:15:03.110262: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:15:03.110336: No export window planned
2026-08-16 21:15:03.110436: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:15:03.110466: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:15:03.110574: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:15:03.110720: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:15:03.110774: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:15:03.110833: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:15:03.110920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.110948: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.110974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.110997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:15:03.111290: Inverter 0 count register writes 0
2026-08-16 21:15:03.125494: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:15:03.130707: Total inverter register writes now 844
2026-08-16 21:15:03.162900: Info: Completed run status Demand
2026-08-16 21:15:03.169219: Info: record_status Demand
2026-08-16 21:15:03.175823: Saved current settings to /config/predbat_config.json
2026-08-16 21:15:03.176102: Compare, best tariff: current metric 318.25p
2026-08-16 21:15:03.835247: Info: HAHistory: Pruning history data started.
2026-08-16 21:15:03.837973: Info: HAHistory: Pruning history data completed.
2026-08-16 21:15:34.279042: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:15:34.279296: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:15:34.279346: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:15:34.279488: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:15:34.279532: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:15:34.279554: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:15:34.279575: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:17:48.545582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:17:48.545859: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:17:48.545905: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:17:48.546069: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:17:48.546108: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:17:48.546130: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:17:48.546148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:19:48.760312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:19:48.760568: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:19:48.760611: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:19:48.760804: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:19:48.760845: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:19:48.760866: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:19:48.760884: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:20:00.868269: --------------- PredBat - update at 2026-08-16 21:20:00+01:00 with clock skew 0 minutes, minutes now 1280
2026-08-16 21:20:00.869147: Saved current settings to /config/predbat_config.json
2026-08-16 21:20:00.869299: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 21:20:00.869468: 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-16 21:20:00.869564: 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-16 21:20:00.894890: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:20:00.895037: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:20:00.895265: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:20:00.895978: 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-16 21:20:00.896171: Predbat mode is set to Control charge & discharge
2026-08-16 21:20:01.086197: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:20:01.086374: Using load_power data to fill gaps in load_today data
2026-08-16 21:20:01.834778: Processing 721 30-minute periods for power integration
2026-08-16 21:20:01.984774: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:20:01.984908: Car charging hold False, threshold 6.0kWh
2026-08-16 21:20:01.984971: Current data so far today: load 10.25kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:20:02.000095: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:20:02.000196: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:20:02.000821: Standing charge is set to 46.63p
2026-08-16 21:20:02.088842: 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-16 21:20:02.089192: 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-16 21:20:02.089401: 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-16 21:20:02.089587: 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-16 21:20:02.089770: 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-16 21:20:02.089943: 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-16 21:20:02.090116: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090211: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090290: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090366: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090440: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090516: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090594: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090659: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090835: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:20:02.090919: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:20:02.096691: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:20:02.097304: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:20:02.137744: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:20:02.137857: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:20:02.139024: High export rate found rates in range 99p to -99p
2026-08-16 21:20:02.166227: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:20:02.166332: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:20:02.166383: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:20:02.179847: Battery level now 9.67kWh, -1hr ago 10.08kWh, at midnight 12.21kWh, battery value change in the last hour -2.8p, change today -17.43p, rate_forward 6.87p
2026-08-16 21:20:02.180283: 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-16 21:20:02.239045: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:20:02.239208: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:20:02.321047: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:20:02.346010: Today's load divergence 79.91%, in-day adjustment 81.15%, damping 0.95x, yesterday 82.97% today 80.92% blend 11.11%
2026-08-16 21:20:02.346101: Today's predicted so far 12.75kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 12.75kWh forecast extra.
2026-08-16 21:20:02.346128: Today's actual load so far 10.2kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 21:20:02.377095: Inverter 0: Type SK Sunsynk
2026-08-16 21:20:02.377178: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:20:02.377346: Reserve min: 7%, battery_min: 7%
2026-08-16 21:20:02.377412: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:20:02.377641: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 412W, current battery voltage 51.2V, grid power -51W, load power 463W, PV Power 0W
2026-08-16 21:20:02.377789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:20:02.377863: Inverter 0 scheduled charge enable is False
2026-08-16 21:20:02.377887: Inverter 0 charge windows currently []
2026-08-16 21:20:02.377908: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:20:02.377995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:20:02.378025: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:20:02.378054: Inverter 0 scheduled discharge enable is False
2026-08-16 21:20:02.378197: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:20:02.378246: Inverter 0 discharge windows currently []
2026-08-16 21:20:02.378267: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:20:02.378283: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:20:02.378297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:20:02.431567: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:20:02.431675: Plan was last updated on 2026-08-16 21:10:00+01:00 and is now 10.0 minutes old
2026-08-16 21:20:02.431879: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:20:02.431916: Best export window [  ]
2026-08-16 21:20:02.432543: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:20:02.435025: Load divergence over 8.0 hours mean 596.91W, min 361.2W, max 1047.6W, std dev 232.66W, divergence 19.49%
2026-08-16 21:20:02.450260: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:20:02.450384: LoadML is_calculating False
2026-08-16 21:20:02.450442: Creating pool of 12 processes to match your CPU count
2026-08-16 21:20:02.586662: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 664.42p, metric_keep 223.57kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.81kWh, PV 0.0kWh
2026-08-16 21:20:02.721422: Battery has 12.08 hours left - now at 9.6kWh
2026-08-16 21:20:02.761575: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 692.37p, metric_keep 237.19kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.65kWh, PV 0.0kWh
2026-08-16 21:20:02.835517: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.03p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.65kWh, PV 0.0kWh
2026-08-16 21:20:02.921534: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.61p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.81kWh, PV 0.0kWh
2026-08-16 21:20:02.921633: Saving plan best values to HA entities
2026-08-16 21:20:03.106613: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:20:03.112688: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:20:03.119000: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.23kWh, house 0.0kWh, export 0.0kWh, metric 441.61p, metric10 443.03p
2026-08-16 21:20:03.200074: Marginal costs baseline metric (no standing charge): 394.9752
2026-08-16 21:20:03.464002: Marginal energy costs matrix computed: min=1.33 max=30.11
2026-08-16 21:20:03.532060: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:20:03.532762: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:20:03.532809: - 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-16 21:20:03.532834: - The battery is currently at 60% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 21:20:03.532865: - For the next 48 hours there will be no solar generation.
2026-08-16 21:20:03.532895: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:20:03.532911: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 21:20:03.532925: 
2026-08-16 21:20:03.583547: Plan calculation took 1.15 seconds
2026-08-16 21:20:03.586833: No high rate period found
2026-08-16 21:20:03.634293: Import threshold used for optimisation was 8.0p
2026-08-16 21:20:03.686447: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:20:03.695421: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:20:03.695557: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:20:03.695701: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:20:03.695986: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:20:03.696097: No export window planned
2026-08-16 21:20:03.696256: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:20:03.696295: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:20:03.696458: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:20:03.696654: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:20:03.696733: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:20:03.696824: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:20:03.696995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697159: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:03.697449: Inverter 0 count register writes 0
2026-08-16 21:20:03.712793: 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-16 21:20:03.713015: Recompute is saving previous plan...
2026-08-16 21:20:03.713874: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:20:03.713920: Best export window [  ]
2026-08-16 21:20:03.714579: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:20:03.717242: Load divergence over 8.0 hours mean 596.91W, min 361.2W, max 1047.6W, std dev 232.66W, divergence 19.49%
2026-08-16 21:20:03.731070: Calculating data from yesterday for savings calculation
2026-08-16 21:20:03.742090: 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-16 21:20:03.780423: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 21:20:03.793212: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 233.09p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 21:20:03.814283: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.42p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 21:20:03.842886: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.4 (adjusted £-3.29) with import 23.72kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.46kWh
2026-08-16 21:20:03.916550: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 333.28p, metric_keep 639.19kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.49kWh, PV 0.0kWh
2026-08-16 21:20:03.916688: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.43 (adjusted £-1.59) with import 12.49kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 21:20:03.926246: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:20:03.926352: LoadML is_calculating False
2026-08-16 21:20:03.926419: Creating pool of 12 processes to match your CPU count
2026-08-16 21:20:04.007217: 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-16 21:20:04.008105: Optimise levels pass started at 2026-08-16 21:20:04
2026-08-16 21:20:04.008159: Optimise all windows, total charge 25 export 1
2026-08-16 21:20:04.406646: >> Region optimisation pass width 960 gives best_metric 501.22p, best_cost 525.43p, best_cycle 41.14kWh, best_import 28.54kWh
2026-08-16 21:20:04.539516: >> Region optimisation pass width 480 gives best_metric 501.22p, best_cost 525.43p, best_cycle 41.14kWh, best_import 28.54kWh
2026-08-16 21:20:04.812883: >> Region optimisation pass width 240 gives best_metric 501.22p, best_cost 525.43p, best_cycle 41.14kWh, best_import 28.54kWh
2026-08-16 21:20:05.660809: >> Region optimisation pass width 120 gives best_metric 499.88p, best_cost 513.66p, best_cycle 42.67kWh, best_import 27.07kWh
2026-08-16 21:20:05.661378: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:20:05.661461: Optimise levels pass ended at 2026-08-16 21:20:05, duration 1.7 seconds tried 79 combinations
2026-08-16 21:20:05.661537: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 499.88p, best_keep 0kWh, best_cycle 42.67kWh, best_carbon 0kg, best_import 27.07kWh
2026-08-16 21:20:05.685140: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 16.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]kWh and export limits []kWh
2026-08-16 21:20:08.578710: Tweak plan optimisation started metric 373.44p, cost 386.55p
2026-08-16 21:20:08.890934: Tweak optimisation finished metric 373.44p, cost 386.55p, metric_keep 0kWh, cycle 19.47kWh, carbon 0kg, import 11.18kWh, changed 8 window(s)
2026-08-16 21:20:08.911991: Swap charge optimisation started metric 373.44p, cost 386.55p, min_improvement_swap 0.1p
2026-08-16 21:20:09.704909: Swap charge optimisation finished metric 373.44p, cost 386.55p
2026-08-16 21:20:09.817452: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 86%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 21:20:09.817825: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:20:09.818063: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:20:09.818284: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:30:00 @ 8.0p 86%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:20:09.850149: Previous plan best metric is 373.44 (cost 386.55) and new plan best metric is 373.44 (cost 386.55)
2026-08-16 21:20:09.850370: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:20:09.850546: Plan valid is now true after recompute was False
2026-08-16 21:20:09.875122: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 662.67p, metric_keep 222.99kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.59kWh, PV 0.0kWh
2026-08-16 21:20:09.980053: Battery has 12.08 hours left - now at 9.6kWh
2026-08-16 21:20:10.023447: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 690.53p, metric_keep 236.61kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.42kWh, PV 0.0kWh
2026-08-16 21:20:10.098589: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 435.63p, metric_keep 2.11kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.42kWh, PV 0.0kWh
2026-08-16 21:20:10.170397: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 433.18p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.59kWh, PV 0.0kWh
2026-08-16 21:20:10.170484: Saving plan best values to HA entities
2026-08-16 21:20:10.310028: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:20:10.315273: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:20:10.320442: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.18kWh, house 0.0kWh, export 0.0kWh, metric 433.18p, metric10 435.63p
2026-08-16 21:20:10.397892: Marginal costs baseline metric (no standing charge): 386.5493
2026-08-16 21:20:10.641637: Marginal energy costs matrix computed: min=1.33 max=30.11
2026-08-16 21:20:10.703522: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1280, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:20:10.704091: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:20:10.704135: - 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-16 21:20:10.704154: - The battery is currently at 60% and is in eco mode for the next 2 and a quarter hours.
2026-08-16 21:20:10.704169: - For the next 48 hours there will be no solar generation.
2026-08-16 21:20:10.704183: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:20:10.704197: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 21:20:10.704214: 
2026-08-16 21:20:10.760172: Plan calculation took 7.05 seconds
2026-08-16 21:20:10.760520: Inverter 0: Type SK Sunsynk
2026-08-16 21:20:10.760577: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:20:10.760865: Reserve min: 7%, battery_min: 7%
2026-08-16 21:20:10.761004: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:20:10.761351: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 420W, current battery voltage 51.2V, grid power -52W, load power 473W, PV Power 0W
2026-08-16 21:20:10.761573: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:20:10.761669: Inverter 0 scheduled charge enable is False
2026-08-16 21:20:10.761694: Inverter 0 charge windows currently []
2026-08-16 21:20:10.761736: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:20:10.761865: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:20:10.761915: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:20:10.761956: Inverter 0 scheduled discharge enable is False
2026-08-16 21:20:10.762131: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:20:10.762169: Inverter 0 discharge windows currently []
2026-08-16 21:20:10.762191: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:20:10.762207: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:20:10.762221: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:20:10.819561: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:20:10.819737: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:20:10.819819: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:20:10.819979: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:20:10.820054: No export window planned
2026-08-16 21:20:10.820150: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:20:10.820181: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:20:10.820301: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:20:10.820444: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:20:10.820491: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:20:10.820537: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:20:10.820623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.820935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.821009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.821037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.821057: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.821081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:20:10.821103: Inverter 0 count register writes 0
2026-08-16 21:20:10.841855: Total inverter register writes now 844
2026-08-16 21:20:10.871614: Info: Completed run status Demand
2026-08-16 21:20:10.878099: Info: record_status Demand
2026-08-16 21:20:10.884202: Saved current settings to /config/predbat_config.json
2026-08-16 21:20:10.884455: Compare, best tariff: current metric 318.25p
2026-08-16 21:20:48.994100: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:20:48.994347: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:20:48.994387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:20:48.994542: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:20:48.994581: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:20:48.994615: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:20:48.994633: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:22:49.217366: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:22:49.217681: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:22:49.217734: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:22:49.217912: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:22:49.217953: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:22:49.217974: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:22:49.217992: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:25:00.467197: --------------- PredBat - update at 2026-08-16 21:25:00+01:00 with clock skew 0 minutes, minutes now 1285
2026-08-16 21:25:00.468317: Saved current settings to /config/predbat_config.json
2026-08-16 21:25:00.468588: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 21:25:00.468718: 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-16 21:25:00.468989: 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-16 21:25:00.499551: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:25:00.499720: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:25:00.499992: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:25:00.500658: 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-16 21:25:00.500874: Predbat mode is set to Control charge & discharge
2026-08-16 21:25:00.712132: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:25:00.712291: Using load_power data to fill gaps in load_today data
2026-08-16 21:25:01.605061: Processing 721 30-minute periods for power integration
2026-08-16 21:25:01.802141: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:25:01.802289: Car charging hold False, threshold 6.0kWh
2026-08-16 21:25:01.802339: Current data so far today: load 10.3kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:25:01.821290: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:25:01.821422: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:25:01.822198: Standing charge is set to 46.63p
2026-08-16 21:25:01.914179: 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-16 21:25:01.914462: 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-16 21:25:01.914662: 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-16 21:25:01.914874: 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-16 21:25:01.915053: 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-16 21:25:01.915230: 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-16 21:25:01.915408: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915503: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915596: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915675: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915758: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915859: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.915943: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.916010: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.916177: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:25:01.916236: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:25:01.922058: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:25:01.922566: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:25:01.968023: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:25:01.968158: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:25:01.969605: High export rate found rates in range 99p to -99p
2026-08-16 21:25:02.004732: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:25:02.004929: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:25:02.005042: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:25:02.021043: Battery level now 9.6kWh, -1hr ago 10.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.75p, change today -17.92p, rate_forward 6.87p
2026-08-16 21:25:02.021423: 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-16 21:25:02.092646: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:25:02.092877: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:25:02.191510: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:25:02.223713: Today's load divergence 80.21%, in-day adjustment 81.39%, damping 0.95x, yesterday 82.97% today 81.2% blend 10.76%
2026-08-16 21:25:02.223832: Today's predicted so far 12.77kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 12.77kWh forecast extra.
2026-08-16 21:25:02.223867: Today's actual load so far 10.25kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 21:25:02.259443: Inverter 0: Type SK Sunsynk
2026-08-16 21:25:02.259534: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:25:02.259767: Reserve min: 7%, battery_min: 7%
2026-08-16 21:25:02.259874: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:25:02.260215: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 433W, current battery voltage 51.2V, grid power -55W, load power 488W, PV Power 0W
2026-08-16 21:25:02.260422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:25:02.260535: Inverter 0 scheduled charge enable is False
2026-08-16 21:25:02.260585: Inverter 0 charge windows currently []
2026-08-16 21:25:02.260644: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:25:02.260829: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:25:02.260873: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:25:02.260916: Inverter 0 scheduled discharge enable is False
2026-08-16 21:25:02.261131: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:25:02.261189: Inverter 0 discharge windows currently []
2026-08-16 21:25:02.261232: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:25:02.261268: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:25:02.261310: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:25:02.329051: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:25:02.329180: Plan was last updated on 2026-08-16 21:20:00+01:00 and is now 5.0 minutes old
2026-08-16 21:25:02.329398: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:25:02.329438: Best export window [  ]
2026-08-16 21:25:02.330288: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:25:02.333491: Load divergence over 8.0 hours mean 596.98W, min 339.0W, max 1060.8W, std dev 228.95W, divergence 19.18%
2026-08-16 21:25:02.352801: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:25:02.352968: LoadML is_calculating False
2026-08-16 21:25:02.353042: Creating pool of 12 processes to match your CPU count
2026-08-16 21:25:02.485383: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 662.6p, metric_keep 222.35kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.72kWh, PV 0.0kWh
2026-08-16 21:25:02.628592: Battery has 12.08 hours left - now at 9.6kWh
2026-08-16 21:25:02.682421: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 690.46p, metric_keep 235.91kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.55kWh, PV 0.0kWh
2026-08-16 21:25:02.812299: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 439.02p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.55kWh, PV 0.0kWh
2026-08-16 21:25:02.897579: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 437.09p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.72kWh, PV 0.0kWh
2026-08-16 21:25:02.897686: Saving plan best values to HA entities
2026-08-16 21:25:03.103522: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:25:03.109773: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:25:03.115444: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.67kWh, house 0.0kWh, export 0.0kWh, metric 437.09p, metric10 439.02p
2026-08-16 21:25:03.202048: Marginal costs baseline metric (no standing charge): 390.458
2026-08-16 21:25:03.509568: Marginal energy costs matrix computed: min=2.6 max=30.13
2026-08-16 21:25:03.584061: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:25:03.584702: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:25:03.584753: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 21:25:03.584799: - The battery is currently at 60% and is in eco mode for the next 2 hours.
2026-08-16 21:25:03.584835: - For the next 48 hours there will be no solar generation.
2026-08-16 21:25:03.584864: - You will reach a minimum of 13% battery in 26 hours.
2026-08-16 21:25:03.584891: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-16 21:25:03.584918: 
2026-08-16 21:25:03.638029: Plan calculation took 1.31 seconds
2026-08-16 21:25:03.643173: No high rate period found
2026-08-16 21:25:03.695714: Import threshold used for optimisation was 8.0p
2026-08-16 21:25:03.751902: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:25:03.758102: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:25:03.758264: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:25:03.758402: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:25:03.758671: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:25:03.758758: No export window planned
2026-08-16 21:25:03.758893: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:25:03.758931: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:25:03.759065: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:25:03.759251: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:25:03.759323: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:25:03.759389: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:25:03.759482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759549: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:25:03.759927: Inverter 0 count register writes 0
2026-08-16 21:25:03.776137: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:25:03.781852: Total inverter register writes now 844
2026-08-16 21:25:03.821348: Info: Completed run status Demand
2026-08-16 21:25:03.827865: Info: record_status Demand
2026-08-16 21:25:03.834696: Saved current settings to /config/predbat_config.json
2026-08-16 21:25:03.835045: Compare, best tariff: current metric 318.25p
2026-08-16 21:25:33.944832: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:25:33.945161: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:25:33.945242: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:25:33.945470: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:25:33.945523: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:25:33.945575: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:25:33.945614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:27:34.171283: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:27:34.171537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:27:34.171573: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:27:34.171730: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:27:34.171771: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:27:34.171792: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:27:34.171810: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:29:48.414249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:29:48.414618: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:29:48.414703: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:29:48.414997: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:29:48.415068: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:29:48.415109: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:29:48.415143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:30:00.518896: --------------- PredBat - update at 2026-08-16 21:30:00+01:00 with clock skew 0 minutes, minutes now 1290
2026-08-16 21:30:00.520046: Saved current settings to /config/predbat_config.json
2026-08-16 21:30:00.520226: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 21:30:00.520377: 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-16 21:30:00.520542: 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-16 21:30:00.550215: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:30:00.550422: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:30:00.550730: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:30:00.551706: 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-16 21:30:00.551935: Predbat mode is set to Control charge & discharge
2026-08-16 21:30:00.778944: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:30:00.779146: Using load_power data to fill gaps in load_today data
2026-08-16 21:30:01.685785: Processing 721 30-minute periods for power integration
2026-08-16 21:30:01.884682: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:30:01.884851: Car charging hold False, threshold 6.0kWh
2026-08-16 21:30:01.884903: Current data so far today: load 10.2kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:30:01.904855: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:30:01.905080: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:30:01.905941: Standing charge is set to 46.63p
2026-08-16 21:30:01.999952: 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-16 21:30:02.000191: 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-16 21:30:02.000347: 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-16 21:30:02.000497: 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-16 21:30:02.000639: 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-16 21:30:02.000779: 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-16 21:30:02.000920: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001068: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001155: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001226: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001286: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001356: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001414: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001472: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001613: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:30:02.001663: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:30:02.006213: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:30:02.006546: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:30:02.055341: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:30:02.055481: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:30:02.057134: High export rate found rates in range 99p to -99p
2026-08-16 21:30:02.091236: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:30:02.091418: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:30:02.091512: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:30:02.107174: Battery level now 9.6kWh, -1hr ago 10.0kWh, at midnight 12.21kWh, battery value change in the last hour -2.75p, change today -17.92p, rate_forward 6.87p
2026-08-16 21:30:02.107540: 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-16 21:30:02.181280: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:30:02.181482: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:30:02.265512: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:30:02.301628: Today's load divergence 78.76%, in-day adjustment 80.15%, damping 0.95x, yesterday 82.97% today 79.82% blend 10.42%
2026-08-16 21:30:02.301737: Today's predicted so far 12.9kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.9kWh forecast extra.
2026-08-16 21:30:02.301771: Today's actual load so far 10.22kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 21:30:02.345692: Inverter 0: Type SK Sunsynk
2026-08-16 21:30:02.345791: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:30:02.345997: Reserve min: 7%, battery_min: 7%
2026-08-16 21:30:02.346080: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:30:02.346350: Inverter 0 SoC: 9.58kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 434W, current battery voltage 51.2V, grid power -62W, load power 506W, PV Power 0W
2026-08-16 21:30:02.346516: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:30:02.346604: Inverter 0 scheduled charge enable is False
2026-08-16 21:30:02.346633: Inverter 0 charge windows currently []
2026-08-16 21:30:02.346659: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:30:02.346812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:30:02.346860: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:30:02.346899: Inverter 0 scheduled discharge enable is False
2026-08-16 21:30:02.347075: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:30:02.347117: Inverter 0 discharge windows currently []
2026-08-16 21:30:02.347141: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:30:02.347165: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:30:02.347183: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:30:02.411577: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:30:02.411689: Plan was last updated on 2026-08-16 21:20:00+01:00 and is now 10.0 minutes old
2026-08-16 21:30:02.411910: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:30:02.411953: Best export window [  ]
2026-08-16 21:30:02.412782: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:30:02.416019: Load divergence over 8.0 hours mean 596.95W, min 339.0W, max 1100.4W, std dev 231.02W, divergence 19.35%
2026-08-16 21:30:02.434999: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:30:02.435135: LoadML is_calculating False
2026-08-16 21:30:02.435221: Creating pool of 12 processes to match your CPU count
2026-08-16 21:30:02.573945: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 662.34p, metric_keep 221.77kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.67kWh, PV 0.0kWh
2026-08-16 21:30:02.747055: Battery has 12.0 hours left - now at 9.58kWh
2026-08-16 21:30:02.806009: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 690.25p, metric_keep 235.09kWh, min_soc 1.12kWh @ 08-17 08:45:00, load 28.5kWh, PV 0.0kWh
2026-08-16 21:30:02.901519: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 442.33p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 21:30:02.978904: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 440.93p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.67kWh, PV 0.0kWh
2026-08-16 21:30:02.979002: Saving plan best values to HA entities
2026-08-16 21:30:03.153245: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:30:03.159129: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:30:03.164401: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.15kWh, house 0.0kWh, export 0.0kWh, metric 440.93p, metric10 442.33p
2026-08-16 21:30:03.241533: Marginal costs baseline metric (no standing charge): 394.2996
2026-08-16 21:30:03.494393: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 21:30:03.567555: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:30:03.568502: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:30:03.568570: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 21:30:03.568595: - The battery is currently at 60% and is in eco mode for the next 2 hours.
2026-08-16 21:30:03.568613: - For the next 48 hours there will be no solar generation.
2026-08-16 21:30:03.568630: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:30:03.568647: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-16 21:30:03.568666: 
2026-08-16 21:30:03.626486: Plan calculation took 1.21 seconds
2026-08-16 21:30:03.631125: No high rate period found
2026-08-16 21:30:03.684118: Import threshold used for optimisation was 8.0p
2026-08-16 21:30:03.736389: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:30:03.742233: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:30:03.742368: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:30:03.742494: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:30:03.742766: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:30:03.742853: No export window planned
2026-08-16 21:30:03.742970: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:30:03.743023: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:30:03.743162: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:30:03.743344: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:30:03.743407: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:30:03.743471: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:30:03.743563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743679: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:03.743994: Inverter 0 count register writes 0
2026-08-16 21:30:03.760384: 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-16 21:30:03.760560: Recompute is saving previous plan...
2026-08-16 21:30:03.761553: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:30:03.761629: Best export window [  ]
2026-08-16 21:30:03.762441: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:30:03.765721: Load divergence over 8.0 hours mean 596.95W, min 339.0W, max 1100.4W, std dev 231.02W, divergence 19.35%
2026-08-16 21:30:03.783635: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:30:03.783745: LoadML is_calculating False
2026-08-16 21:30:03.783814: Creating pool of 12 processes to match your CPU count
2026-08-16 21:30:03.869903: 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-16 21:30:03.870949: Optimise levels pass started at 2026-08-16 21:30:03
2026-08-16 21:30:03.871023: Optimise all windows, total charge 25 export 1
2026-08-16 21:30:04.548237: >> Region optimisation pass width 960 gives best_metric 500.99p, best_cost 525.0p, best_cycle 41.05kWh, best_import 28.48kWh
2026-08-16 21:30:04.726441: >> Region optimisation pass width 480 gives best_metric 500.83p, best_cost 523.0p, best_cycle 41.31kWh, best_import 28.23kWh
2026-08-16 21:30:05.028097: >> Region optimisation pass width 240 gives best_metric 500.83p, best_cost 523.0p, best_cycle 41.31kWh, best_import 28.23kWh
2026-08-16 21:30:05.647776: >> Region optimisation pass width 120 gives best_metric 500.06p, best_cost 513.13p, best_cycle 42.59kWh, best_import 27.0kWh
2026-08-16 21:30:05.648059: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:30:05.648152: Optimise levels pass ended at 2026-08-16 21:30:05, duration 1.8 seconds tried 84 combinations
2026-08-16 21:30:05.648264: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 500.06p, best_keep 0kWh, best_cycle 42.59kWh, best_carbon 0kg, best_import 27.0kWh
2026-08-16 21:30:05.668861: Starting detailed optimisation end_record 08-17 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, 0, 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-16 21:30:07.923277: Tweak plan optimisation started metric 375.14p, cost 387.91p
2026-08-16 21:30:08.215996: Tweak optimisation finished metric 375.14p, cost 387.91p, metric_keep 0.01kWh, cycle 23.35kWh, carbon 0kg, import 11.35kWh, changed 8 window(s)
2026-08-16 21:30:08.239785: Swap charge optimisation started metric 375.14p, cost 387.91p, min_improvement_swap 0.1p
2026-08-16 21:30:08.867668: Swap charge optimisation finished metric 375.14p, cost 387.91p
2026-08-16 21:30:08.929271: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 21:30:08.929532: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:30:08.929678: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:30:08.929768: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:30:08.962084: Previous plan best metric is 372.89 (cost 386.0) and new plan best metric is 375.14 (cost 387.91)
2026-08-16 21:30:08.962328: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:30:08.962522: Plan valid is now true after recompute was False
2026-08-16 21:30:08.988434: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 660.71p, metric_keep 221.18kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.46kWh, PV 0.0kWh
2026-08-16 21:30:09.091530: Battery has 12.0 hours left - now at 9.58kWh
2026-08-16 21:30:09.130555: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 688.54p, metric_keep 234.5kWh, min_soc 1.12kWh @ 08-17 08:45:00, load 28.29kWh, PV 0.0kWh
2026-08-16 21:30:09.197557: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 435.07p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.29kWh, PV 0.0kWh
2026-08-16 21:30:09.268282: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 432.64p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.46kWh, PV 0.0kWh
2026-08-16 21:30:09.268369: Saving plan best values to HA entities
2026-08-16 21:30:09.411191: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:30:09.417362: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:30:09.423569: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.11kWh, house 0.0kWh, export 0.0kWh, metric 432.64p, metric10 435.07p
2026-08-16 21:30:09.497784: Marginal costs baseline metric (no standing charge): 386.0034
2026-08-16 21:30:09.734482: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 21:30:09.802746: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1290, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:30:09.803309: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:30:09.803367: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 21:30:09.803387: - The battery is currently at 60% and is in eco mode for the next 2 hours.
2026-08-16 21:30:09.803402: - For the next 48 hours there will be no solar generation.
2026-08-16 21:30:09.803417: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:30:09.803432: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-16 21:30:09.803446: 
2026-08-16 21:30:09.867966: Plan calculation took 6.11 seconds
2026-08-16 21:30:09.868394: Inverter 0: Type SK Sunsynk
2026-08-16 21:30:09.868457: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:30:09.868757: Reserve min: 7%, battery_min: 7%
2026-08-16 21:30:09.868863: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:30:09.869358: Inverter 0 SoC: 9.58kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 434W, current battery voltage 51.2V, grid power -62W, load power 506W, PV Power 0W
2026-08-16 21:30:09.869656: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:30:09.869803: Inverter 0 scheduled charge enable is False
2026-08-16 21:30:09.869849: Inverter 0 charge windows currently []
2026-08-16 21:30:09.869890: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:30:09.870078: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:30:09.870128: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:30:09.870183: Inverter 0 scheduled discharge enable is False
2026-08-16 21:30:09.870372: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:30:09.870417: Inverter 0 discharge windows currently []
2026-08-16 21:30:09.870446: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:30:09.870488: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:30:09.870531: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:30:09.933912: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:30:09.934098: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:30:09.934173: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:30:09.934359: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:30:09.934443: No export window planned
2026-08-16 21:30:09.934552: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:30:09.934588: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:30:09.934724: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:30:09.934893: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:30:09.934948: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:30:09.935016: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:30:09.935117: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935331: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:30:09.935580: Inverter 0 count register writes 0
2026-08-16 21:30:09.959954: Total inverter register writes now 844
2026-08-16 21:30:10.002063: Info: Completed run status Demand
2026-08-16 21:30:10.010587: Info: record_status Demand
2026-08-16 21:30:10.018746: Saved current settings to /config/predbat_config.json
2026-08-16 21:30:10.019088: Compare, best tariff: current metric 318.25p
2026-08-16 21:30:49.139581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:30:49.139884: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:30:49.139927: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:30:49.140158: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:30:49.140207: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:30:49.140231: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:30:49.140254: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:33:03.370234: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:33:03.370497: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:33:03.370534: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:33:03.370701: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:33:03.370742: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:33:03.370764: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:33:03.370782: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:35:00.586148: --------------- PredBat - update at 2026-08-16 21:35:00+01:00 with clock skew 0 minutes, minutes now 1295
2026-08-16 21:35:00.586999: Saved current settings to /config/predbat_config.json
2026-08-16 21:35:00.587206: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 21:35:00.587283: 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-16 21:35:00.587440: 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-16 21:35:00.608185: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:35:00.608323: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:35:00.608532: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:35:00.609238: 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-16 21:35:00.609369: Predbat mode is set to Control charge & discharge
2026-08-16 21:35:00.808611: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:35:00.808772: Using load_power data to fill gaps in load_today data
2026-08-16 21:35:01.678350: Processing 721 30-minute periods for power integration
2026-08-16 21:35:01.861877: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:35:01.862022: Car charging hold False, threshold 6.0kWh
2026-08-16 21:35:01.862083: Current data so far today: load 10.2kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:35:01.880783: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:35:01.880903: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:35:01.881679: Standing charge is set to 46.63p
2026-08-16 21:35:01.972446: 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-16 21:35:01.972714: 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-16 21:35:01.972908: 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-16 21:35:01.973157: 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-16 21:35:01.973344: 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-16 21:35:01.973524: 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-16 21:35:01.973706: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.973803: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.973883: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.973968: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974047: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974159: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974267: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974344: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974516: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:35:01.974576: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:35:01.980184: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:35:01.980631: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:35:02.024490: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:35:02.024622: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:35:02.025995: High export rate found rates in range 99p to -99p
2026-08-16 21:35:02.061053: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:35:02.061244: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:35:02.061306: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:35:02.076784: Battery level now 9.58kWh, -1hr ago 9.92kWh, at midnight 12.21kWh, battery value change in the last hour -2.36p, change today -18.09p, rate_forward 6.87p
2026-08-16 21:35:02.077206: 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-16 21:35:02.145281: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:35:02.145449: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:35:02.243173: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:35:02.275182: Today's load divergence 78.49%, in-day adjustment 79.91%, damping 0.95x, yesterday 82.97% today 79.56% blend 10.07%
2026-08-16 21:35:02.275276: Today's predicted so far 12.99kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 12.99kWh forecast extra.
2026-08-16 21:35:02.275308: Today's actual load so far 10.29kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 21:35:02.308760: Inverter 0: Type SK Sunsynk
2026-08-16 21:35:02.308851: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:35:02.309078: Reserve min: 7%, battery_min: 7%
2026-08-16 21:35:02.309157: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:35:02.309414: Inverter 0 SoC: 9.58kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 557W, PV Power 0W
2026-08-16 21:35:02.309571: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:35:02.309650: Inverter 0 scheduled charge enable is False
2026-08-16 21:35:02.309677: Inverter 0 charge windows currently []
2026-08-16 21:35:02.309702: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:35:02.309809: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:35:02.309844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:35:02.309880: Inverter 0 scheduled discharge enable is False
2026-08-16 21:35:02.310002: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:35:02.310039: Inverter 0 discharge windows currently []
2026-08-16 21:35:02.310099: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:35:02.310122: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:35:02.310143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:35:02.373575: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:35:02.373687: Plan was last updated on 2026-08-16 21:30:00+01:00 and is now 5.0 minutes old
2026-08-16 21:35:02.373906: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:35:02.373966: Best export window [  ]
2026-08-16 21:35:02.374757: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:35:02.377929: Load divergence over 8.0 hours mean 597.01W, min 335.4W, max 1131.0W, std dev 241.93W, divergence 20.26%
2026-08-16 21:35:02.396508: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:35:02.396640: LoadML is_calculating False
2026-08-16 21:35:02.396715: Creating pool of 12 processes to match your CPU count
2026-08-16 21:35:02.522588: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 660.55p, metric_keep 220.67kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.54kWh, PV 0.0kWh
2026-08-16 21:35:02.649294: Battery has 12.0 hours left - now at 9.58kWh
2026-08-16 21:35:02.695657: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 688.26p, metric_keep 233.83kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 28.37kWh, PV 0.0kWh
2026-08-16 21:35:02.821300: predict best10 end_record 08-17 23:35:00, final soc 1.81kWh, metric 438.49p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.37kWh, PV 0.0kWh
2026-08-16 21:35:02.906629: predict best end_record 08-17 23:35:00, final soc 2.44kWh, metric 436.59p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.54kWh, PV 0.0kWh
2026-08-16 21:35:02.906730: Saving plan best values to HA entities
2026-08-16 21:35:03.093483: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:35:03.099029: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:35:03.104545: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.6kWh, house 0.0kWh, export 0.0kWh, metric 436.59p, metric10 438.49p
2026-08-16 21:35:03.188645: Marginal costs baseline metric (no standing charge): 389.9594
2026-08-16 21:35:03.480697: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 21:35:03.550907: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:35:03.551605: - Your estimated bill for today is £3.20 and tomorrow is £1.36
2026-08-16 21:35:03.551652: - Import rates are very expensive (33.8p) for the next 1  hours and then cheap (8.0p) for the next 6 hours.
2026-08-16 21:35:03.551676: - The battery is currently at 60% and is in eco mode for the next 1  hours.
2026-08-16 21:35:03.551694: - For the next 48 hours there will be no solar generation.
2026-08-16 21:35:03.551712: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:35:03.551729: - Your next charge slot will be in 1  hours where import rates will be cheap (8.0p).
2026-08-16 21:35:03.551766: 
2026-08-16 21:35:03.605655: Plan calculation took 1.23 seconds
2026-08-16 21:35:03.609664: No high rate period found
2026-08-16 21:35:03.662919: Import threshold used for optimisation was 8.0p
2026-08-16 21:35:03.719868: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:35:03.726853: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-16 21:35:03.727119: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:35:03.727261: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:35:03.727531: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:35:03.727623: No export window planned
2026-08-16 21:35:03.727751: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:35:03.727793: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:35:03.728301: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:35:03.728507: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:35:03.728575: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:35:03.728639: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:35:03.728736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.728910: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:35:03.729266: Inverter 0 count register writes 0
2026-08-16 21:35:03.746650: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:35:03.752152: Total inverter register writes now 844
2026-08-16 21:35:03.786897: Info: Completed run status Demand
2026-08-16 21:35:03.793391: Info: record_status Demand
2026-08-16 21:35:03.800702: Saved current settings to /config/predbat_config.json
2026-08-16 21:35:03.801113: Compare, best tariff: current metric 318.25p
2026-08-16 21:35:33.906317: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:35:33.906592: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:35:33.906635: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:35:33.906810: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:35:33.906854: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:35:33.906877: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:35:33.906895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:37:34.131327: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:37:34.131621: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:37:34.131663: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:37:34.131845: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:37:34.131885: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:37:34.131906: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:37:34.131924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:39:48.378678: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:39:48.378929: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:39:48.378964: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:39:48.379138: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:39:48.379183: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:39:48.379205: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:39:48.379224: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:40:00.472268: --------------- PredBat - update at 2026-08-16 21:40:00+01:00 with clock skew 0 minutes, minutes now 1300
2026-08-16 21:40:00.473053: Saved current settings to /config/predbat_config.json
2026-08-16 21:40:00.473214: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 21:40:00.473317: 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-16 21:40:00.473446: 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-16 21:40:00.500743: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:40:00.500894: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:40:00.501145: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:40:00.501708: 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-16 21:40:00.501839: Predbat mode is set to Control charge & discharge
2026-08-16 21:40:00.711574: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:40:00.711732: Using load_power data to fill gaps in load_today data
2026-08-16 21:40:01.454616: Processing 721 30-minute periods for power integration
2026-08-16 21:40:01.614002: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:40:01.614140: Car charging hold False, threshold 6.0kWh
2026-08-16 21:40:01.614179: Current data so far today: load 10.32kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:40:01.629184: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:40:01.629305: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:40:01.629885: Standing charge is set to 46.63p
2026-08-16 21:40:01.700884: 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-16 21:40:01.701181: 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-16 21:40:01.701338: 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-16 21:40:01.701492: 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-16 21:40:01.701636: 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-16 21:40:01.701784: 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-16 21:40:01.701927: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702006: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702086: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702153: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702214: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702279: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702340: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702393: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702548: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:40:01.702599: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:40:01.707168: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:40:01.707626: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:40:01.745152: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:40:01.745274: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:40:01.746391: High export rate found rates in range 99p to -99p
2026-08-16 21:40:01.775261: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:40:01.775400: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:40:01.775452: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:40:01.788940: Battery level now 9.58kWh, -1hr ago 9.92kWh, at midnight 12.21kWh, battery value change in the last hour -2.36p, change today -18.09p, rate_forward 6.87p
2026-08-16 21:40:01.789423: 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-16 21:40:01.845496: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:40:01.845628: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:40:01.923284: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:40:01.948333: Today's load divergence 79.21%, in-day adjustment 80.52%, damping 0.95x, yesterday 82.97% today 80.25% blend 9.72%
2026-08-16 21:40:01.948423: Today's predicted so far 12.99kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 12.99kWh forecast extra.
2026-08-16 21:40:01.949521: Today's actual load so far 10.36kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 21:40:01.989188: Inverter 0: Type SK Sunsynk
2026-08-16 21:40:01.989291: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:40:01.989497: Reserve min: 7%, battery_min: 7%
2026-08-16 21:40:01.989576: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:40:01.989912: 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 -51W, load power 452W, PV Power 0W
2026-08-16 21:40:01.990104: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:40:01.990196: Inverter 0 scheduled charge enable is False
2026-08-16 21:40:01.990228: Inverter 0 charge windows currently []
2026-08-16 21:40:01.990255: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:40:01.990364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:40:01.990400: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:40:01.990435: Inverter 0 scheduled discharge enable is False
2026-08-16 21:40:01.990561: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:40:01.990598: Inverter 0 discharge windows currently []
2026-08-16 21:40:01.990620: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:40:01.990642: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:40:01.990660: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:40:02.049786: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:40:02.049884: Plan was last updated on 2026-08-16 21:30:00+01:00 and is now 10.0 minutes old
2026-08-16 21:40:02.050199: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:40:02.050242: Best export window [  ]
2026-08-16 21:40:02.050923: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:40:02.053507: Load divergence over 8.0 hours mean 595.58W, min 336.0W, max 1105.2W, std dev 239.71W, divergence 20.12%
2026-08-16 21:40:02.069012: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:40:02.069147: LoadML is_calculating False
2026-08-16 21:40:02.069232: Creating pool of 12 processes to match your CPU count
2026-08-16 21:40:02.178470: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 664.76p, metric_keep 223.72kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.75kWh, PV 0.0kWh
2026-08-16 21:40:02.315253: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:40:02.358871: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 692.53p, metric_keep 237.28kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.58kWh, PV 0.0kWh
2026-08-16 21:40:02.443860: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.03p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.58kWh, PV 0.0kWh
2026-08-16 21:40:02.529695: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.66p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.75kWh, PV 0.0kWh
2026-08-16 21:40:02.529786: Saving plan best values to HA entities
2026-08-16 21:40:02.694420: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 21:40:02.699452: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:40:02.704575: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.24kWh, house 0.0kWh, export 0.0kWh, metric 441.66p, metric10 443.03p
2026-08-16 21:40:02.781278: Marginal costs baseline metric (no standing charge): 395.0252
2026-08-16 21:40:03.064044: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 21:40:03.135507: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:40:03.136120: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:40:03.136161: - 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-16 21:40:03.136181: - The battery is currently at 59% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 21:40:03.136199: - For the next 48 hours there will be no solar generation.
2026-08-16 21:40:03.136223: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:40:03.136237: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 21:40:03.136255: 
2026-08-16 21:40:03.187201: Plan calculation took 1.14 seconds
2026-08-16 21:40:03.193530: No high rate period found
2026-08-16 21:40:03.250547: Import threshold used for optimisation was 8.0p
2026-08-16 21:40:03.306013: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:40:03.312333: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:40:03.312482: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:40:03.312619: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:40:03.312895: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:40:03.313038: No export window planned
2026-08-16 21:40:03.313217: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:40:03.313257: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:40:03.313404: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:40:03.313593: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:40:03.313668: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:40:03.313765: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:40:03.313921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.313989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:03.314440: Inverter 0 count register writes 0
2026-08-16 21:40:03.330986: 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-16 21:40:03.331178: Recompute is saving previous plan...
2026-08-16 21:40:03.332148: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:40:03.332198: Best export window [  ]
2026-08-16 21:40:03.333060: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:40:03.336238: Load divergence over 8.0 hours mean 595.58W, min 336.0W, max 1105.2W, std dev 239.71W, divergence 20.12%
2026-08-16 21:40:03.354165: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:40:03.354282: LoadML is_calculating False
2026-08-16 21:40:03.354357: Creating pool of 12 processes to match your CPU count
2026-08-16 21:40:03.445714: 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-16 21:40:03.446821: Optimise levels pass started at 2026-08-16 21:40:03
2026-08-16 21:40:03.446907: Optimise all windows, total charge 25 export 1
2026-08-16 21:40:03.835200: >> Region optimisation pass width 960 gives best_metric 502.68p, best_cost 527.69p, best_cycle 41.42kWh, best_import 28.82kWh
2026-08-16 21:40:03.992324: >> Region optimisation pass width 480 gives best_metric 502.68p, best_cost 527.69p, best_cycle 41.42kWh, best_import 28.82kWh
2026-08-16 21:40:04.285934: >> Region optimisation pass width 240 gives best_metric 502.68p, best_cost 527.69p, best_cycle 41.42kWh, best_import 28.82kWh
2026-08-16 21:40:04.928249: >> Region optimisation pass width 120 gives best_metric 501.99p, best_cost 518.88p, best_cycle 42.57kWh, best_import 27.72kWh
2026-08-16 21:40:04.928644: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:40:04.928790: Optimise levels pass ended at 2026-08-16 21:40:04, duration 1.5 seconds tried 77 combinations
2026-08-16 21:40:04.929035: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 501.99p, best_keep 0kWh, best_cycle 42.57kWh, best_carbon 0kg, best_import 27.72kWh
2026-08-16 21:40:04.949670: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 21:40:07.578496: Tweak plan optimisation started metric 373.51p, cost 386.6p
2026-08-16 21:40:07.930694: Tweak optimisation finished metric 373.51p, cost 386.6p, metric_keep 0kWh, cycle 19.31kWh, carbon 0kg, import 11.18kWh, changed 8 window(s)
2026-08-16 21:40:07.951984: Swap charge optimisation started metric 373.51p, cost 386.6p, min_improvement_swap 0.1p
2026-08-16 21:40:08.864200: Swap charge optimisation finished metric 373.51p, cost 386.6p
2026-08-16 21:40:09.001877: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 21:40:09.002300: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:40:09.002571: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:40:09.002757: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:40:09.044850: Previous plan best metric is 373.51 (cost 386.6) and new plan best metric is 373.51 (cost 386.6)
2026-08-16 21:40:09.045150: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:40:09.045340: Plan valid is now true after recompute was False
2026-08-16 21:40:09.076894: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 663.01p, metric_keep 223.13kWh, min_soc 1.12kWh @ 08-17 09:25:00, load 27.53kWh, PV 0.0kWh
2026-08-16 21:40:09.197495: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:40:09.243922: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 690.69p, metric_keep 236.7kWh, min_soc 1.12kWh @ 08-17 08:35:00, load 28.35kWh, PV 0.0kWh
2026-08-16 21:40:09.321026: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 435.64p, metric_keep 2.14kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.35kWh, PV 0.0kWh
2026-08-16 21:40:09.402840: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 433.24p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.53kWh, PV 0.0kWh
2026-08-16 21:40:09.402941: Saving plan best values to HA entities
2026-08-16 21:40:09.560541: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 21:40:09.567249: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:40:09.573853: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.18kWh, house 0.0kWh, export 0.0kWh, metric 433.24p, metric10 435.64p
2026-08-16 21:40:09.658244: Marginal costs baseline metric (no standing charge): 386.6033
2026-08-16 21:40:09.942236: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 21:40:10.016371: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1300, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:40:10.017199: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:40:10.017274: - 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-16 21:40:10.017305: - The battery is currently at 59% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 21:40:10.017333: - For the next 48 hours there will be no solar generation.
2026-08-16 21:40:10.017377: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:40:10.017401: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 21:40:10.017421: 
2026-08-16 21:40:10.074650: Plan calculation took 6.74 seconds
2026-08-16 21:40:10.075001: Inverter 0: Type SK Sunsynk
2026-08-16 21:40:10.075047: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:40:10.075329: Reserve min: 7%, battery_min: 7%
2026-08-16 21:40:10.075414: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:40:10.075766: 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 -51W, load power 452W, PV Power 0W
2026-08-16 21:40:10.076017: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:40:10.076150: Inverter 0 scheduled charge enable is False
2026-08-16 21:40:10.076193: Inverter 0 charge windows currently []
2026-08-16 21:40:10.076225: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:40:10.076340: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:40:10.076381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:40:10.076419: Inverter 0 scheduled discharge enable is False
2026-08-16 21:40:10.076576: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:40:10.076623: Inverter 0 discharge windows currently []
2026-08-16 21:40:10.076646: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:40:10.076667: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:40:10.076684: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:40:10.135741: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:40:10.135899: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:40:10.135991: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:40:10.136273: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:40:10.136385: No export window planned
2026-08-16 21:40:10.136498: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:40:10.136528: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:40:10.136716: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:40:10.136904: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:40:10.137045: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:40:10.137128: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:40:10.137224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137329: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:40:10.137706: Inverter 0 count register writes 0
2026-08-16 21:40:10.158879: Total inverter register writes now 844
2026-08-16 21:40:10.192229: Info: Completed run status Demand
2026-08-16 21:40:10.198643: Info: record_status Demand
2026-08-16 21:40:10.205337: Saved current settings to /config/predbat_config.json
2026-08-16 21:40:10.205593: Compare, best tariff: current metric 318.25p
2026-08-16 21:40:49.322302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:40:49.322551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:40:49.322585: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:40:49.322717: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:40:49.322782: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:40:49.322823: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:40:49.322857: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:43:03.570665: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:43:03.570989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:43:03.571040: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:43:03.571207: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:43:03.571286: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:43:03.571333: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:43:03.571354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:43:49.705541: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 21:43:50.807208: Processing 1345 30-minute periods for power integration
2026-08-16 21:43:50.914596: ML Component: Car charging hold False, car energy reported load False
2026-08-16 21:43:51.025768: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:43:51.123568: ML Temperature data points: 49101
2026-08-16 21:43:51.347390: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 21:43:51.382204: ML Component: Data fetch completed, load data age 58.0 days, 16796 data points
2026-08-16 21:43:51.382319: ML Component: No training needed, model age is 0.6 hours
2026-08-16 21:43:51.382389: ML Component: Generating predictions load data age 58.0 days, 16796 data points
2026-08-16 21:43:51.501654: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0283 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 21:43:51.854458: ML Component: Generated 576 predictions (total 25.92 kWh over 48h)
2026-08-16 21:43:51.887623: ML Component: Prediction cycle completed
2026-08-16 21:43:51.995654: ML Component: Saved 16796 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 21:45:00.838680: --------------- PredBat - update at 2026-08-16 21:45:00+01:00 with clock skew 0 minutes, minutes now 1305
2026-08-16 21:45:00.839550: Saved current settings to /config/predbat_config.json
2026-08-16 21:45:00.839678: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 21:45:00.839750: 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-16 21:45:00.839832: 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-16 21:45:00.859490: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:45:00.859621: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:45:00.859788: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:45:00.860356: 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-16 21:45:00.860479: Predbat mode is set to Control charge & discharge
2026-08-16 21:45:01.064664: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:45:01.064818: Using load_power data to fill gaps in load_today data
2026-08-16 21:45:01.922312: Processing 721 30-minute periods for power integration
2026-08-16 21:45:02.127126: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:45:02.127367: Car charging hold False, threshold 6.0kWh
2026-08-16 21:45:02.127570: Current data so far today: load 10.35kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:45:02.147108: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:45:02.147227: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:45:02.148167: Standing charge is set to 46.63p
2026-08-16 21:45:02.238461: 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-16 21:45:02.238838: 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-16 21:45:02.239150: 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-16 21:45:02.239422: 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-16 21:45:02.239702: 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-16 21:45:02.239963: 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-16 21:45:02.240242: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.240369: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.240522: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.240648: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.240788: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.241044: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.241223: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.241326: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.241578: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:45:02.241649: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:45:02.247451: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:45:02.247798: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:45:02.294133: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:45:02.294269: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:45:02.295713: High export rate found rates in range 99p to -99p
2026-08-16 21:45:02.330107: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:45:02.330258: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:45:02.330372: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:45:02.351539: Battery level now 9.44kWh, -1hr ago 9.87kWh, at midnight 12.21kWh, battery value change in the last hour -2.97p, change today -19.02p, rate_forward 6.87p
2026-08-16 21:45:02.351914: 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-16 21:45:02.433753: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:45:02.433921: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:45:02.537589: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:45:02.570553: Today's load divergence 78.73%, in-day adjustment 80.09%, damping 0.95x, yesterday 82.97% today 79.79% blend 9.38%
2026-08-16 21:45:02.570670: Today's predicted so far 12.99kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 12.99kWh forecast extra.
2026-08-16 21:45:02.570703: Today's actual load so far 10.31kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 21:45:02.603870: Inverter 0: Type SK Sunsynk
2026-08-16 21:45:02.603965: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:45:02.604175: Reserve min: 7%, battery_min: 7%
2026-08-16 21:45:02.604251: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:45:02.604514: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 374W, current battery voltage 51.2V, grid power -55W, load power 431W, PV Power 0W
2026-08-16 21:45:02.604674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:45:02.604765: Inverter 0 scheduled charge enable is False
2026-08-16 21:45:02.604799: Inverter 0 charge windows currently []
2026-08-16 21:45:02.604826: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:45:02.604940: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:45:02.605037: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:45:02.605111: Inverter 0 scheduled discharge enable is False
2026-08-16 21:45:02.605265: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:45:02.605303: Inverter 0 discharge windows currently []
2026-08-16 21:45:02.605327: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:45:02.605350: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:45:02.605381: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:45:02.673014: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:45:02.673197: Plan was last updated on 2026-08-16 21:40:00+01:00 and is now 5.0 minutes old
2026-08-16 21:45:02.673457: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:45:02.673504: Best export window [  ]
2026-08-16 21:45:02.674266: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:45:02.677612: Load divergence over 8.0 hours mean 593.87W, min 335.4W, max 1153.2W, std dev 241.7W, divergence 20.35%
2026-08-16 21:45:02.696471: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:45:02.696608: LoadML is_calculating False
2026-08-16 21:45:02.696675: Creating pool of 12 processes to match your CPU count
2026-08-16 21:45:02.825358: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 662.38p, metric_keep 221.89kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 27.62kWh, PV 0.0kWh
2026-08-16 21:45:02.967897: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:45:03.015182: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 689.98p, metric_keep 234.86kWh, min_soc 1.12kWh @ 08-17 08:40:00, load 28.44kWh, PV 0.0kWh
2026-08-16 21:45:03.113337: predict best10 end_record 08-17 23:35:00, final soc 1.78kWh, metric 438.79p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.44kWh, PV 0.0kWh
2026-08-16 21:45:03.200086: predict best end_record 08-17 23:35:00, final soc 2.42kWh, metric 436.94p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.62kWh, PV 0.0kWh
2026-08-16 21:45:03.200192: Saving plan best values to HA entities
2026-08-16 21:45:03.375372: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 21:45:03.381373: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:45:03.387151: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.65kWh, house 0kWh, export 0.0kWh, metric 436.94p, metric10 438.79p
2026-08-16 21:45:03.473125: Marginal costs baseline metric (no standing charge): 390.3065
2026-08-16 21:45:03.717185: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 21:45:03.784149: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:45:03.784845: - Your estimated bill for today is £3.21 and tomorrow is £1.37
2026-08-16 21:45:03.784898: - 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-16 21:45:03.784923: - The battery is currently at 59% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 21:45:03.784941: - For the next 48 hours there will be no solar generation.
2026-08-16 21:45:03.785001: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:45:03.785086: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 21:45:03.785126: 
2026-08-16 21:45:03.832371: Plan calculation took 1.16 seconds
2026-08-16 21:45:03.835508: No high rate period found
2026-08-16 21:45:03.881081: Import threshold used for optimisation was 8.0p
2026-08-16 21:45:03.930272: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:45:03.935702: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:45:03.935850: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:45:03.936032: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:45:03.936402: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:45:03.936524: No export window planned
2026-08-16 21:45:03.936744: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:45:03.936789: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:45:03.937079: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:45:03.937313: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:45:03.937388: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:45:03.937512: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:45:03.937651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937714: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.937970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:45:03.938484: Inverter 0 count register writes 0
2026-08-16 21:45:03.953359: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:45:03.958288: Total inverter register writes now 844
2026-08-16 21:45:03.991931: Info: Completed run status Demand
2026-08-16 21:45:04.000327: Info: record_status Demand
2026-08-16 21:45:04.006524: Saved current settings to /config/predbat_config.json
2026-08-16 21:45:04.006813: Compare, best tariff: current metric 318.25p
2026-08-16 21:45:34.107085: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:45:34.107705: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:45:34.107773: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:45:34.108158: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:45:34.108220: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:45:34.108263: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:45:34.108297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:47:34.337357: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:47:34.337657: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:47:34.337721: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:47:34.337900: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:47:34.337939: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:47:34.337990: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:47:34.338008: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:49:48.581076: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:49:48.581328: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:49:48.581363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:49:48.581497: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:49:48.581535: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:49:48.581556: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:49:48.581575: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:50:00.681324: --------------- PredBat - update at 2026-08-16 21:50:00+01:00 with clock skew 0 minutes, minutes now 1310
2026-08-16 21:50:00.682175: Saved current settings to /config/predbat_config.json
2026-08-16 21:50:00.682306: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 21:50:00.682380: 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-16 21:50:00.682497: 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-16 21:50:00.702429: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:50:00.702567: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:50:00.702748: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:50:00.703284: 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-16 21:50:00.703461: Predbat mode is set to Control charge & discharge
2026-08-16 21:50:00.925304: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:50:00.925473: Using load_power data to fill gaps in load_today data
2026-08-16 21:50:01.638652: Processing 721 30-minute periods for power integration
2026-08-16 21:50:01.790876: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:50:01.791000: Car charging hold False, threshold 6.0kWh
2026-08-16 21:50:01.791071: Current data so far today: load 10.45kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:50:01.806041: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:50:01.806128: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:50:01.806794: Standing charge is set to 46.63p
2026-08-16 21:50:01.880865: 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-16 21:50:01.881435: 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-16 21:50:01.881609: 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-16 21:50:01.881757: 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-16 21:50:01.881901: 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-16 21:50:01.882065: 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-16 21:50:01.882212: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882291: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882364: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882423: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882482: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882590: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882661: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882717: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882854: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:50:01.882903: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:50:01.887552: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:50:01.887879: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:50:01.922877: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:50:01.922986: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:50:01.924133: High export rate found rates in range 99p to -99p
2026-08-16 21:50:01.953410: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:50:01.953550: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:50:01.953612: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:50:01.968785: Battery level now 9.44kWh, -1hr ago 9.87kWh, at midnight 12.21kWh, battery value change in the last hour -2.97p, change today -19.02p, rate_forward 6.87p
2026-08-16 21:50:01.969211: 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-16 21:50:02.030055: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:50:02.030205: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:50:02.113048: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:50:02.139720: Today's load divergence 79.4%, in-day adjustment 80.66%, damping 0.95x, yesterday 82.97% today 80.43% blend 9.03%
2026-08-16 21:50:02.139843: Today's predicted so far 13.01kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 13.01kWh forecast extra.
2026-08-16 21:50:02.139889: Today's actual load so far 10.41kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 21:50:02.171143: Inverter 0: Type SK Sunsynk
2026-08-16 21:50:02.171235: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:50:02.171460: Reserve min: 7%, battery_min: 7%
2026-08-16 21:50:02.171565: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:50:02.171825: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 396W, current battery voltage 51.2V, grid power -52W, load power 449W, PV Power 0W
2026-08-16 21:50:02.171994: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:50:02.172114: Inverter 0 scheduled charge enable is False
2026-08-16 21:50:02.172145: Inverter 0 charge windows currently []
2026-08-16 21:50:02.172174: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:50:02.172307: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:50:02.172355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:50:02.172406: Inverter 0 scheduled discharge enable is False
2026-08-16 21:50:02.172550: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:50:02.172596: Inverter 0 discharge windows currently []
2026-08-16 21:50:02.172630: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:50:02.172656: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:50:02.172672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:50:02.229807: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:50:02.229923: Plan was last updated on 2026-08-16 21:40:00+01:00 and is now 10.0 minutes old
2026-08-16 21:50:02.230191: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:50:02.230236: Best export window [  ]
2026-08-16 21:50:02.230906: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:50:02.233499: Load divergence over 8.0 hours mean 592.34W, min 338.4W, max 1047.6W, std dev 236.67W, divergence 19.98%
2026-08-16 21:50:02.249272: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:50:02.249402: LoadML is_calculating False
2026-08-16 21:50:02.249485: Creating pool of 12 processes to match your CPU count
2026-08-16 21:50:02.357104: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 661.59p, metric_keep 221.1kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.78kWh, PV 0.0kWh
2026-08-16 21:50:02.479550: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:50:02.521903: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 689.2p, metric_keep 233.87kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 28.61kWh, PV 0.0kWh
2026-08-16 21:50:02.598938: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 442.17p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.61kWh, PV 0.0kWh
2026-08-16 21:50:02.671805: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 440.84p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.78kWh, PV 0.0kWh
2026-08-16 21:50:02.671900: Saving plan best values to HA entities
2026-08-16 21:50:02.819106: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:50:02.824397: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:50:02.829587: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.13kWh, house 0.0kWh, export 0.0kWh, metric 440.84p, metric10 442.17p
2026-08-16 21:50:02.912018: Marginal costs baseline metric (no standing charge): 394.2052
2026-08-16 21:50:03.143333: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 21:50:03.222095: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:50:03.222760: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:50:03.222808: - 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-16 21:50:03.222831: - The battery is currently at 59% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 21:50:03.222850: - For the next 48 hours there will be no solar generation.
2026-08-16 21:50:03.222867: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:50:03.222924: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 21:50:03.222957: 
2026-08-16 21:50:03.282798: Plan calculation took 1.05 seconds
2026-08-16 21:50:03.286951: No high rate period found
2026-08-16 21:50:03.358294: Import threshold used for optimisation was 8.0p
2026-08-16 21:50:03.409239: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:50:03.414895: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:50:03.415047: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:50:03.415187: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:50:03.415462: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:50:03.415557: No export window planned
2026-08-16 21:50:03.415677: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:50:03.415714: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:50:03.415851: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:50:03.416074: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:50:03.416141: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:50:03.416209: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:50:03.416294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416338: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416366: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416392: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:03.416719: Inverter 0 count register writes 0
2026-08-16 21:50:03.432733: 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-16 21:50:03.432882: Recompute is saving previous plan...
2026-08-16 21:50:03.433687: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 21:50:03.433751: Best export window [  ]
2026-08-16 21:50:03.434431: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:50:03.436865: Load divergence over 8.0 hours mean 592.34W, min 338.4W, max 1047.6W, std dev 236.67W, divergence 19.98%
2026-08-16 21:50:03.451481: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:50:03.451571: LoadML is_calculating False
2026-08-16 21:50:03.451632: Creating pool of 12 processes to match your CPU count
2026-08-16 21:50:03.531908: 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-16 21:50:03.532748: Optimise levels pass started at 2026-08-16 21:50:03
2026-08-16 21:50:03.532802: Optimise all windows, total charge 25 export 1
2026-08-16 21:50:03.898350: >> Region optimisation pass width 960 gives best_metric 502.47p, best_cost 524.66p, best_cycle 41.09kWh, best_import 28.44kWh
2026-08-16 21:50:04.063247: >> Region optimisation pass width 480 gives best_metric 502.47p, best_cost 524.66p, best_cycle 41.09kWh, best_import 28.44kWh
2026-08-16 21:50:04.374648: >> Region optimisation pass width 240 gives best_metric 502.47p, best_cost 524.66p, best_cycle 41.09kWh, best_import 28.44kWh
2026-08-16 21:50:05.303069: >> Region optimisation pass width 120 gives best_metric 501.36p, best_cost 515.96p, best_cycle 42.23kWh, best_import 27.35kWh
2026-08-16 21:50:05.303510: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 21:50:05.303590: Optimise levels pass ended at 2026-08-16 21:50:05, duration 1.8 seconds tried 77 combinations
2026-08-16 21:50:05.303656: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 501.36p, best_keep 0kWh, best_cycle 42.23kWh, best_carbon 0kg, best_import 27.35kWh
2026-08-16 21:50:05.324776: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 13.75, 16.0, 16.0, 16.0, 16.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]kWh and export limits []kWh
2026-08-16 21:50:07.838666: Tweak plan optimisation started metric 373.87p, cost 387.92p
2026-08-16 21:50:08.205489: Tweak optimisation finished metric 373.86p, cost 387.91p, metric_keep 0kWh, cycle 21.01kWh, carbon 0kg, import 11.35kWh, changed 8 window(s)
2026-08-16 21:50:08.225787: Swap charge optimisation started metric 373.86p, cost 387.91p, min_improvement_swap 0.1p
2026-08-16 21:50:09.032267: Swap charge optimisation finished metric 373.86p, cost 387.91p
2026-08-16 21:50:09.127652: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 94%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 21:50:09.128087: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 94%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:50:09.128351: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 94%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:50:09.128556: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 94%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 21:50:09.165972: Previous plan best metric is 372.66 (cost 385.78) and new plan best metric is 373.86 (cost 387.91)
2026-08-16 21:50:09.166222: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 21:50:09.166395: Plan valid is now true after recompute was False
2026-08-16 21:50:09.192486: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 659.83p, metric_keep 220.51kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.56kWh, PV 0.0kWh
2026-08-16 21:50:09.316004: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:50:09.362972: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 687.35p, metric_keep 233.28kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 28.38kWh, PV 0.0kWh
2026-08-16 21:50:09.462468: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 434.77p, metric_keep 2.11kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.38kWh, PV 0.0kWh
2026-08-16 21:50:09.553209: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 432.41p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.56kWh, PV 0.0kWh
2026-08-16 21:50:09.553310: Saving plan best values to HA entities
2026-08-16 21:50:09.726198: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:50:09.733184: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 21:50:09.740256: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.08kWh, house 0.0kWh, export 0.0kWh, metric 432.41p, metric10 434.77p
2026-08-16 21:50:09.805819: Marginal costs baseline metric (no standing charge): 385.7793
2026-08-16 21:50:10.044416: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 21:50:10.106103: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1310, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 21:50:10.106631: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:50:10.106674: - 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-16 21:50:10.106694: - The battery is currently at 59% and is in eco mode for the next 1 and three quarters hours.
2026-08-16 21:50:10.106710: - For the next 48 hours there will be no solar generation.
2026-08-16 21:50:10.106724: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:50:10.106740: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-16 21:50:10.106754: 
2026-08-16 21:50:10.150898: Plan calculation took 6.72 seconds
2026-08-16 21:50:10.151235: Inverter 0: Type SK Sunsynk
2026-08-16 21:50:10.151284: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:50:10.151500: Reserve min: 7%, battery_min: 7%
2026-08-16 21:50:10.151568: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:50:10.151862: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 380W, current battery voltage 51.2V, grid power -57W, load power 438W, PV Power 0W
2026-08-16 21:50:10.152097: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:50:10.152247: Inverter 0 scheduled charge enable is False
2026-08-16 21:50:10.152281: Inverter 0 charge windows currently []
2026-08-16 21:50:10.152312: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:50:10.152434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:50:10.152468: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:50:10.152502: Inverter 0 scheduled discharge enable is False
2026-08-16 21:50:10.152614: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:50:10.152646: Inverter 0 discharge windows currently []
2026-08-16 21:50:10.152666: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:50:10.152681: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:50:10.152702: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:50:10.203239: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:50:10.203411: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:50:10.203486: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:50:10.203645: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:50:10.203718: No export window planned
2026-08-16 21:50:10.203810: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:50:10.203840: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:50:10.203951: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:50:10.204146: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:50:10.204217: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:50:10.204330: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:50:10.204464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204706: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.204981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.205047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.205123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.205171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:50:10.205207: Inverter 0 count register writes 0
2026-08-16 21:50:10.224748: Total inverter register writes now 844
2026-08-16 21:50:10.253854: Info: Completed run status Demand
2026-08-16 21:50:10.259518: Info: record_status Demand
2026-08-16 21:50:10.265456: Saved current settings to /config/predbat_config.json
2026-08-16 21:50:10.265729: Compare, best tariff: current metric 318.25p
2026-08-16 21:50:48.372773: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:50:48.373092: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:50:48.373168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:50:48.373313: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:50:48.373365: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:50:48.373386: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:50:48.373404: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:52:48.592128: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:52:48.592423: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:52:48.592460: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:52:48.592589: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:52:48.592627: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:52:48.592648: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:52:48.592670: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:54:48.837744: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:54:48.838047: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:54:48.838094: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:54:48.838231: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:54:48.838270: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:54:48.838291: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:54:48.838309: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:55:00.924209: --------------- PredBat - update at 2026-08-16 21:55:00+01:00 with clock skew 0 minutes, minutes now 1315
2026-08-16 21:55:00.925114: Saved current settings to /config/predbat_config.json
2026-08-16 21:55:00.925320: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-16 21:55:00.925420: 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-16 21:55:00.925511: 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-16 21:55:00.947527: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 21:55:00.947685: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 21:55:00.947931: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 21:55:00.948588: 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-16 21:55:00.948788: Predbat mode is set to Control charge & discharge
2026-08-16 21:55:01.160324: Found 21602 load_today datapoints going back 28 days
2026-08-16 21:55:01.160489: Using load_power data to fill gaps in load_today data
2026-08-16 21:55:01.949823: Processing 721 30-minute periods for power integration
2026-08-16 21:55:02.104266: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 21:55:02.104407: Car charging hold False, threshold 6.0kWh
2026-08-16 21:55:02.104454: Current data so far today: load 10.5kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 21:55:02.120096: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 21:55:02.120218: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 21:55:02.121029: Standing charge is set to 46.63p
2026-08-16 21:55:02.197885: 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-16 21:55:02.198224: 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-16 21:55:02.198471: 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-16 21:55:02.198708: 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-16 21:55:02.198937: 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-16 21:55:02.199176: 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-16 21:55:02.199449: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.199583: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.199732: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.199871: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200030: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200230: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200365: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200493: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200704: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 21:55:02.200782: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 21:55:02.205451: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 21:55:02.205858: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 21:55:02.240888: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 21:55:02.241054: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 21:55:02.242272: High export rate found rates in range 99p to -99p
2026-08-16 21:55:02.269926: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 21:55:02.270095: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 21:55:02.270177: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 21:55:02.285876: Battery level now 9.44kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -19.02p, rate_forward 6.87p
2026-08-16 21:55:02.286261: 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-16 21:55:02.351338: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 21:55:02.351512: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 21:55:02.432237: Using weighted-bucket historical load forecast over 14 days
2026-08-16 21:55:02.458354: Today's load divergence 79.6%, in-day adjustment 80.83%, damping 0.95x, yesterday 82.97% today 80.62% blend 8.68%
2026-08-16 21:55:02.458464: Today's predicted so far 13.04kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 13.04kWh forecast extra.
2026-08-16 21:55:02.458516: Today's actual load so far 10.45kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 21:55:02.489321: Inverter 0: Type SK Sunsynk
2026-08-16 21:55:02.489418: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 21:55:02.489670: Reserve min: 7%, battery_min: 7%
2026-08-16 21:55:02.489769: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 21:55:02.490160: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 389W, current battery voltage 51.2V, grid power -53W, load power 446W, PV Power 0W
2026-08-16 21:55:02.490424: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:55:02.490559: Inverter 0 scheduled charge enable is False
2026-08-16 21:55:02.490608: Inverter 0 charge windows currently []
2026-08-16 21:55:02.490659: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 21:55:02.490858: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:55:02.490902: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:55:02.490974: Inverter 0 scheduled discharge enable is False
2026-08-16 21:55:02.491307: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:55:02.491377: Inverter 0 discharge windows currently []
2026-08-16 21:55:02.491406: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:55:02.491443: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:55:02.491462: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:55:02.559480: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 21:55:02.559590: Plan was last updated on 2026-08-16 21:50:00+01:00 and is now 5.0 minutes old
2026-08-16 21:55:02.559805: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 21:55:02.559846: Best export window [  ]
2026-08-16 21:55:02.560687: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 21:55:02.563854: Load divergence over 8.0 hours mean 590.69W, min 339.0W, max 1060.8W, std dev 234.14W, divergence 19.82%
2026-08-16 21:55:02.582977: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 21:55:02.583098: LoadML is_calculating False
2026-08-16 21:55:02.583166: Creating pool of 12 processes to match your CPU count
2026-08-16 21:55:02.705049: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 659.4p, metric_keep 219.49kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 27.68kWh, PV 0.0kWh
2026-08-16 21:55:02.834707: Battery has 11.75 hours left - now at 9.44kWh
2026-08-16 21:55:02.883350: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 686.89p, metric_keep 232.1kWh, min_soc 1.12kWh @ 08-17 08:55:00, load 28.5kWh, PV 0.0kWh
2026-08-16 21:55:02.977217: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 438.05p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.5kWh, PV 0.0kWh
2026-08-16 21:55:03.074138: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 436.22p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.68kWh, PV 0.0kWh
2026-08-16 21:55:03.074265: Saving plan best values to HA entities
2026-08-16 21:55:03.239706: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 21:55:03.244451: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 21:55:03.250218: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.56kWh, house 0.0kWh, export 0.0kWh, metric 436.22p, metric10 438.05p
2026-08-16 21:55:03.332575: Marginal costs baseline metric (no standing charge): 389.5886
2026-08-16 21:55:03.626159: Marginal energy costs matrix computed: min=4.75 max=30.13
2026-08-16 21:55:03.701393: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 21:55:03.702112: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 21:55:03.702169: - 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-16 21:55:03.702193: - The battery is currently at 59% and is in eco mode for the next 1 and a half hours.
2026-08-16 21:55:03.702213: - For the next 48 hours there will be no solar generation.
2026-08-16 21:55:03.702230: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 21:55:03.702252: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-16 21:55:03.702270: 
2026-08-16 21:55:03.758293: Plan calculation took 1.20 seconds
2026-08-16 21:55:03.762385: No high rate period found
2026-08-16 21:55:03.811594: Import threshold used for optimisation was 8.0p
2026-08-16 21:55:03.869855: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 21:55:03.877325: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 21:55:03.877490: Inverter 0 disabled charge window while waiting for schedule (now 08-16 21:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 21:55:03.877617: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:55:03.877888: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:55:03.877995: No export window planned
2026-08-16 21:55:03.878119: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 21:55:03.878156: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 21:55:03.878292: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 21:55:03.878472: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 21:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 21:55:03.878537: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 21:55:03.878604: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 21:55:03.878692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878833: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.878976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 21:55:03.879171: Inverter 0 count register writes 0
2026-08-16 21:55:03.899577: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 21:55:03.905657: Total inverter register writes now 844
2026-08-16 21:55:03.940006: Info: Completed run status Demand
2026-08-16 21:55:03.947230: Info: record_status Demand
2026-08-16 21:55:03.954699: Saved current settings to /config/predbat_config.json
2026-08-16 21:55:03.955024: Compare, best tariff: current metric 318.25p
2026-08-16 21:55:34.063464: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:55:34.063720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:55:34.063762: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:55:34.063909: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:55:34.063973: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:55:34.063998: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:55:34.064016: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:57:34.301981: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:57:34.302260: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:57:34.302305: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:57:34.302465: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:57:34.302503: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:57:34.302523: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:57:34.302546: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 21:59:48.541395: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 21:59:48.541694: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 21:59:48.541768: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 21:59:48.541996: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 21:59:48.542061: Note: Inverter does not support discharge freeze - disabled
2026-08-16 21:59:48.542083: Note: Inverter does not support charge freeze - disabled
2026-08-16 21:59:48.542101: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:00:00.639888: --------------- PredBat - update at 2026-08-16 22:00:00+01:00 with clock skew 0 minutes, minutes now 1320
2026-08-16 22:00:00.640806: Saved current settings to /config/predbat_config.json
2026-08-16 22:00:00.641028: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-16 22:00:00.641181: 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-16 22:00:00.641352: 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-16 22:00:00.666789: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:00:00.666906: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:00:00.667070: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:00:00.667565: 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-16 22:00:00.667669: Predbat mode is set to Control charge & discharge
2026-08-16 22:00:00.965094: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:00:00.965258: Using load_power data to fill gaps in load_today data
2026-08-16 22:00:01.831309: Processing 721 30-minute periods for power integration
2026-08-16 22:00:01.991999: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:00:01.992130: Car charging hold False, threshold 6.0kWh
2026-08-16 22:00:01.992172: Current data so far today: load 10.55kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:00:02.009378: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:00:02.009495: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:00:02.010443: Standing charge is set to 46.63p
2026-08-16 22:00:02.099930: 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-16 22:00:02.100221: 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-16 22:00:02.100414: 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-16 22:00:02.100601: 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-16 22:00:02.100778: 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-16 22:00:02.100993: 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-16 22:00:02.101187: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101309: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101400: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101485: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101566: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101703: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101789: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.101860: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.102054: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:00:02.102116: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:00:02.107773: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:00:02.108239: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:00:02.152720: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:00:02.152850: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:00:02.154260: High export rate found rates in range 99p to -99p
2026-08-16 22:00:02.190016: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:00:02.190162: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:00:02.190241: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:00:02.204149: Battery level now 9.44kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -19.02p, rate_forward 6.87p
2026-08-16 22:00:02.204588: 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-16 22:00:02.272496: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.51p, export 0.0p, carbon 0.0kg
2026-08-16 22:00:02.272693: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:00:02.379666: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:00:02.413573: Today's load divergence 79.18%, in-day adjustment 80.45%, damping 0.95x, yesterday 82.97% today 80.22% blend 8.33%
2026-08-16 22:00:02.413682: Today's predicted so far 13.18kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 13.18kWh forecast extra.
2026-08-16 22:00:02.413716: Today's actual load so far 10.55kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 22:00:02.447931: Inverter 0: Type SK Sunsynk
2026-08-16 22:00:02.448069: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:00:02.448358: Reserve min: 7%, battery_min: 7%
2026-08-16 22:00:02.448454: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:00:02.448790: Inverter 0 SoC: 9.34kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 442W, current battery voltage 51.2V, grid power -54W, load power 494W, PV Power 0W
2026-08-16 22:00:02.449075: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:00:02.449197: Inverter 0 scheduled charge enable is False
2026-08-16 22:00:02.449245: Inverter 0 charge windows currently []
2026-08-16 22:00:02.449285: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:00:02.449439: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:00:02.449478: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:00:02.449516: Inverter 0 scheduled discharge enable is False
2026-08-16 22:00:02.449727: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:00:02.449785: Inverter 0 discharge windows currently []
2026-08-16 22:00:02.449834: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:00:02.449878: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:00:02.449916: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:00:02.513010: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:00:02.513136: Plan was last updated on 2026-08-16 21:50:00+01:00 and is now 10.0 minutes old
2026-08-16 22:00:02.513412: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:00:02.513455: Best export window [  ]
2026-08-16 22:00:02.514172: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:00:02.516705: Load divergence over 8.0 hours mean 590.81W, min 339.0W, max 1100.4W, std dev 236.08W, divergence 19.98%
2026-08-16 22:00:02.532118: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:00:02.532224: LoadML is_calculating False
2026-08-16 22:00:02.532289: Creating pool of 12 processes to match your CPU count
2026-08-16 22:00:02.662880: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 661.71p, metric_keep 221.21kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.78kWh, PV 0.0kWh
2026-08-16 22:00:02.799040: Battery has 11.58 hours left - now at 9.34kWh
2026-08-16 22:00:02.851950: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 689.24p, metric_keep 234.01kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 28.61kWh, PV 0.0kWh
2026-08-16 22:00:02.939729: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 442.05p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.61kWh, PV 0.0kWh
2026-08-16 22:00:03.039590: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 440.77p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.78kWh, PV 0.0kWh
2026-08-16 22:00:03.039685: Saving plan best values to HA entities
2026-08-16 22:00:03.205590: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:00:03.211575: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:00:03.217538: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.12kWh, house 0.0kWh, export 0.0kWh, metric 440.77p, metric10 442.05p
2026-08-16 22:00:03.305330: Marginal costs baseline metric (no standing charge): 394.1311
2026-08-16 22:00:03.565386: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 22:00:03.639577: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 22:00:03.640424: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 22:00:03.640481: - 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-16 22:00:03.640506: - The battery is currently at 58% and is in eco mode for the next 1 and a half hours.
2026-08-16 22:00:03.640544: - For the next 48 hours there will be no solar generation.
2026-08-16 22:00:03.640584: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:00:03.640619: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-16 22:00:03.640651: 
2026-08-16 22:00:03.692852: Plan calculation took 1.18 seconds
2026-08-16 22:00:03.696927: No high rate period found
2026-08-16 22:00:03.751906: Import threshold used for optimisation was 8.0p
2026-08-16 22:00:03.817345: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:00:03.822809: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:00:03.822925: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:00:03.823086: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:00:03.823343: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:00:03.823437: No export window planned
2026-08-16 22:00:03.823580: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:00:03.823616: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:00:03.823760: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:00:03.823976: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:00:03.824042: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:00:03.824137: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:00:03.824228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824265: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:03.824614: Inverter 0 count register writes 0
2026-08-16 22:00:03.840210: 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-16 22:00:03.840420: Recompute is saving previous plan...
2026-08-16 22:00:03.841633: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:00:03.841696: Best export window [  ]
2026-08-16 22:00:03.842793: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:00:03.847297: Load divergence over 8.0 hours mean 590.81W, min 339.0W, max 1100.4W, std dev 236.08W, divergence 19.98%
2026-08-16 22:00:03.866254: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:00:03.866405: LoadML is_calculating False
2026-08-16 22:00:03.866482: Creating pool of 12 processes to match your CPU count
2026-08-16 22:00:03.965254: 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-16 22:00:03.966429: Optimise levels pass started at 2026-08-16 22:00:03
2026-08-16 22:00:03.966501: Optimise all windows, total charge 25 export 1
2026-08-16 22:00:04.667492: >> Region optimisation pass width 960 gives best_metric 503.03p, best_cost 524.84p, best_cycle 41.09kWh, best_import 28.46kWh
2026-08-16 22:00:04.828096: >> Region optimisation pass width 480 gives best_metric 503.03p, best_cost 524.84p, best_cycle 41.09kWh, best_import 28.46kWh
2026-08-16 22:00:05.157546: >> Region optimisation pass width 240 gives best_metric 503.03p, best_cost 524.84p, best_cycle 41.09kWh, best_import 28.46kWh
2026-08-16 22:00:05.836277: >> Region optimisation pass width 120 gives best_metric 502.35p, best_cost 516.09p, best_cycle 42.23kWh, best_import 27.37kWh
2026-08-16 22:00:05.836502: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:00:05.836570: Optimise levels pass ended at 2026-08-16 22:00:05, duration 1.9 seconds tried 79 combinations
2026-08-16 22:00:05.836643: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 502.35p, best_keep 0kWh, best_cycle 42.23kWh, best_carbon 0kg, best_import 27.37kWh
2026-08-16 22:00:05.858718: Starting detailed optimisation end_record 08-17 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, 0, 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-16 22:00:08.147077: Tweak plan optimisation started metric 374.96p, cost 387.74p
2026-08-16 22:00:08.444257: Tweak optimisation finished metric 374.96p, cost 387.74p, metric_keep 0.01kWh, cycle 23.08kWh, carbon 0kg, import 11.32kWh, changed 8 window(s)
2026-08-16 22:00:08.460755: Swap charge optimisation started metric 374.96p, cost 387.74p, min_improvement_swap 0.1p
2026-08-16 22:00:09.073308: Swap charge optimisation finished metric 374.96p, cost 387.74p
2026-08-16 22:00:09.150275: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 22:00:09.150775: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:00:09.151027: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:00:09.151222: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:00:09.191264: Previous plan best metric is 372.71 (cost 385.83) and new plan best metric is 374.96 (cost 387.74)
2026-08-16 22:00:09.191527: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:00:09.191704: Plan valid is now true after recompute was False
2026-08-16 22:00:09.224112: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 660.09p, metric_keep 220.63kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:00:09.351405: Battery has 11.58 hours left - now at 9.34kWh
2026-08-16 22:00:09.395655: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 687.53p, metric_keep 233.43kWh, min_soc 1.12kWh @ 08-17 08:50:00, load 28.39kWh, PV 0.0kWh
2026-08-16 22:00:09.478652: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 434.79p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.39kWh, PV 0.0kWh
2026-08-16 22:00:09.577267: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 432.47p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:00:09.577366: Saving plan best values to HA entities
2026-08-16 22:00:09.777639: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:00:09.783573: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:00:09.789359: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.09kWh, house 0.0kWh, export 0.0kWh, metric 432.47p, metric10 434.79p
2026-08-16 22:00:09.876761: Marginal costs baseline metric (no standing charge): 385.8348
2026-08-16 22:00:10.184300: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 22:00:10.260201: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1320, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:00:10.260868: - Your estimated bill for today is £3.21 and tomorrow is £1.36
2026-08-16 22:00:10.260915: - 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-16 22:00:10.260972: - The battery is currently at 58% and is in eco mode for the next 1 and a half hours.
2026-08-16 22:00:10.260999: - For the next 48 hours there will be no solar generation.
2026-08-16 22:00:10.261017: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:00:10.261040: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-16 22:00:10.261058: 
2026-08-16 22:00:10.322202: Plan calculation took 6.48 seconds
2026-08-16 22:00:10.322615: Inverter 0: Type SK Sunsynk
2026-08-16 22:00:10.322668: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:00:10.322915: Reserve min: 7%, battery_min: 7%
2026-08-16 22:00:10.323016: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:00:10.323357: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -55W, load power 466W, PV Power 0W
2026-08-16 22:00:10.323605: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:00:10.323714: Inverter 0 scheduled charge enable is False
2026-08-16 22:00:10.323752: Inverter 0 charge windows currently []
2026-08-16 22:00:10.323783: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:00:10.323928: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:00:10.323987: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:00:10.324028: Inverter 0 scheduled discharge enable is False
2026-08-16 22:00:10.324168: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:00:10.324206: Inverter 0 discharge windows currently []
2026-08-16 22:00:10.324229: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:00:10.324251: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:00:10.324269: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:00:10.427685: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:00:10.427890: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:00:10.428022: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:00:10.428319: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:00:10.428419: No export window planned
2026-08-16 22:00:10.428585: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:00:10.428630: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:00:10.428809: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:00:10.429080: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:00:10.429150: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:00:10.429253: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:00:10.429395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429452: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429556: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429751: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.429992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:00:10.430384: Inverter 0 count register writes 0
2026-08-16 22:00:10.483007: Total inverter register writes now 844
2026-08-16 22:00:10.640140: Info: Completed run status Demand
2026-08-16 22:00:10.648373: Info: record_status Demand
2026-08-16 22:00:10.656916: Saved current settings to /config/predbat_config.json
2026-08-16 22:00:10.657323: Compare, best tariff: current metric 318.25p
2026-08-16 22:00:48.784340: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:00:48.784610: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:00:48.784651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:00:48.784791: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:00:48.784831: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:00:48.784853: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:00:48.784871: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:02:49.011746: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:02:49.012015: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:02:49.012052: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:02:49.012206: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:02:49.012255: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:02:49.012276: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:02:49.012294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:04:49.237136: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:04:49.237401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:04:49.237444: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:04:49.237634: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:04:49.237703: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:04:49.237724: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:04:49.237840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:05:00.334188: --------------- PredBat - update at 2026-08-16 22:05:00+01:00 with clock skew 0 minutes, minutes now 1325
2026-08-16 22:05:00.334919: Saved current settings to /config/predbat_config.json
2026-08-16 22:05:00.335072: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-16 22:05:00.335139: 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-16 22:05:00.335232: 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-16 22:05:00.357279: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:05:00.357430: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:05:00.357589: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:05:00.358061: 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-16 22:05:00.358168: Predbat mode is set to Control charge & discharge
2026-08-16 22:05:00.557725: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:05:00.557876: Using load_power data to fill gaps in load_today data
2026-08-16 22:05:01.456827: Processing 721 30-minute periods for power integration
2026-08-16 22:05:01.649713: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:05:01.649844: Car charging hold False, threshold 6.0kWh
2026-08-16 22:05:01.649890: Current data so far today: load 10.6kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:05:01.665516: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:05:01.665602: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:05:01.666320: Standing charge is set to 46.63p
2026-08-16 22:05:01.755137: 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-16 22:05:01.755402: 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-16 22:05:01.755588: 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-16 22:05:01.755770: 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-16 22:05:01.755968: 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-16 22:05:01.756147: 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-16 22:05:01.756324: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.756419: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.756584: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.756678: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.756753: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.756901: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.757093: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.757188: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.757361: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:05:01.757423: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:05:01.763181: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:05:01.763616: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:05:01.808978: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:05:01.809132: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:05:01.810959: High export rate found rates in range 99p to -99p
2026-08-16 22:05:01.845126: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:05:01.845287: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:05:01.845357: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:05:01.861388: Battery level now 9.34kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -2.86p, change today -19.68p, rate_forward 6.87p
2026-08-16 22:05:01.861874: 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-16 22:05:01.929274: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 297.14p, import 250.5p, export 0.0p, carbon 0.0kg
2026-08-16 22:05:01.929441: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:05:02.028445: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:05:02.062524: Today's load divergence 79.01%, in-day adjustment 80.29%, damping 0.95x, yesterday 82.97% today 80.06% blend 7.99%
2026-08-16 22:05:02.062631: Today's predicted so far 13.31kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 13.31kWh forecast extra.
2026-08-16 22:05:02.062665: Today's actual load so far 10.66kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 22:05:02.098364: 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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 22:05:02.098916: Sensor changes require a replan, will recompute the plan
2026-08-16 22:05:02.099094: Inverter 0: Type SK Sunsynk
2026-08-16 22:05:02.099134: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:05:02.099304: Reserve min: 7%, battery_min: 7%
2026-08-16 22:05:02.099371: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:05:02.099623: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -54W, load power 462W, PV Power 0W
2026-08-16 22:05:02.099780: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:05:02.099899: Inverter 0 scheduled charge enable is False
2026-08-16 22:05:02.099948: Inverter 0 charge windows currently []
2026-08-16 22:05:02.099977: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:05:02.100088: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:05:02.100125: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:05:02.100162: Inverter 0 scheduled discharge enable is False
2026-08-16 22:05:02.100285: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:05:02.100321: Inverter 0 discharge windows currently []
2026-08-16 22:05:02.100343: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:05:02.100362: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:05:02.100387: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:05:02.175175: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:05:02.175260: Will recompute the plan as it is invalid
2026-08-16 22:05:02.175387: Recompute is saving previous plan...
2026-08-16 22:05:02.176395: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:05:02.176460: Best export window [  ]
2026-08-16 22:05:02.177450: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:05:02.180614: Load divergence over 8.0 hours mean 590.83W, min 335.4W, max 1131.0W, std dev 246.77W, divergence 20.88%
2026-08-16 22:05:02.199578: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:05:02.199700: LoadML is_calculating False
2026-08-16 22:05:02.199770: Creating pool of 12 processes to match your CPU count
2026-08-16 22:05:02.294179: 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-16 22:05:02.295236: Optimise levels pass started at 2026-08-16 22:05:02
2026-08-16 22:05:02.295311: Optimise all windows, total charge 25 export 1
2026-08-16 22:05:02.984772: >> Region optimisation pass width 960 gives best_metric 503.63p, best_cost 524.87p, best_cycle 41.08kWh, best_import 28.47kWh
2026-08-16 22:05:03.163547: >> Region optimisation pass width 480 gives best_metric 503.63p, best_cost 524.87p, best_cycle 41.08kWh, best_import 28.47kWh
2026-08-16 22:05:03.462352: >> Region optimisation pass width 240 gives best_metric 503.63p, best_cost 524.87p, best_cycle 41.08kWh, best_import 28.47kWh
2026-08-16 22:05:04.164241: >> Region optimisation pass width 120 gives best_metric 503.11p, best_cost 518.29p, best_cycle 41.93kWh, best_import 27.64kWh
2026-08-16 22:05:04.164599: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:05:04.164704: Optimise levels pass ended at 2026-08-16 22:05:04, duration 1.9 seconds tried 80 combinations
2026-08-16 22:05:04.164770: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 503.11p, best_keep 0kWh, best_cycle 41.93kWh, best_carbon 0kg, best_import 27.64kWh
2026-08-16 22:05:04.186217: Starting detailed optimisation end_record 08-17 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, 0, 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-16 22:05:06.458423: Tweak plan optimisation started metric 374.99p, cost 387.8p
2026-08-16 22:05:06.725819: Tweak optimisation finished metric 374.99p, cost 387.8p, metric_keep 0.0kWh, cycle 23.0kWh, carbon 0kg, import 11.33kWh, changed 8 window(s)
2026-08-16 22:05:06.744463: Swap charge optimisation started metric 374.99p, cost 387.8p, min_improvement_swap 0.1p
2026-08-16 22:05:07.355085: Swap charge optimisation finished metric 374.99p, cost 387.8p
2026-08-16 22:05:07.429097: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 22:05:07.429468: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:05:07.429662: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:05:07.429807: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:05:07.467084: Previous plan best metric is 372.75 (cost 385.94) and new plan best metric is 374.99 (cost 387.8)
2026-08-16 22:05:07.467348: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:05:07.467604: Plan valid is now true after recompute was False
2026-08-16 22:05:07.495127: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 660.32p, metric_keep 220.93kWh, min_soc 1.12kWh @ 08-17 09:35:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:05:07.633478: Battery has 11.5 hours left - now at 9.28kWh
2026-08-16 22:05:07.682699: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 687.58p, metric_keep 233.76kWh, min_soc 1.12kWh @ 08-17 08:45:00, load 28.39kWh, PV 0.0kWh
2026-08-16 22:05:07.781311: predict best10 end_record 08-17 23:30:00, final soc 1.49kWh, metric 434.88p, metric_keep 2.06kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.39kWh, PV 0.0kWh
2026-08-16 22:05:07.873403: predict best end_record 08-17 23:30:00, final soc 2.06kWh, metric 432.58p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:05:07.873505: Saving plan best values to HA entities
2026-08-16 22:05:08.073585: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:05:08.080353: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:05:08.092812: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.1kWh, house 0.0kWh, export 0.0kWh, metric 432.58p, metric10 434.88p
2026-08-16 22:05:08.187896: Marginal costs baseline metric (no standing charge): 385.9444
2026-08-16 22:05:08.441282: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 22:05:08.510779: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1325, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:05:08.511387: - Your estimated bill for today is £3.20 and tomorrow is £1.36
2026-08-16 22:05:08.511431: - 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-16 22:05:08.511450: - The battery is currently at 58% and is in eco mode for the next 1 and a half hours.
2026-08-16 22:05:08.511468: - For the next 48 hours there will be no solar generation.
2026-08-16 22:05:08.511501: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:05:08.511528: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-16 22:05:08.511562: 
2026-08-16 22:05:08.564201: Plan calculation took 6.39 seconds
2026-08-16 22:05:08.570503: Saved plan to storage
2026-08-16 22:05:08.573600: No high rate period found
2026-08-16 22:05:08.627707: Import threshold used for optimisation was 8.0p
2026-08-16 22:05:08.679364: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:05:08.686016: Inverter 0: Type SK Sunsynk
2026-08-16 22:05:08.686096: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:05:08.686333: Reserve min: 7%, battery_min: 7%
2026-08-16 22:05:08.686413: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:05:08.686784: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -54W, load power 462W, PV Power 0W
2026-08-16 22:05:08.687046: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:05:08.687151: Inverter 0 scheduled charge enable is False
2026-08-16 22:05:08.687189: Inverter 0 charge windows currently []
2026-08-16 22:05:08.687241: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:05:08.687386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:05:08.687431: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:05:08.687470: Inverter 0 scheduled discharge enable is False
2026-08-16 22:05:08.687606: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:05:08.687645: Inverter 0 discharge windows currently []
2026-08-16 22:05:08.687668: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:05:08.687691: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:05:08.687709: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:05:08.744387: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:05:08.744541: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:05:08.744620: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:05:08.744825: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:05:08.744915: No export window planned
2026-08-16 22:05:08.745125: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:05:08.745169: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:05:08.745319: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:05:08.745490: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:05:08.745545: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:05:08.745603: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:05:08.745691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745737: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.745979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746118: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:05:08.746167: Inverter 0 count register writes 0
2026-08-16 22:05:08.767229: Total inverter register writes now 844
2026-08-16 22:05:08.800752: Info: Completed run status Demand
2026-08-16 22:05:08.807084: Info: record_status Demand
2026-08-16 22:05:08.813954: Saved current settings to /config/predbat_config.json
2026-08-16 22:05:08.814269: Compare, best tariff: current metric 318.25p
2026-08-16 22:05:48.930595: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:05:48.930951: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:05:48.931022: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:05:48.931260: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:05:48.931326: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:05:48.931368: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:05:48.931420: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:07:49.159393: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:07:49.159757: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:07:49.159810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:07:49.160018: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:07:49.160068: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:07:49.160091: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:07:49.160138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:10:00.396658: --------------- PredBat - update at 2026-08-16 22:10:00+01:00 with clock skew 0 minutes, minutes now 1330
2026-08-16 22:10:00.397612: Saved current settings to /config/predbat_config.json
2026-08-16 22:10:00.397748: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-16 22:10:00.397842: 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-16 22:10:00.397987: 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-16 22:10:00.418980: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:10:00.419130: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:10:00.419299: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:10:00.419924: 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-16 22:10:00.420080: Predbat mode is set to Control charge & discharge
2026-08-16 22:10:00.637295: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:10:00.637472: Using load_power data to fill gaps in load_today data
2026-08-16 22:10:01.397698: Processing 721 30-minute periods for power integration
2026-08-16 22:10:01.566618: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:10:01.566745: Car charging hold False, threshold 6.0kWh
2026-08-16 22:10:01.566787: Current data so far today: load 10.65kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:10:01.582476: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:10:01.582576: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:10:01.583264: Standing charge is set to 46.63p
2026-08-16 22:10:01.663199: 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-16 22:10:01.663542: 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-16 22:10:01.663818: 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-16 22:10:01.664097: 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-16 22:10:01.664363: 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-16 22:10:01.664597: 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-16 22:10:01.664833: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665013: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665261: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665402: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665544: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665763: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.665910: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.666039: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.666294: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:10:01.666369: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:10:01.671045: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:10:01.671477: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:10:01.707475: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:10:01.707616: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:10:01.708834: High export rate found rates in range 99p to -99p
2026-08-16 22:10:01.737566: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:10:01.737721: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:10:01.737808: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:10:01.751301: Battery level now 9.28kWh, -1hr ago 9.76kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -20.12p, rate_forward 6.87p
2026-08-16 22:10:01.751717: 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-16 22:10:01.815877: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.52p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:10:01.816041: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:10:01.899851: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:10:01.933758: Today's load divergence 78.84%, in-day adjustment 80.13%, damping 0.95x, yesterday 82.97% today 79.89% blend 7.64%
2026-08-16 22:10:01.933888: Today's predicted so far 13.34kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 13.34kWh forecast extra.
2026-08-16 22:10:01.933950: Today's actual load so far 10.67kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 22:10:01.978273: Inverter 0: Type SK Sunsynk
2026-08-16 22:10:01.978353: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:10:01.978505: Reserve min: 7%, battery_min: 7%
2026-08-16 22:10:01.978565: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:10:01.978839: 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 -55W, load power 454W, PV Power 0W
2026-08-16 22:10:01.979002: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:10:01.979080: Inverter 0 scheduled charge enable is False
2026-08-16 22:10:01.979104: Inverter 0 charge windows currently []
2026-08-16 22:10:01.979125: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:10:01.979217: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:10:01.979246: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:10:01.979276: Inverter 0 scheduled discharge enable is False
2026-08-16 22:10:01.979377: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:10:01.979407: Inverter 0 discharge windows currently []
2026-08-16 22:10:01.979426: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:10:01.979441: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:10:01.979473: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:10:02.041972: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:10:02.042085: Plan was last updated on 2026-08-16 22:05:00+01:00 and is now 5.0 minutes old
2026-08-16 22:10:02.042305: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:10:02.042347: Best export window [  ]
2026-08-16 22:10:02.043212: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:10:02.046432: Load divergence over 8.0 hours mean 592.29W, min 336.0W, max 1105.2W, std dev 242.0W, divergence 20.43%
2026-08-16 22:10:02.065912: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:10:02.066060: LoadML is_calculating False
2026-08-16 22:10:02.066140: Creating pool of 12 processes to match your CPU count
2026-08-16 22:10:02.204531: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 662.22p, metric_keep 218.9kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 27.67kWh, PV 0.0kWh
2026-08-16 22:10:02.345479: Battery has 11.5 hours left - now at 9.28kWh
2026-08-16 22:10:02.392921: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 689.45p, metric_keep 231.18kWh, min_soc 1.12kWh @ 08-17 09:00:00, load 28.48kWh, PV 0.0kWh
2026-08-16 22:10:02.477421: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 441.18p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.48kWh, PV 0.0kWh
2026-08-16 22:10:02.561635: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 439.55p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.67kWh, PV 0.0kWh
2026-08-16 22:10:02.561733: Saving plan best values to HA entities
2026-08-16 22:10:02.739572: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:10:02.745572: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:10:02.751347: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.55kWh, house 0.0kWh, export 0.0kWh, metric 439.55p, metric10 441.18p
2026-08-16 22:10:02.834585: Marginal costs baseline metric (no standing charge): 392.9125
2026-08-16 22:10:03.138752: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 22:10:03.245444: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1330, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:10:03.246149: - Your estimated bill for today is £3.24 and tomorrow is £1.36
2026-08-16 22:10:03.246198: - 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-16 22:10:03.246221: - The battery is currently at 58% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 22:10:03.246241: - For the next 48 hours there will be no solar generation.
2026-08-16 22:10:03.246273: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:10:03.246296: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 22:10:03.246313: 
2026-08-16 22:10:03.302882: Plan calculation took 1.26 seconds
2026-08-16 22:10:03.309083: No high rate period found
2026-08-16 22:10:03.365260: Import threshold used for optimisation was 8.0p
2026-08-16 22:10:03.421188: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:10:03.427710: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:10:03.427869: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:10:03.428032: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:10:03.428332: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:10:03.428424: No export window planned
2026-08-16 22:10:03.428570: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:10:03.428611: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:10:03.428755: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:10:03.429032: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:10:03.429107: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:10:03.429183: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:10:03.429275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429368: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:10:03.429731: Inverter 0 count register writes 0
2026-08-16 22:10:03.447861: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 22:10:03.453461: Total inverter register writes now 844
2026-08-16 22:10:03.487511: Info: Completed run status Demand
2026-08-16 22:10:03.494242: Info: record_status Demand
2026-08-16 22:10:03.502226: Saved current settings to /config/predbat_config.json
2026-08-16 22:10:03.502547: Compare, best tariff: current metric 318.25p
2026-08-16 22:10:33.619516: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:10:33.621206: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:10:33.621870: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:10:33.622170: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:10:33.622226: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:10:33.622258: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:10:33.622313: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:12:33.847278: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:12:33.847520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:12:33.847552: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:12:33.847670: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:12:33.847728: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:12:33.847745: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:12:33.847760: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:13:53.577756: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 22:13:54.666616: Processing 1345 30-minute periods for power integration
2026-08-16 22:13:54.750555: ML Component: Car charging hold False, car energy reported load False
2026-08-16 22:13:54.833339: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:13:54.916205: ML Temperature data points: 49071
2026-08-16 22:13:55.152152: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 22:13:55.194101: ML Component: Data fetch completed, load data age 58.0 days, 16802 data points
2026-08-16 22:13:55.194279: ML Component: No training needed, model age is 1.1 hours
2026-08-16 22:13:55.194356: ML Component: Generating predictions load data age 58.0 days, 16802 data points
2026-08-16 22:13:55.314518: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0505 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 22:14:02.570418: ML Component: Generated 576 predictions (total 26.00 kWh over 48h)
2026-08-16 22:14:02.633485: ML Component: Prediction cycle completed
2026-08-16 22:14:02.758033: ML Component: Saved 16802 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 22:14:33.867436: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 22:14:34.037210: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 22:14:48.390673: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:14:48.390944: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:14:48.390985: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:14:48.391159: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:14:48.391199: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:14:48.391230: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:14:48.391249: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:15:00.483305: --------------- PredBat - update at 2026-08-16 22:15:00+01:00 with clock skew 0 minutes, minutes now 1335
2026-08-16 22:15:00.484306: Saved current settings to /config/predbat_config.json
2026-08-16 22:15:00.484466: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-16 22:15:00.484611: 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-16 22:15:00.484739: 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-16 22:15:00.509311: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:15:00.509500: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:15:00.509723: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:15:00.510436: 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-16 22:15:00.510631: Predbat mode is set to Control charge & discharge
2026-08-16 22:15:00.703121: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:15:00.703268: Using load_power data to fill gaps in load_today data
2026-08-16 22:15:01.418446: Processing 721 30-minute periods for power integration
2026-08-16 22:15:01.612045: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:15:01.612185: Car charging hold False, threshold 6.0kWh
2026-08-16 22:15:01.612234: Current data so far today: load 10.7kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:15:01.631640: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:15:01.631754: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:15:01.632716: Standing charge is set to 46.63p
2026-08-16 22:15:01.714919: 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-16 22:15:01.715148: 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-16 22:15:01.715331: 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-16 22:15:01.715482: 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-16 22:15:01.715644: 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-16 22:15:01.715787: 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-16 22:15:01.716001: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716108: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716250: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716355: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716416: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716531: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716634: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716689: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716834: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:15:01.716900: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:15:01.721584: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:15:01.721906: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:15:01.758755: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:15:01.759076: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:15:01.760520: High export rate found rates in range 99p to -99p
2026-08-16 22:15:01.796625: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:15:01.796801: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:15:01.796918: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:15:01.811582: Battery level now 9.28kWh, -1hr ago 9.67kWh, at midnight 12.21kWh, battery value change in the last hour -2.69p, change today -20.12p, rate_forward 6.87p
2026-08-16 22:15:01.812076: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.53p, import 1.53p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 22:15:01.882901: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.87p, export 0.0p, carbon 0.0kg
2026-08-16 22:15:01.883092: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:15:01.966196: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:15:01.992042: Today's load divergence 78.38%, in-day adjustment 79.72%, damping 0.95x, yesterday 82.97% today 79.46% blend 7.29%
2026-08-16 22:15:01.992128: Today's predicted so far 13.35kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 13.35kWh forecast extra.
2026-08-16 22:15:01.992155: Today's actual load so far 10.64kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 22:15:02.025874: Inverter 0: Type SK Sunsynk
2026-08-16 22:15:02.025974: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:15:02.026205: Reserve min: 7%, battery_min: 7%
2026-08-16 22:15:02.026285: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:15:02.026558: 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 -54W, load power 456W, PV Power 0W
2026-08-16 22:15:02.026723: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:15:02.026812: Inverter 0 scheduled charge enable is False
2026-08-16 22:15:02.026847: Inverter 0 charge windows currently []
2026-08-16 22:15:02.026897: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:15:02.027156: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:15:02.027215: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:15:02.027259: Inverter 0 scheduled discharge enable is False
2026-08-16 22:15:02.027474: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:15:02.027536: Inverter 0 discharge windows currently []
2026-08-16 22:15:02.027563: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:15:02.027585: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:15:02.027609: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:15:02.091486: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:15:02.091604: Plan was last updated on 2026-08-16 22:05:00+01:00 and is now 10.0 minutes old
2026-08-16 22:15:02.091835: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:15:02.091896: Best export window [  ]
2026-08-16 22:15:02.092657: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:15:02.095820: Load divergence over 8.0 hours mean 593.83W, min 335.4W, max 1153.2W, std dev 241.72W, divergence 20.35%
2026-08-16 22:15:02.114338: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:15:02.114461: LoadML is_calculating False
2026-08-16 22:15:02.114565: Creating pool of 12 processes to match your CPU count
2026-08-16 22:15:02.238446: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 661.23p, metric_keep 217.15kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.78kWh, PV 0.0kWh
2026-08-16 22:15:02.368209: Battery has 11.58 hours left - now at 9.28kWh
2026-08-16 22:15:02.410042: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 688.38p, metric_keep 228.84kWh, min_soc 1.12kWh @ 08-17 09:05:00, load 28.59kWh, PV 0.0kWh
2026-08-16 22:15:02.493469: predict best10 end_record 08-17 23:40:00, final soc 2.11kWh, metric 444.28p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.59kWh, PV 0.0kWh
2026-08-16 22:15:02.569762: predict best end_record 08-17 23:40:00, final soc 2.81kWh, metric 443.19p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.78kWh, PV 0.0kWh
2026-08-16 22:15:02.569854: Saving plan best values to HA entities
2026-08-16 22:15:02.753224: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:15:02.760373: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:15:02.766596: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 12.01kWh, house 0kWh, export 0.0kWh, metric 443.19p, metric10 444.28p
2026-08-16 22:15:02.846314: Marginal costs baseline metric (no standing charge): 396.5515
2026-08-16 22:15:03.119157: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 22:15:03.222611: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1335, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:15:03.223297: - Your estimated bill for today is £3.24 and tomorrow is £1.35
2026-08-16 22:15:03.223345: - 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-16 22:15:03.223369: - The battery is currently at 58% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 22:15:03.223387: - For the next 48 hours there will be no solar generation.
2026-08-16 22:15:03.223405: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:15:03.223422: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 22:15:03.223439: 
2026-08-16 22:15:03.278830: Plan calculation took 1.19 seconds
2026-08-16 22:15:03.282956: No high rate period found
2026-08-16 22:15:03.339316: Import threshold used for optimisation was 8.0p
2026-08-16 22:15:03.394823: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:15:03.400638: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:15:03.400750: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:15:03.400898: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:15:03.401274: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:15:03.401361: No export window planned
2026-08-16 22:15:03.401539: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:15:03.401582: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:15:03.401745: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:15:03.402072: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:15:03.402157: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:15:03.402230: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:15:03.402330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402403: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402554: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:03.402829: Inverter 0 count register writes 0
2026-08-16 22:15:03.419496: 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-16 22:15:03.419663: Recompute is saving previous plan...
2026-08-16 22:15:03.420644: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:15:03.420705: Best export window [  ]
2026-08-16 22:15:03.421683: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:15:03.424922: Load divergence over 8.0 hours mean 593.83W, min 335.4W, max 1153.2W, std dev 241.72W, divergence 20.35%
2026-08-16 22:15:03.443481: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:15:03.443612: LoadML is_calculating False
2026-08-16 22:15:03.443702: Creating pool of 12 processes to match your CPU count
2026-08-16 22:15:03.537015: 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-16 22:15:03.538183: Optimise levels pass started at 2026-08-16 22:15:03
2026-08-16 22:15:03.538242: Optimise all windows, total charge 25 export 1
2026-08-16 22:15:03.945665: >> Region optimisation pass width 960 gives best_metric 507.3p, best_cost 529.11p, best_cycle 41.31kWh, best_import 28.58kWh
2026-08-16 22:15:04.078355: >> Region optimisation pass width 480 gives best_metric 507.3p, best_cost 529.11p, best_cycle 41.31kWh, best_import 28.58kWh
2026-08-16 22:15:04.352973: >> Region optimisation pass width 240 gives best_metric 507.3p, best_cost 529.11p, best_cycle 41.31kWh, best_import 28.58kWh
2026-08-16 22:15:05.012616: >> Region optimisation pass width 120 gives best_metric 506.8p, best_cost 522.65p, best_cycle 42.15kWh, best_import 27.77kWh
2026-08-16 22:15:05.012815: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:15:05.012902: Optimise levels pass ended at 2026-08-16 22:15:05, duration 1.5 seconds tried 79 combinations
2026-08-16 22:15:05.013014: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 506.8p, best_keep 0kWh, best_cycle 42.15kWh, best_carbon 0kg, best_import 27.77kWh
2026-08-16 22:15:05.029658: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 22:15:07.699272: Tweak plan optimisation started metric 374.95p, cost 387.98p
2026-08-16 22:15:08.035832: Tweak optimisation finished metric 374.95p, cost 387.98p, metric_keep 0kWh, cycle 18.73kWh, carbon 0kg, import 10.93kWh, changed 8 window(s)
2026-08-16 22:15:08.057031: Swap charge optimisation started metric 374.95p, cost 387.98p, min_improvement_swap 0.1p
2026-08-16 22:15:08.823527: Swap charge optimisation finished metric 374.95p, cost 387.98p
2026-08-16 22:15:08.943194: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 81%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 81%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 81%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 81%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 22:15:08.943516: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:15:08.943728: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:15:08.943889: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:15:08.976662: Previous plan best metric is 375.05 (cost 388.09) and new plan best metric is 374.95 (cost 387.98)
2026-08-16 22:15:08.976846: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:15:08.977040: Plan valid is now true after recompute was False
2026-08-16 22:15:09.003638: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 659.43p, metric_keep 216.56kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.55kWh, PV 0.0kWh
2026-08-16 22:15:09.121950: Battery has 11.58 hours left - now at 9.28kWh
2026-08-16 22:15:09.173615: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 686.5p, metric_keep 228.26kWh, min_soc 1.12kWh @ 08-17 09:05:00, load 28.35kWh, PV 0.0kWh
2026-08-16 22:15:09.248100: predict best10 end_record 08-17 23:30:00, final soc 1.46kWh, metric 436.85p, metric_keep 2.22kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.35kWh, PV 0.0kWh
2026-08-16 22:15:09.326613: predict best end_record 08-17 23:30:00, final soc 2.03kWh, metric 434.73p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.55kWh, PV 0.0kWh
2026-08-16 22:15:09.326707: Saving plan best values to HA entities
2026-08-16 22:15:09.476174: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:15:09.481476: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:15:09.486725: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.95kWh, house 0kWh, export 0.0kWh, metric 434.73p, metric10 436.85p
2026-08-16 22:15:09.565584: Marginal costs baseline metric (no standing charge): 388.092
2026-08-16 22:15:09.814064: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 22:15:09.873478: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1335, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:15:09.874072: - Your estimated bill for today is £3.24 and tomorrow is £1.35
2026-08-16 22:15:09.874116: - 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-16 22:15:09.874137: - The battery is currently at 58% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 22:15:09.874162: - For the next 48 hours there will be no solar generation.
2026-08-16 22:15:09.874191: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:15:09.874214: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 22:15:09.874230: 
2026-08-16 22:15:09.926841: Plan calculation took 6.51 seconds
2026-08-16 22:15:09.927206: Inverter 0: Type SK Sunsynk
2026-08-16 22:15:09.927254: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:15:09.927500: Reserve min: 7%, battery_min: 7%
2026-08-16 22:15:09.927592: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:15:09.927961: Inverter 0 SoC: 9.26kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 403W, current battery voltage 51.2V, grid power -55W, load power 456W, PV Power 0W
2026-08-16 22:15:09.928244: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:15:09.928362: Inverter 0 scheduled charge enable is False
2026-08-16 22:15:09.928406: Inverter 0 charge windows currently []
2026-08-16 22:15:09.928451: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:15:09.928586: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:15:09.928627: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:15:09.928677: Inverter 0 scheduled discharge enable is False
2026-08-16 22:15:09.928836: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:15:09.928897: Inverter 0 discharge windows currently []
2026-08-16 22:15:09.928935: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:15:09.928991: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:15:09.929021: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:15:09.989914: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:15:09.990067: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:15:09.990156: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:15:09.990367: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:15:09.990451: No export window planned
2026-08-16 22:15:09.990590: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:15:09.990626: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:15:09.990784: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:15:09.990984: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:15:09.991055: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:15:09.991112: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:15:09.991191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991414: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:15:09.991600: Inverter 0 count register writes 0
2026-08-16 22:15:10.013673: Total inverter register writes now 844
2026-08-16 22:15:10.045745: Info: Completed run status Demand
2026-08-16 22:15:10.052479: Info: record_status Demand
2026-08-16 22:15:10.058674: Saved current settings to /config/predbat_config.json
2026-08-16 22:15:10.059042: Compare, best tariff: current metric 318.25p
2026-08-16 22:15:13.026588: Info: HAHistory: Pruning history data started.
2026-08-16 22:15:13.029291: Info: HAHistory: Pruning history data completed.
2026-08-16 22:15:49.172365: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:15:49.172662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:15:49.172731: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:15:49.173045: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:15:49.173102: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:15:49.173127: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:15:49.173141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:18:03.409243: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:18:03.409513: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:18:03.409558: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:18:03.409695: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:18:03.409736: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:18:03.409757: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:18:03.409776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:20:00.634818: --------------- PredBat - update at 2026-08-16 22:20:00+01:00 with clock skew 0 minutes, minutes now 1340
2026-08-16 22:20:00.635667: Saved current settings to /config/predbat_config.json
2026-08-16 22:20:00.635847: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-16 22:20:00.635927: 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-16 22:20:00.636010: 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-16 22:20:00.656760: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:20:00.656908: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:20:00.657113: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:20:00.657635: 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-16 22:20:00.657779: Predbat mode is set to Control charge & discharge
2026-08-16 22:20:00.863382: Found 21602 load_today datapoints going back 27 days
2026-08-16 22:20:00.863805: Using load_power data to fill gaps in load_today data
2026-08-16 22:20:01.626589: Processing 721 30-minute periods for power integration
2026-08-16 22:20:01.805037: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:20:01.805192: Car charging hold False, threshold 6.0kWh
2026-08-16 22:20:01.805238: Current data so far today: load 10.6kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:20:01.820597: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:20:01.820690: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:20:01.821363: Standing charge is set to 46.63p
2026-08-16 22:20:01.903493: 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-16 22:20:01.903815: 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-16 22:20:01.904093: 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-16 22:20:01.904367: 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-16 22:20:01.904587: 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-16 22:20:01.904802: 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-16 22:20:01.905081: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905169: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905371: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905458: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905523: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905595: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905658: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905712: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905860: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:20:01.905939: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:20:01.910639: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:20:01.911034: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:20:01.946065: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:20:01.946174: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:20:01.947364: High export rate found rates in range 99p to -99p
2026-08-16 22:20:01.975246: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:20:01.975343: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:20:01.975398: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:20:01.988736: Battery level now 9.28kWh, -1hr ago 9.6kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -20.12p, rate_forward 6.87p
2026-08-16 22:20:01.989169: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 22:20:02.055212: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:20:02.055429: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:20:02.140617: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:20:02.168767: Today's load divergence 77.18%, in-day adjustment 78.64%, damping 0.95x, yesterday 82.97% today 78.32% blend 6.94%
2026-08-16 22:20:02.168890: Today's predicted so far 13.4kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 13.4kWh forecast extra.
2026-08-16 22:20:02.168926: Today's actual load so far 10.56kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 22:20:02.198407: Inverter 0: Type SK Sunsynk
2026-08-16 22:20:02.198513: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:20:02.198717: Reserve min: 7%, battery_min: 7%
2026-08-16 22:20:02.198784: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:20:02.199021: Inverter 0 SoC: 9.26kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 401W, current battery voltage 51.2V, grid power -55W, load power 455W, PV Power 0W
2026-08-16 22:20:02.199164: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:20:02.199238: Inverter 0 scheduled charge enable is False
2026-08-16 22:20:02.199268: Inverter 0 charge windows currently []
2026-08-16 22:20:02.199290: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:20:02.199378: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:20:02.199408: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:20:02.199438: Inverter 0 scheduled discharge enable is False
2026-08-16 22:20:02.199540: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:20:02.199571: Inverter 0 discharge windows currently []
2026-08-16 22:20:02.199589: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:20:02.199604: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:20:02.199618: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:20:02.254282: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:20:02.254378: Plan was last updated on 2026-08-16 22:15:00+01:00 and is now 5.0 minutes old
2026-08-16 22:20:02.254558: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:20:02.254592: Best export window [  ]
2026-08-16 22:20:02.255280: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:20:02.257863: Load divergence over 8.0 hours mean 590.71W, min 338.4W, max 1047.6W, std dev 237.51W, divergence 20.1%
2026-08-16 22:20:02.273243: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:20:02.273356: LoadML is_calculating False
2026-08-16 22:20:02.273414: Creating pool of 12 processes to match your CPU count
2026-08-16 22:20:02.380219: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 657.32p, metric_keep 214.33kWh, min_soc 1.12kWh @ 08-17 09:55:00, load 27.46kWh, PV 0.0kWh
2026-08-16 22:20:02.496883: Battery has 11.58 hours left - now at 9.26kWh
2026-08-16 22:20:02.539495: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 684.28p, metric_keep 225.78kWh, min_soc 1.12kWh @ 08-17 09:15:00, load 28.26kWh, PV 0.0kWh
2026-08-16 22:20:02.616817: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 439.83p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 22:20:02.688796: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 438.37p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.46kWh, PV 0.0kWh
2026-08-16 22:20:02.688894: Saving plan best values to HA entities
2026-08-16 22:20:02.870392: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:20:02.875841: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:20:02.881047: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.4kWh, house 0.0kWh, export 0.0kWh, metric 438.37p, metric10 439.83p
2026-08-16 22:20:02.961739: Marginal costs baseline metric (no standing charge): 391.7407
2026-08-16 22:20:03.219334: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 22:20:03.301692: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1340, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:20:03.302290: - Your estimated bill for today is £3.24 and tomorrow is £1.35
2026-08-16 22:20:03.302336: - 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-16 22:20:03.302355: - The battery is currently at 58% and is in eco mode for the next 1 and a quarter hours.
2026-08-16 22:20:03.302370: - For the next 48 hours there will be no solar generation.
2026-08-16 22:20:03.302385: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:20:03.302402: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-16 22:20:03.302416: 
2026-08-16 22:20:03.355569: Plan calculation took 1.10 seconds
2026-08-16 22:20:03.359604: No high rate period found
2026-08-16 22:20:03.406946: Import threshold used for optimisation was 8.0p
2026-08-16 22:20:03.452530: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:20:03.457471: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-16 22:20:03.457578: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:20:03.457683: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:20:03.457923: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:20:03.458004: No export window planned
2026-08-16 22:20:03.458112: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:20:03.458137: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:20:03.458249: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:20:03.458401: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:20:03.458451: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:20:03.458516: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:20:03.458593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458624: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458874: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:20:03.458951: Inverter 0 count register writes 0
2026-08-16 22:20:03.474301: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 22:20:03.479578: Total inverter register writes now 844
2026-08-16 22:20:03.510948: Info: Completed run status Demand
2026-08-16 22:20:03.517148: Info: record_status Demand
2026-08-16 22:20:03.527264: Saved current settings to /config/predbat_config.json
2026-08-16 22:20:03.527621: Compare, best tariff: current metric 318.25p
2026-08-16 22:20:33.628982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:20:33.629365: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:20:33.629467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:20:33.629761: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:20:33.629848: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:20:33.629915: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:20:33.629949: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:22:33.870672: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:22:33.870949: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:22:33.870992: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:22:33.871164: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:22:33.871226: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:22:33.871262: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:22:33.871295: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:24:34.091600: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:24:34.091899: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:24:34.091937: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:24:34.092105: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:24:34.092144: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:24:34.092165: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:24:34.092183: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:25:00.212290: --------------- PredBat - update at 2026-08-16 22:25:00+01:00 with clock skew 0 minutes, minutes now 1345
2026-08-16 22:25:00.213084: Saved current settings to /config/predbat_config.json
2026-08-16 22:25:00.213213: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-16 22:25:00.213293: 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-16 22:25:00.213381: 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-16 22:25:00.233309: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:25:00.233437: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:25:00.233606: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:25:00.234144: 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-16 22:25:00.234268: Predbat mode is set to Control charge & discharge
2026-08-16 22:25:00.429472: Found 21602 load_today datapoints going back 27 days
2026-08-16 22:25:00.429630: Using load_power data to fill gaps in load_today data
2026-08-16 22:25:01.295173: Processing 721 30-minute periods for power integration
2026-08-16 22:25:01.493340: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:25:01.493706: Car charging hold False, threshold 6.0kWh
2026-08-16 22:25:01.493765: Current data so far today: load 10.6kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:25:01.513818: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:25:01.513937: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:25:01.514766: Standing charge is set to 46.63p
2026-08-16 22:25:01.615822: 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-16 22:25:01.616087: 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-16 22:25:01.616265: 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-16 22:25:01.616448: 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-16 22:25:01.616622: 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-16 22:25:01.616808: 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-16 22:25:01.617093: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.617236: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.617494: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.617629: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.617767: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.617927: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.618061: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.618171: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.618400: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:25:01.618471: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:25:01.624175: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:25:01.624619: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:25:01.671942: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:25:01.672082: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:25:01.673610: High export rate found rates in range 99p to -99p
2026-08-16 22:25:01.708725: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:25:01.708903: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:25:01.709012: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:25:01.722542: Battery level now 9.26kWh, -1hr ago 9.6kWh, at midnight 12.21kWh, battery value change in the last hour -2.31p, change today -20.23p, rate_forward 6.87p
2026-08-16 22:25:01.723025: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 22:25:01.789005: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:25:01.789186: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:25:01.870984: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:25:01.896154: Today's load divergence 76.71%, in-day adjustment 78.21%, damping 0.95x, yesterday 82.97% today 77.88% blend 6.6%
2026-08-16 22:25:01.896235: Today's predicted so far 13.45kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 13.45kWh forecast extra.
2026-08-16 22:25:01.896261: Today's actual load so far 10.57kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 22:25:01.927111: Inverter 0: Type SK Sunsynk
2026-08-16 22:25:01.927227: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:25:01.927468: Reserve min: 7%, battery_min: 7%
2026-08-16 22:25:01.927575: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:25:01.927942: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 409W, current battery voltage 51.2V, grid power -53W, load power 460W, PV Power 0W
2026-08-16 22:25:01.928146: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:25:01.928261: Inverter 0 scheduled charge enable is False
2026-08-16 22:25:01.928307: Inverter 0 charge windows currently []
2026-08-16 22:25:01.928350: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:25:01.928492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:25:01.928538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:25:01.928585: Inverter 0 scheduled discharge enable is False
2026-08-16 22:25:01.928755: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:25:01.928817: Inverter 0 discharge windows currently []
2026-08-16 22:25:01.928851: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:25:01.928886: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:25:01.928911: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:25:01.981488: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:25:01.981588: Plan was last updated on 2026-08-16 22:15:00+01:00 and is now 10.0 minutes old
2026-08-16 22:25:01.981806: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:25:01.981844: Best export window [  ]
2026-08-16 22:25:01.982512: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:25:01.985014: Load divergence over 8.0 hours mean 587.68W, min 339.0W, max 1060.8W, std dev 235.58W, divergence 20.04%
2026-08-16 22:25:02.000423: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:25:02.000519: LoadML is_calculating False
2026-08-16 22:25:02.000590: Creating pool of 12 processes to match your CPU count
2026-08-16 22:25:02.107613: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 660.26p, metric_keep 216.54kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:25:02.233341: Battery has 11.42 hours left - now at 9.12kWh
2026-08-16 22:25:02.275329: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 687.14p, metric_keep 228.04kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 28.3kWh, PV 0.0kWh
2026-08-16 22:25:02.350682: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 444.05p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.3kWh, PV 0.0kWh
2026-08-16 22:25:02.426476: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 443.02p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:25:02.426563: Saving plan best values to HA entities
2026-08-16 22:25:02.594191: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:25:02.599301: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:25:02.604436: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.99kWh, house 0.0kWh, export 0.0kWh, metric 443.02p, metric10 444.05p
2026-08-16 22:25:02.692860: Marginal costs baseline metric (no standing charge): 396.3908
2026-08-16 22:25:02.955872: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 22:25:03.034136: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1345, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:25:03.034855: - Your estimated bill for today is £3.25 and tomorrow is £1.35
2026-08-16 22:25:03.034906: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:25:03.034930: - The battery is currently at 57% and is in eco mode for the next 1 hour.
2026-08-16 22:25:03.034949: - For the next 48 hours there will be no solar generation.
2026-08-16 22:25:03.034968: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:25:03.034986: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-16 22:25:03.035003: 
2026-08-16 22:25:03.093700: Plan calculation took 1.11 seconds
2026-08-16 22:25:03.097655: No high rate period found
2026-08-16 22:25:03.155597: Import threshold used for optimisation was 8.0p
2026-08-16 22:25:03.214060: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:25:03.220615: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 22:25:03.220758: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:25:03.220901: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:25:03.221255: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:25:03.221358: No export window planned
2026-08-16 22:25:03.221481: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:25:03.221545: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:25:03.221682: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:25:03.221930: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:25:03.221998: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:25:03.222065: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:25:03.222198: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222406: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222516: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:03.222899: Inverter 0 count register writes 0
2026-08-16 22:25:03.241617: 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-16 22:25:03.241855: Recompute is saving previous plan...
2026-08-16 22:25:03.242887: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:25:03.242941: Best export window [  ]
2026-08-16 22:25:03.243775: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:25:03.247121: Load divergence over 8.0 hours mean 587.68W, min 339.0W, max 1060.8W, std dev 235.58W, divergence 20.04%
2026-08-16 22:25:03.264127: Calculating data from yesterday for savings calculation
2026-08-16 22:25:03.278430: 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-16 22:25:03.326631: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 22:25:03.342441: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 232.7p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 22:25:03.360396: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 22:25:03.390983: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.41 (adjusted £-3.29) with import 23.68kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.45kWh
2026-08-16 22:25:03.471671: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.93p, metric_keep 639.19kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 22:25:03.471840: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 22:25:03.483254: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:25:03.483365: LoadML is_calculating False
2026-08-16 22:25:03.483478: Creating pool of 12 processes to match your CPU count
2026-08-16 22:25:03.569070: 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-16 22:25:03.571825: Optimise levels pass started at 2026-08-16 22:25:03
2026-08-16 22:25:03.571918: Optimise all windows, total charge 25 export 1
2026-08-16 22:25:03.946169: >> Region optimisation pass width 960 gives best_metric 508.22p, best_cost 528.97p, best_cycle 41.29kWh, best_import 28.56kWh
2026-08-16 22:25:04.077000: >> Region optimisation pass width 480 gives best_metric 508.22p, best_cost 528.97p, best_cycle 41.29kWh, best_import 28.56kWh
2026-08-16 22:25:04.387605: >> Region optimisation pass width 240 gives best_metric 508.22p, best_cost 528.97p, best_cycle 41.29kWh, best_import 28.56kWh
2026-08-16 22:25:05.133066: >> Region optimisation pass width 120 gives best_metric 507.72p, best_cost 522.46p, best_cycle 42.14kWh, best_import 27.74kWh
2026-08-16 22:25:05.133382: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:25:05.133508: Optimise levels pass ended at 2026-08-16 22:25:05, duration 1.6 seconds tried 79 combinations
2026-08-16 22:25:05.133629: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 507.72p, best_keep 0kWh, best_cycle 42.14kWh, best_carbon 0kg, best_import 27.74kWh
2026-08-16 22:25:05.152182: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 22:25:07.776940: Tweak plan optimisation started metric 374.74p, cost 387.87p
2026-08-16 22:25:08.131040: Tweak optimisation finished metric 374.74p, cost 387.87p, metric_keep 0kWh, cycle 18.58kWh, carbon 0kg, import 10.92kWh, changed 8 window(s)
2026-08-16 22:25:08.152939: Swap charge optimisation started metric 374.74p, cost 387.87p, min_improvement_swap 0.1p
2026-08-16 22:25:08.997542: Swap charge optimisation finished metric 374.74p, cost 387.87p
2026-08-16 22:25:09.111139: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 81%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 81%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 81%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 81%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 22:25:09.111533: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:25:09.111775: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:25:09.111993: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:25:09.144333: Previous plan best metric is 374.83 (cost 387.98) and new plan best metric is 374.74 (cost 387.87)
2026-08-16 22:25:09.144580: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:25:09.144764: Plan valid is now true after recompute was False
2026-08-16 22:25:09.170991: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 658.52p, metric_keep 215.95kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.28kWh, PV 0.0kWh
2026-08-16 22:25:09.288356: Battery has 11.42 hours left - now at 9.12kWh
2026-08-16 22:25:09.334100: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 685.31p, metric_keep 227.45kWh, min_soc 1.12kWh @ 08-17 09:10:00, load 28.07kWh, PV 0.0kWh
2026-08-16 22:25:09.413755: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 436.67p, metric_keep 2.1kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.07kWh, PV 0.0kWh
2026-08-16 22:25:09.484693: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 434.61p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.28kWh, PV 0.0kWh
2026-08-16 22:25:09.484795: Saving plan best values to HA entities
2026-08-16 22:25:09.649241: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:25:09.655379: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:25:09.661153: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.93kWh, house 0.0kWh, export 0.0kWh, metric 434.61p, metric10 436.67p
2026-08-16 22:25:09.746833: Marginal costs baseline metric (no standing charge): 387.9809
2026-08-16 22:25:09.993454: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 22:25:10.059823: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1345, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:25:10.060539: - Your estimated bill for today is £3.25 and tomorrow is £1.35
2026-08-16 22:25:10.060593: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:25:10.060619: - The battery is currently at 57% and is in eco mode for the next 1 hour.
2026-08-16 22:25:10.060664: - For the next 48 hours there will be no solar generation.
2026-08-16 22:25:10.060700: - You will reach a minimum of 13% battery in 25 hours.
2026-08-16 22:25:10.060741: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-16 22:25:10.060777: 
2026-08-16 22:25:10.117579: Plan calculation took 6.88 seconds
2026-08-16 22:25:10.117988: Inverter 0: Type SK Sunsynk
2026-08-16 22:25:10.118058: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:25:10.118341: Reserve min: 7%, battery_min: 7%
2026-08-16 22:25:10.118439: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:25:10.118819: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 412W, current battery voltage 51.2V, grid power -55W, load power 465W, PV Power 0W
2026-08-16 22:25:10.119129: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:25:10.119288: Inverter 0 scheduled charge enable is False
2026-08-16 22:25:10.119345: Inverter 0 charge windows currently []
2026-08-16 22:25:10.119400: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:25:10.119573: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:25:10.119655: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:25:10.119727: Inverter 0 scheduled discharge enable is False
2026-08-16 22:25:10.119947: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:25:10.120422: Inverter 0 discharge windows currently []
2026-08-16 22:25:10.120466: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:25:10.120490: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:25:10.120530: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:25:10.181757: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 22:25:10.181929: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:25:10.182035: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:25:10.182232: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:25:10.182316: No export window planned
2026-08-16 22:25:10.182424: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:25:10.182461: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:25:10.182599: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:25:10.182763: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:25:10.182833: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:25:10.182893: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:25:10.182985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:25:10.183380: Inverter 0 count register writes 0
2026-08-16 22:25:10.206839: Total inverter register writes now 844
2026-08-16 22:25:10.241480: Info: Completed run status Demand
2026-08-16 22:25:10.247710: Info: record_status Demand
2026-08-16 22:25:10.255337: Saved current settings to /config/predbat_config.json
2026-08-16 22:25:10.255796: Compare, best tariff: current metric 318.25p
2026-08-16 22:25:48.368058: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:25:48.368835: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:25:48.368887: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:25:48.369058: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:25:48.369277: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:25:48.369316: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:25:48.369336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:27:48.598135: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:27:48.598383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:27:48.598424: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:27:48.598569: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:27:48.598622: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:27:48.598643: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:27:48.598661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:29:48.840822: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:29:48.841090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:29:48.841130: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:29:48.841242: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:29:48.841300: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:29:48.841318: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:29:48.841332: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:30:00.939007: --------------- PredBat - update at 2026-08-16 22:30:00+01:00 with clock skew 0 minutes, minutes now 1350
2026-08-16 22:30:00.939835: Saved current settings to /config/predbat_config.json
2026-08-16 22:30:00.939985: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-16 22:30:00.940064: 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-16 22:30:00.940193: 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-16 22:30:00.961196: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:30:00.961316: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:30:00.961464: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:30:00.961935: 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-16 22:30:00.962076: Predbat mode is set to Control charge & discharge
2026-08-16 22:30:01.189613: Found 21602 load_today datapoints going back 27 days
2026-08-16 22:30:01.189802: Using load_power data to fill gaps in load_today data
2026-08-16 22:30:01.972681: Processing 721 30-minute periods for power integration
2026-08-16 22:30:02.137806: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:30:02.137947: Car charging hold False, threshold 6.0kWh
2026-08-16 22:30:02.137997: Current data so far today: load 10.72kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:30:02.154764: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:30:02.154878: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:30:02.155622: Standing charge is set to 46.63p
2026-08-16 22:30:02.232387: 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-16 22:30:02.232613: 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-16 22:30:02.232786: 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-16 22:30:02.232968: 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-16 22:30:02.233124: 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-16 22:30:02.233275: 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-16 22:30:02.233422: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233500: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:30:00, assumed price 8.0, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233643: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233720: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233810: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233878: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233937: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.233989: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.234125: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:30:02.234173: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:30:02.238883: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:30:02.239232: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:30:02.275451: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:30:02.275568: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:30:02.276692: High export rate found rates in range 99p to -99p
2026-08-16 22:30:02.304885: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:30:02.305046: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:30:02.305126: Car 0 charging plan is: [{'start': 1470, 'end': 1530, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 38.45, 'octopus': True}, {'start': 1560, 'end': 1740, 'kwh': 22.2, 'average': 33.75, 'cost': 749.25, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:30:02.318844: Battery level now 9.12kWh, -1hr ago 9.58kWh, at midnight 12.21kWh, battery value change in the last hour -3.13p, change today -21.22p, rate_forward 6.87p
2026-08-16 22:30:02.319190: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 22:30:02.382892: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:30:02.383040: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:30:02.464532: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:30:02.489977: Today's load divergence 77.0%, in-day adjustment 78.45%, damping 0.95x, yesterday 82.97% today 78.15% blend 6.25%
2026-08-16 22:30:02.490063: Today's predicted so far 13.59kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 13.59kWh forecast extra.
2026-08-16 22:30:02.490089: Today's actual load so far 10.74kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 22:30:02.521846: Inverter 0: Type SK Sunsynk
2026-08-16 22:30:02.521931: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:30:02.522090: Reserve min: 7%, battery_min: 7%
2026-08-16 22:30:02.522148: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:30:02.522366: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 439W, current battery voltage 51.2V, grid power -55W, load power 490W, PV Power 0W
2026-08-16 22:30:02.522505: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:30:02.522580: Inverter 0 scheduled charge enable is False
2026-08-16 22:30:02.522608: Inverter 0 charge windows currently []
2026-08-16 22:30:02.522630: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:30:02.522718: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:30:02.522764: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:30:02.522796: Inverter 0 scheduled discharge enable is False
2026-08-16 22:30:02.522903: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:30:02.522934: Inverter 0 discharge windows currently []
2026-08-16 22:30:02.522953: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:30:02.522967: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:30:02.522984: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:30:02.585662: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:30:02.585795: Plan was last updated on 2026-08-16 22:25:00+01:00 and is now 5.0 minutes old
2026-08-16 22:30:02.586013: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:30:02.586057: Best export window [  ]
2026-08-16 22:30:02.586924: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:30:02.590189: Load divergence over 8.0 hours mean 585.36W, min 339.0W, max 1054.2W, std dev 229.57W, divergence 19.61%
2026-08-16 22:30:02.609401: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:30:02.609534: LoadML is_calculating False
2026-08-16 22:30:02.609601: Creating pool of 12 processes to match your CPU count
2026-08-16 22:30:02.744769: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 658.58p, metric_keep 215.47kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:30:02.879467: Battery has 11.33 hours left - now at 9.12kWh
2026-08-16 22:30:02.927488: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 685.43p, metric_keep 226.88kWh, min_soc 1.12kWh @ 08-17 09:15:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:30:03.016837: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 440.13p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:30:03.110867: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 438.69p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:30:03.110964: Saving plan best values to HA entities
2026-08-16 22:30:03.334679: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:30:03.343358: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:30:03.352737: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.44kWh, house 0.0kWh, export 0.0kWh, metric 438.69p, metric10 440.13p
2026-08-16 22:30:03.452681: Marginal costs baseline metric (no standing charge): 392.0575
2026-08-16 22:30:03.761336: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 22:30:03.860769: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1350, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:30:03.861683: - Your estimated bill for today is £3.24 and tomorrow is £1.35
2026-08-16 22:30:03.861774: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:30:03.861813: - The battery is currently at 57% and is in eco mode for the next 1 hour.
2026-08-16 22:30:03.861857: - For the next 48 hours there will be no solar generation.
2026-08-16 22:30:03.861888: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:30:03.861922: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-16 22:30:03.861955: 
2026-08-16 22:30:03.921065: Plan calculation took 1.34 seconds
2026-08-16 22:30:03.928329: No high rate period found
2026-08-16 22:30:03.990394: Import threshold used for optimisation was 8.0p
2026-08-16 22:30:04.057068: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:30:04.064315: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 22:30:04.064521: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:30:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:30:04.064665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:30:04.065042: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:30:04.065158: No export window planned
2026-08-16 22:30:04.065281: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:30:04.065319: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:30:04.065473: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:30:04.065694: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:30:04.065807: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:30:04.065935: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:30:04.066045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066214: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:30:04.066504: Inverter 0 count register writes 0
2026-08-16 22:30:04.087256: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 22:30:04.093433: Total inverter register writes now 844
2026-08-16 22:30:04.138617: Info: Completed run status Demand
2026-08-16 22:30:04.146610: Info: record_status Demand
2026-08-16 22:30:04.154809: Saved current settings to /config/predbat_config.json
2026-08-16 22:30:04.155137: Compare, best tariff: current metric 318.25p
2026-08-16 22:30:34.264434: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:30:34.264690: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:30:34.264732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:30:34.264930: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:30:34.265003: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:30:34.265031: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:30:34.265064: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:32:48.509176: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:32:48.509426: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:32:48.509461: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:32:48.509613: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:32:48.509653: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:32:48.509673: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:32:48.509691: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:34:48.736905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:34:48.737212: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:34:48.737247: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:34:48.737413: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:34:48.737452: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:34:48.737474: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:34:48.737492: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:35:00.839540: --------------- PredBat - update at 2026-08-16 22:35:00+01:00 with clock skew 0 minutes, minutes now 1355
2026-08-16 22:35:00.840370: Saved current settings to /config/predbat_config.json
2026-08-16 22:35:00.840507: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-16 22:35:00.840585: 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-16 22:35:00.840672: 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-16 22:35:00.863562: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:35:00.863718: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:35:00.863905: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:35:00.864490: 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-16 22:35:00.864613: Predbat mode is set to Control charge & discharge
2026-08-16 22:35:01.056151: Found 21602 load_today datapoints going back 27 days
2026-08-16 22:35:01.056305: Using load_power data to fill gaps in load_today data
2026-08-16 22:35:01.804455: Processing 721 30-minute periods for power integration
2026-08-16 22:35:01.997818: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:35:01.998002: Car charging hold False, threshold 6.0kWh
2026-08-16 22:35:01.998053: Current data so far today: load 10.75kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:35:02.017886: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:35:02.018007: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:35:02.018858: Standing charge is set to 46.63p
2026-08-16 22:35:02.108860: 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-16 22:35:02.109256: 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-16 22:35:02.109539: 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-16 22:35:02.109738: 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-16 22:35:02.109954: 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-16 22:35:02.110131: 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-16 22:35:02.110310: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110406: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110490: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110576: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110652: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110742: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110851: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.110935: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.111100: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:35:02.111160: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:35:02.116876: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:35:02.117289: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:35:02.159119: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:35:02.159305: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:35:02.161276: High export rate found rates in range 99p to -99p
2026-08-16 22:35:02.203123: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:35:02.203285: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:35:02.203349: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:35:02.220214: Battery level now 9.12kWh, -1hr ago 9.58kWh, at midnight 12.21kWh, battery value change in the last hour -3.13p, change today -21.22p, rate_forward 6.87p
2026-08-16 22:35:02.220699: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 22:35:02.311258: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:35:02.311423: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:35:02.412764: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:35:02.445102: Today's load divergence 76.65%, in-day adjustment 78.13%, damping 0.95x, yesterday 82.97% today 77.82% blend 5.9%
2026-08-16 22:35:02.445213: Today's predicted so far 13.72kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 13.72kWh forecast extra.
2026-08-16 22:35:02.445246: Today's actual load so far 10.83kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 22:35:02.480617: 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:30:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 22:35:02.481265: Sensor changes require a replan, will recompute the plan
2026-08-16 22:35:02.481475: Inverter 0: Type SK Sunsynk
2026-08-16 22:35:02.481520: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:35:02.481720: Reserve min: 7%, battery_min: 7%
2026-08-16 22:35:02.481839: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:35:02.482131: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 424W, current battery voltage 51.2V, grid power -55W, load power 478W, PV Power 0W
2026-08-16 22:35:02.482297: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:35:02.482386: Inverter 0 scheduled charge enable is False
2026-08-16 22:35:02.482421: Inverter 0 charge windows currently []
2026-08-16 22:35:02.482448: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:35:02.482554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:35:02.482583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:35:02.482620: Inverter 0 scheduled discharge enable is False
2026-08-16 22:35:02.482751: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:35:02.482788: Inverter 0 discharge windows currently []
2026-08-16 22:35:02.482826: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:35:02.482847: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:35:02.482864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:35:02.551869: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:35:02.551980: Will recompute the plan as it is invalid
2026-08-16 22:35:02.552102: Recompute is saving previous plan...
2026-08-16 22:35:02.553379: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:35:02.553456: Best export window [  ]
2026-08-16 22:35:02.554345: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:35:02.558021: Load divergence over 8.0 hours mean 582.16W, min 335.4W, max 1131.0W, std dev 242.8W, divergence 20.85%
2026-08-16 22:35:02.577617: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:35:02.577760: LoadML is_calculating False
2026-08-16 22:35:02.577847: Creating pool of 12 processes to match your CPU count
2026-08-16 22:35:02.684783: 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-16 22:35:02.685935: Optimise levels pass started at 2026-08-16 22:35:02
2026-08-16 22:35:02.686039: Optimise all windows, total charge 25 export 1
2026-08-16 22:35:03.417108: >> Region optimisation pass width 960 gives best_metric 508.05p, best_cost 526.15p, best_cycle 40.9kWh, best_import 28.2kWh
2026-08-16 22:35:03.591685: >> Region optimisation pass width 480 gives best_metric 508.05p, best_cost 526.15p, best_cycle 40.9kWh, best_import 28.2kWh
2026-08-16 22:35:03.908186: >> Region optimisation pass width 240 gives best_metric 508.05p, best_cost 526.15p, best_cycle 40.9kWh, best_import 28.2kWh
2026-08-16 22:35:04.569741: >> Region optimisation pass width 120 gives best_metric 507.73p, best_cost 521.97p, best_cycle 41.44kWh, best_import 27.68kWh
2026-08-16 22:35:04.570216: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:35:04.570288: Optimise levels pass ended at 2026-08-16 22:35:04, duration 1.9 seconds tried 82 combinations
2026-08-16 22:35:04.570342: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 507.73p, best_keep 0kWh, best_cycle 41.44kWh, best_carbon 0kg, best_import 27.68kWh
2026-08-16 22:35:04.586370: Starting detailed optimisation end_record 08-17 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, 0, 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-16 22:35:06.616762: Tweak plan optimisation started metric 376.24p, cost 389.08p
2026-08-16 22:35:06.825971: Tweak optimisation finished metric 376.24p, cost 389.08p, metric_keep 0.0kWh, cycle 22.38kWh, carbon 0kg, import 11.07kWh, changed 8 window(s)
2026-08-16 22:35:06.842968: Swap charge optimisation started metric 376.24p, cost 389.08p, min_improvement_swap 0.1p
2026-08-16 22:35:07.553096: Swap charge optimisation finished metric 376.24p, cost 389.08p
2026-08-16 22:35:07.631219: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 22:35:07.631536: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:35:07.631692: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:35:07.631822: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:35:07.669405: Previous plan best metric is 374.27 (cost 387.54) and new plan best metric is 376.24 (cost 389.08)
2026-08-16 22:35:07.669620: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:35:07.669856: Plan valid is now true after recompute was False
2026-08-16 22:35:07.700484: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 655.97p, metric_keep 213.57kWh, min_soc 1.12kWh @ 08-17 09:55:00, load 27.35kWh, PV 0.0kWh
2026-08-16 22:35:07.843846: Battery has 11.33 hours left - now at 9.12kWh
2026-08-16 22:35:07.891612: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 682.63p, metric_keep 224.79kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 28.14kWh, PV 0.0kWh
2026-08-16 22:35:07.978209: predict best10 end_record 08-17 23:30:00, final soc 1.49kWh, metric 435.99p, metric_keep 2.06kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.14kWh, PV 0.0kWh
2026-08-16 22:35:08.062166: predict best end_record 08-17 23:30:00, final soc 2.06kWh, metric 434.18p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.35kWh, PV 0.0kWh
2026-08-16 22:35:08.062267: Saving plan best values to HA entities
2026-08-16 22:35:08.249612: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:35:08.257285: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:35:08.264375: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.88kWh, house 0.0kWh, export 0.0kWh, metric 434.18p, metric10 435.99p
2026-08-16 22:35:08.352240: Marginal costs baseline metric (no standing charge): 387.5413
2026-08-16 22:35:08.659670: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 22:35:08.741200: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1355, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:35:08.741872: - Your estimated bill for today is £3.24 and tomorrow is £1.35
2026-08-16 22:35:08.741923: - Import rates are very expensive (33.8p) for the next 55 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:35:08.741946: - The battery is currently at 57% and is in eco mode for the next 55 minutes.
2026-08-16 22:35:08.741964: - For the next 48 hours there will be no solar generation.
2026-08-16 22:35:08.741985: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:35:08.742003: - Your next charge slot will be in 55 minutes where import rates will be cheap (8.0p).
2026-08-16 22:35:08.742024: 
2026-08-16 22:35:08.801890: Plan calculation took 6.25 seconds
2026-08-16 22:35:08.806723: Saved plan to storage
2026-08-16 22:35:08.810870: No high rate period found
2026-08-16 22:35:08.867668: Import threshold used for optimisation was 8.0p
2026-08-16 22:35:08.923009: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:35:08.930466: Inverter 0: Type SK Sunsynk
2026-08-16 22:35:08.930580: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:35:08.930905: Reserve min: 7%, battery_min: 7%
2026-08-16 22:35:08.931030: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:35:08.931465: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 418W, current battery voltage 51.2V, grid power -52W, load power 469W, PV Power 0W
2026-08-16 22:35:08.931761: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:35:08.931928: Inverter 0 scheduled charge enable is False
2026-08-16 22:35:08.931989: Inverter 0 charge windows currently []
2026-08-16 22:35:08.932045: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:35:08.932223: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:35:08.932272: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:35:08.932321: Inverter 0 scheduled discharge enable is False
2026-08-16 22:35:08.932507: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:35:08.932552: Inverter 0 discharge windows currently []
2026-08-16 22:35:08.932578: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:35:08.932622: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:35:08.932658: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:35:08.999729: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 22:35:08.999907: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:35:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:35:08.999986: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:35:09.000183: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:35:09.000267: No export window planned
2026-08-16 22:35:09.000387: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:35:09.000425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:35:09.000560: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:35:09.000723: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:35:09.000778: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:35:09.000860: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:35:09.001013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:35:09.001532: Inverter 0 count register writes 0
2026-08-16 22:35:09.025386: Total inverter register writes now 844
2026-08-16 22:35:09.061178: Info: Completed run status Demand
2026-08-16 22:35:09.068004: Info: record_status Demand
2026-08-16 22:35:09.075913: Saved current settings to /config/predbat_config.json
2026-08-16 22:35:09.076260: Compare, best tariff: current metric 318.25p
2026-08-16 22:35:49.200069: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:35:49.200413: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:35:49.200470: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:35:49.200664: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:35:49.200712: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:35:49.200738: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:35:49.200782: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:38:03.465489: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:38:03.465758: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:38:03.465794: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:38:03.465958: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:38:03.466002: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:38:03.466024: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:38:03.466042: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:40:00.699659: --------------- PredBat - update at 2026-08-16 22:40:00+01:00 with clock skew 0 minutes, minutes now 1360
2026-08-16 22:40:00.700507: Saved current settings to /config/predbat_config.json
2026-08-16 22:40:00.700656: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-16 22:40:00.700761: 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-16 22:40:00.700919: 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-16 22:40:00.722194: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:40:00.722325: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:40:00.722504: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:40:00.723060: 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-16 22:40:00.723181: Predbat mode is set to Control charge & discharge
2026-08-16 22:40:00.930385: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:40:00.930551: Using load_power data to fill gaps in load_today data
2026-08-16 22:40:01.732175: Processing 721 30-minute periods for power integration
2026-08-16 22:40:01.920573: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:40:01.920702: Car charging hold False, threshold 6.0kWh
2026-08-16 22:40:01.920747: Current data so far today: load 10.85kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:40:01.939434: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:40:01.939528: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:40:01.940342: Standing charge is set to 46.63p
2026-08-16 22:40:02.028563: 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-16 22:40:02.028828: 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-16 22:40:02.029241: 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-16 22:40:02.029480: 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-16 22:40:02.029721: 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-16 22:40:02.029922: 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-16 22:40:02.030123: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030262: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030350: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030433: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030506: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030591: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030662: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030737: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030922: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:40:02.030982: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:40:02.036589: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:40:02.037031: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:40:02.080356: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:40:02.080476: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:40:02.081915: High export rate found rates in range 99p to -99p
2026-08-16 22:40:02.111240: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:40:02.111322: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:40:02.111369: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:40:02.124828: Battery level now 9.12kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -21.22p, rate_forward 6.87p
2026-08-16 22:40:02.125343: 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-16 22:40:02.186166: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:40:02.186328: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:40:02.283874: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:40:02.314820: Today's load divergence 76.81%, in-day adjustment 78.25%, damping 0.95x, yesterday 82.97% today 77.97% blend 5.56%
2026-08-16 22:40:02.314960: Today's predicted so far 13.75kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 13.75kWh forecast extra.
2026-08-16 22:40:02.315008: Today's actual load so far 10.88kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 22:40:02.344840: Inverter 0: Type SK Sunsynk
2026-08-16 22:40:02.344994: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:40:02.345165: Reserve min: 7%, battery_min: 7%
2026-08-16 22:40:02.345224: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:40:02.345441: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -54W, load power 438W, PV Power 0W
2026-08-16 22:40:02.345572: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:40:02.345645: Inverter 0 scheduled charge enable is False
2026-08-16 22:40:02.345674: Inverter 0 charge windows currently []
2026-08-16 22:40:02.345696: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:40:02.345785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:40:02.345814: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:40:02.345843: Inverter 0 scheduled discharge enable is False
2026-08-16 22:40:02.345967: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:40:02.345999: Inverter 0 discharge windows currently []
2026-08-16 22:40:02.346018: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:40:02.346033: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:40:02.346050: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:40:02.409367: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:40:02.409464: Plan was last updated on 2026-08-16 22:35:00+01:00 and is now 5.0 minutes old
2026-08-16 22:40:02.409644: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:40:02.409696: Best export window [  ]
2026-08-16 22:40:02.410341: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:40:02.412866: Load divergence over 8.0 hours mean 573.05W, min 336.0W, max 1105.2W, std dev 238.98W, divergence 20.85%
2026-08-16 22:40:02.428237: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:40:02.428347: LoadML is_calculating False
2026-08-16 22:40:02.428403: Creating pool of 12 processes to match your CPU count
2026-08-16 22:40:02.536547: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 654.48p, metric_keep 211.42kWh, min_soc 1.12kWh @ 08-17 10:05:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:40:02.658246: Battery has 11.42 hours left - now at 9.12kWh
2026-08-16 22:40:02.700727: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 681.12p, metric_keep 222.33kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:40:02.772184: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 438.92p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:40:02.842729: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 437.65p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 22:40:02.842814: Saving plan best values to HA entities
2026-08-16 22:40:03.006469: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:40:03.012084: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:40:03.016784: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.31kWh, house 0.0kWh, export 0.0kWh, metric 437.65p, metric10 438.92p
2026-08-16 22:40:03.088046: Marginal costs baseline metric (no standing charge): 391.0185
2026-08-16 22:40:03.321332: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 22:40:03.389129: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1360, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:40:03.389666: - Your estimated bill for today is £3.24 and tomorrow is £1.34
2026-08-16 22:40:03.389705: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:40:03.389724: - The battery is currently at 57% and is in eco mode for the next 50 minutes.
2026-08-16 22:40:03.389739: - For the next 48 hours there will be no solar generation.
2026-08-16 22:40:03.389753: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:40:03.389768: - Your next charge slot will be in 50 minutes where import rates will be cheap (8.0p).
2026-08-16 22:40:03.389782: 
2026-08-16 22:40:03.448527: Plan calculation took 1.04 seconds
2026-08-16 22:40:03.451689: No high rate period found
2026-08-16 22:40:03.512170: Import threshold used for optimisation was 8.0p
2026-08-16 22:40:03.559373: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:40:03.565104: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 22:40:03.565264: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:40:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:40:03.565407: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:40:03.565642: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:40:03.565718: No export window planned
2026-08-16 22:40:03.565813: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:40:03.565843: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:40:03.565974: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:40:03.566133: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:40:03.566187: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:40:03.566242: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:40:03.566318: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566433: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:40:03.566660: Inverter 0 count register writes 0
2026-08-16 22:40:03.581445: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 22:40:03.586175: Total inverter register writes now 844
2026-08-16 22:40:03.616189: Info: Completed run status Demand
2026-08-16 22:40:03.621988: Info: record_status Demand
2026-08-16 22:40:03.628164: Saved current settings to /config/predbat_config.json
2026-08-16 22:40:03.628442: Compare, best tariff: current metric 318.25p
2026-08-16 22:40:33.728240: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:40:33.728497: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:40:33.728543: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:40:33.728751: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:40:33.728822: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:40:33.728844: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:40:33.728877: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:42:33.953381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:42:33.953644: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:42:33.953687: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:42:33.953851: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:42:33.953939: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:42:33.953960: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:42:33.953978: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:44:04.419876: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 22:44:05.498733: Processing 1345 30-minute periods for power integration
2026-08-16 22:44:05.601155: ML Component: Car charging hold False, car energy reported load False
2026-08-16 22:44:05.704380: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:44:05.805742: ML Temperature data points: 49041
2026-08-16 22:44:06.084923: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 22:44:06.126296: ML Component: Data fetch completed, load data age 58.0 days, 16808 data points
2026-08-16 22:44:06.126424: ML Component: No training needed, model age is 1.6 hours
2026-08-16 22:44:06.126491: ML Component: Generating predictions load data age 58.0 days, 16808 data points
2026-08-16 22:44:06.277117: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0365 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-16 22:44:11.113642: ML Component: Generated 576 predictions (total 25.82 kWh over 48h)
2026-08-16 22:44:11.161504: ML Component: Prediction cycle completed
2026-08-16 22:44:11.276727: ML Component: Saved 16808 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-16 22:44:34.318189: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:44:34.318436: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:44:34.318471: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:44:34.318623: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:44:34.318662: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:44:34.318684: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:44:34.318702: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:45:00.434825: --------------- PredBat - update at 2026-08-16 22:45:00+01:00 with clock skew 0 minutes, minutes now 1365
2026-08-16 22:45:00.435613: Saved current settings to /config/predbat_config.json
2026-08-16 22:45:00.435735: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-16 22:45:00.435811: 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-16 22:45:00.435912: 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-16 22:45:00.455990: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:45:00.456154: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:45:00.456324: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:45:00.457030: 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-16 22:45:00.457203: Predbat mode is set to Control charge & discharge
2026-08-16 22:45:00.662769: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:45:00.663037: Using load_power data to fill gaps in load_today data
2026-08-16 22:45:01.516975: Processing 721 30-minute periods for power integration
2026-08-16 22:45:01.721199: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:45:01.721348: Car charging hold False, threshold 6.0kWh
2026-08-16 22:45:01.721398: Current data so far today: load 10.9kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:45:01.740244: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:45:01.740367: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:45:01.741361: Standing charge is set to 46.63p
2026-08-16 22:45:01.832060: 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-16 22:45:01.832366: 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-16 22:45:01.832712: 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-16 22:45:01.833072: 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-16 22:45:01.833372: 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-16 22:45:01.833656: 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-16 22:45:01.833943: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834083: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834224: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834364: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834535: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834747: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.834902: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.835035: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.835304: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:45:01.835381: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:45:01.841256: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:45:01.841657: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:45:01.886952: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:45:01.887083: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:45:01.888452: High export rate found rates in range 99p to -99p
2026-08-16 22:45:01.921619: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:45:01.921744: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:45:01.921811: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:45:01.936164: Battery level now 9.12kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -21.22p, rate_forward 6.87p
2026-08-16 22:45:01.936535: 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-16 22:45:02.006509: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:45:02.006668: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:45:02.095300: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:45:02.121530: Today's load divergence 76.09%, in-day adjustment 77.58%, damping 0.95x, yesterday 82.97% today 77.29% blend 5.21%
2026-08-16 22:45:02.121608: Today's predicted so far 13.79kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 13.79kWh forecast extra.
2026-08-16 22:45:02.121635: Today's actual load so far 10.85kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 22:45:02.152022: Inverter 0: Type SK Sunsynk
2026-08-16 22:45:02.152113: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:45:02.152320: Reserve min: 7%, battery_min: 7%
2026-08-16 22:45:02.152422: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:45:02.152693: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -54W, load power 430W, PV Power 0W
2026-08-16 22:45:02.152855: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:45:02.152989: Inverter 0 scheduled charge enable is False
2026-08-16 22:45:02.153024: Inverter 0 charge windows currently []
2026-08-16 22:45:02.153051: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:45:02.153216: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:45:02.153259: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:45:02.153298: Inverter 0 scheduled discharge enable is False
2026-08-16 22:45:02.153426: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:45:02.153463: Inverter 0 discharge windows currently []
2026-08-16 22:45:02.153486: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:45:02.153504: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:45:02.153522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:45:02.211320: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:45:02.211423: Plan was last updated on 2026-08-16 22:35:00+01:00 and is now 10.0 minutes old
2026-08-16 22:45:02.211612: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:45:02.211677: Best export window [  ]
2026-08-16 22:45:02.212354: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:45:02.214946: Load divergence over 8.0 hours mean 563.81W, min 290.4W, max 1153.2W, std dev 237.71W, divergence 21.08%
2026-08-16 22:45:02.230729: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:45:02.230857: LoadML is_calculating False
2026-08-16 22:45:02.230933: Creating pool of 12 processes to match your CPU count
2026-08-16 22:45:02.348691: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 657.84p, metric_keep 213.81kWh, min_soc 1.12kWh @ 08-17 10:00:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:45:02.480581: Battery has 11.25 hours left - now at 8.96kWh
2026-08-16 22:45:02.529859: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 684.35p, metric_keep 224.64kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 28.37kWh, PV 0.0kWh
2026-08-16 22:45:02.605999: predict best10 end_record 08-17 23:40:00, final soc 2.11kWh, metric 443.2p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.37kWh, PV 0.0kWh
2026-08-16 22:45:02.689232: predict best end_record 08-17 23:40:00, final soc 2.81kWh, metric 442.39p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.58kWh, PV 0.0kWh
2026-08-16 22:45:02.689322: Saving plan best values to HA entities
2026-08-16 22:45:02.892496: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:45:02.899127: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:45:02.904827: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.91kWh, house 0kWh, export 0.0kWh, metric 442.39p, metric10 443.2p
2026-08-16 22:45:02.987242: Marginal costs baseline metric (no standing charge): 395.7543
2026-08-16 22:45:03.225737: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 22:45:03.301498: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1365, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:45:03.302189: - Your estimated bill for today is £3.24 and tomorrow is £1.34
2026-08-16 22:45:03.302237: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:45:03.302279: - The battery is currently at 56% and is in eco mode for the next 45 minutes.
2026-08-16 22:45:03.302300: - For the next 48 hours there will be no solar generation.
2026-08-16 22:45:03.302318: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:45:03.302335: - Your next charge slot will be in 45 minutes where import rates will be cheap (8.0p).
2026-08-16 22:45:03.302361: 
2026-08-16 22:45:03.357524: Plan calculation took 1.15 seconds
2026-08-16 22:45:03.361517: No high rate period found
2026-08-16 22:45:03.417655: Import threshold used for optimisation was 8.0p
2026-08-16 22:45:03.479483: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:45:03.496713: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 22:45:03.496881: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:45:03.497035: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:45:03.497310: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:45:03.497402: No export window planned
2026-08-16 22:45:03.497520: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:45:03.497557: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:45:03.497694: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:45:03.497916: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:45:03.497986: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:45:03.498059: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:45:03.498151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498207: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498245: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:03.498664: Inverter 0 count register writes 0
2026-08-16 22:45:03.519275: 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-16 22:45:03.519518: Recompute is saving previous plan...
2026-08-16 22:45:03.520584: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:45:03.520660: Best export window [  ]
2026-08-16 22:45:03.521622: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:45:03.526285: Load divergence over 8.0 hours mean 563.81W, min 290.4W, max 1153.2W, std dev 237.71W, divergence 21.08%
2026-08-16 22:45:03.545653: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:45:03.545941: LoadML is_calculating False
2026-08-16 22:45:03.546034: Creating pool of 12 processes to match your CPU count
2026-08-16 22:45:03.640051: 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-16 22:45:03.641279: Optimise levels pass started at 2026-08-16 22:45:03
2026-08-16 22:45:03.641370: Optimise all windows, total charge 25 export 1
2026-08-16 22:45:03.995401: >> Region optimisation pass width 960 gives best_metric 509.77p, best_cost 528.2p, best_cycle 41.29kWh, best_import 28.46kWh
2026-08-16 22:45:04.127438: >> Region optimisation pass width 480 gives best_metric 509.77p, best_cost 528.2p, best_cycle 41.29kWh, best_import 28.46kWh
2026-08-16 22:45:04.403985: >> Region optimisation pass width 240 gives best_metric 509.77p, best_cost 528.2p, best_cycle 41.29kWh, best_import 28.46kWh
2026-08-16 22:45:05.088240: >> Region optimisation pass width 120 gives best_metric 509.45p, best_cost 524.08p, best_cycle 41.83kWh, best_import 27.95kWh
2026-08-16 22:45:05.088495: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:45:05.088570: Optimise levels pass ended at 2026-08-16 22:45:05, duration 1.4 seconds tried 79 combinations
2026-08-16 22:45:05.088640: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 509.45p, best_keep 0kWh, best_cycle 41.83kWh, best_carbon 0kg, best_import 27.95kWh
2026-08-16 22:45:05.109420: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 22:45:07.759989: Tweak plan optimisation started metric 374.02p, cost 387.08p
2026-08-16 22:45:08.115998: Tweak optimisation finished metric 374.02p, cost 387.08p, metric_keep 0kWh, cycle 18.24kWh, carbon 0kg, import 10.82kWh, changed 8 window(s)
2026-08-16 22:45:08.138643: Swap charge optimisation started metric 374.02p, cost 387.08p, min_improvement_swap 0.1p
2026-08-16 22:45:08.961141: Swap charge optimisation finished metric 374.02p, cost 387.08p
2026-08-16 22:45:09.072383: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 81%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 81%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 81%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 81%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 22:45:09.072706: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:45:09.072964: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:45:09.073128: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:45:09.105568: Previous plan best metric is 374.21 (cost 387.29) and new plan best metric is 374.02 (cost 387.08)
2026-08-16 22:45:09.105745: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:45:09.105958: Plan valid is now true after recompute was False
2026-08-16 22:45:09.133062: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 656.04p, metric_keep 213.22kWh, min_soc 1.12kWh @ 08-17 10:00:00, load 27.35kWh, PV 0.0kWh
2026-08-16 22:45:09.257783: Battery has 11.25 hours left - now at 8.96kWh
2026-08-16 22:45:09.306584: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 682.47p, metric_keep 224.06kWh, min_soc 1.12kWh @ 08-17 09:20:00, load 28.14kWh, PV 0.0kWh
2026-08-16 22:45:09.382722: predict best10 end_record 08-17 23:30:00, final soc 1.46kWh, metric 435.77p, metric_keep 2.22kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.14kWh, PV 0.0kWh
2026-08-16 22:45:09.462841: predict best end_record 08-17 23:30:00, final soc 2.03kWh, metric 433.93p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.35kWh, PV 0.0kWh
2026-08-16 22:45:09.463101: Saving plan best values to HA entities
2026-08-16 22:45:09.621672: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:45:09.626960: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:45:09.632212: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.85kWh, house 0kWh, export 0.0kWh, metric 433.93p, metric10 435.77p
2026-08-16 22:45:09.714372: Marginal costs baseline metric (no standing charge): 387.2948
2026-08-16 22:45:09.960943: Marginal energy costs matrix computed: min=5.15 max=30.18
2026-08-16 22:45:10.033776: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1365, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:45:10.034358: - Your estimated bill for today is £3.24 and tomorrow is £1.34
2026-08-16 22:45:10.034410: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:45:10.034431: - The battery is currently at 56% and is in eco mode for the next 45 minutes.
2026-08-16 22:45:10.034446: - For the next 48 hours there will be no solar generation.
2026-08-16 22:45:10.034460: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:45:10.034474: - Your next charge slot will be in 45 minutes where import rates will be cheap (8.0p).
2026-08-16 22:45:10.034490: 
2026-08-16 22:45:10.092504: Plan calculation took 6.57 seconds
2026-08-16 22:45:10.093070: Inverter 0: Type SK Sunsynk
2026-08-16 22:45:10.093138: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:45:10.093446: Reserve min: 7%, battery_min: 7%
2026-08-16 22:45:10.093599: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:45:10.094081: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -54W, load power 430W, PV Power 0W
2026-08-16 22:45:10.094468: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:45:10.094652: Inverter 0 scheduled charge enable is False
2026-08-16 22:45:10.094697: Inverter 0 charge windows currently []
2026-08-16 22:45:10.094725: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:45:10.094929: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:45:10.094980: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:45:10.095035: Inverter 0 scheduled discharge enable is False
2026-08-16 22:45:10.095248: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:45:10.095356: Inverter 0 discharge windows currently []
2026-08-16 22:45:10.095395: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:45:10.095413: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:45:10.095428: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:45:10.165565: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 22:45:10.165707: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:45:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:45:10.165777: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:45:10.165969: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:45:10.166048: No export window planned
2026-08-16 22:45:10.166141: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:45:10.166171: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:45:10.166289: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:45:10.166430: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:45:10.166477: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:45:10.166527: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:45:10.166609: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:45:10.166968: Inverter 0 count register writes 0
2026-08-16 22:45:10.193223: Total inverter register writes now 844
2026-08-16 22:45:10.227834: Info: Completed run status Demand
2026-08-16 22:45:10.234988: Info: record_status Demand
2026-08-16 22:45:10.242156: Saved current settings to /config/predbat_config.json
2026-08-16 22:45:10.242472: Compare, best tariff: current metric 318.25p
2026-08-16 22:45:48.358024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:45:48.358269: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:45:48.358312: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:45:48.358449: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:45:48.358489: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:45:48.358509: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:45:48.358527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:47:48.613544: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:47:48.613794: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:47:48.613830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:47:48.614012: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:47:48.614056: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:47:48.614077: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:47:48.614095: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:49:48.891219: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:49:48.891432: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:49:48.891461: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:49:48.891612: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:49:48.891687: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:49:48.891705: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:49:48.891719: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:50:00.981539: --------------- PredBat - update at 2026-08-16 22:50:00+01:00 with clock skew 0 minutes, minutes now 1370
2026-08-16 22:50:00.982352: Saved current settings to /config/predbat_config.json
2026-08-16 22:50:00.982503: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-16 22:50:00.982608: 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-16 22:50:00.982703: 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-16 22:50:01.002635: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:50:01.002768: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:50:01.002967: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:50:01.003503: 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-16 22:50:01.003622: Predbat mode is set to Control charge & discharge
2026-08-16 22:50:01.193264: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:50:01.193395: Using load_power data to fill gaps in load_today data
2026-08-16 22:50:01.994417: Processing 721 30-minute periods for power integration
2026-08-16 22:50:02.159788: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:50:02.159921: Car charging hold False, threshold 6.0kWh
2026-08-16 22:50:02.159962: Current data so far today: load 10.95kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:50:02.175486: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:50:02.175587: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:50:02.176332: Standing charge is set to 46.63p
2026-08-16 22:50:02.253074: 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-16 22:50:02.253321: 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-16 22:50:02.253596: 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-16 22:50:02.253775: 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-16 22:50:02.253946: 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-16 22:50:02.254095: 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-16 22:50:02.254360: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.254506: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.254650: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.254775: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.254917: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.255053: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.255125: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.255181: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.255337: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:50:02.255389: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:50:02.260511: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:50:02.261315: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:50:02.301392: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:50:02.301509: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:50:02.302741: High export rate found rates in range 99p to -99p
2026-08-16 22:50:02.331921: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:50:02.332045: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:50:02.332098: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:50:02.345734: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -22.32p, rate_forward 6.87p
2026-08-16 22:50:02.346064: 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-16 22:50:02.407465: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:50:02.407623: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:50:02.499604: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:50:02.526645: Today's load divergence 75.93%, in-day adjustment 77.41%, damping 0.95x, yesterday 82.97% today 77.13% blend 4.86%
2026-08-16 22:50:02.526743: Today's predicted so far 13.86kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 13.86kWh forecast extra.
2026-08-16 22:50:02.526770: Today's actual load so far 10.9kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 22:50:02.560094: Inverter 0: Type SK Sunsynk
2026-08-16 22:50:02.560183: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:50:02.560338: Reserve min: 7%, battery_min: 7%
2026-08-16 22:50:02.560391: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:50:02.560717: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 376W, current battery voltage 51.2V, grid power -54W, load power 426W, PV Power 0W
2026-08-16 22:50:02.561105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:50:02.561250: Inverter 0 scheduled charge enable is False
2026-08-16 22:50:02.561287: Inverter 0 charge windows currently []
2026-08-16 22:50:02.561316: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:50:02.561436: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:50:02.561473: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:50:02.561510: Inverter 0 scheduled discharge enable is False
2026-08-16 22:50:02.561635: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:50:02.561672: Inverter 0 discharge windows currently []
2026-08-16 22:50:02.561696: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:50:02.561718: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:50:02.561736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:50:02.624106: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:50:02.624199: Plan was last updated on 2026-08-16 22:45:00+01:00 and is now 5.0 minutes old
2026-08-16 22:50:02.624380: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:50:02.624414: Best export window [  ]
2026-08-16 22:50:02.625106: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:50:02.627781: Load divergence over 8.0 hours mean 555.97W, min 290.4W, max 1047.6W, std dev 231.12W, divergence 20.79%
2026-08-16 22:50:02.643745: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:50:02.643885: LoadML is_calculating False
2026-08-16 22:50:02.644166: Creating pool of 12 processes to match your CPU count
2026-08-16 22:50:02.762467: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 653.51p, metric_keep 210.68kWh, min_soc 1.12kWh @ 08-17 10:05:00, load 27.41kWh, PV 0.0kWh
2026-08-16 22:50:02.883363: Battery has 11.25 hours left - now at 8.96kWh
2026-08-16 22:50:02.923658: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 679.83p, metric_keep 221.23kWh, min_soc 1.12kWh @ 08-17 09:30:00, load 28.19kWh, PV 0.0kWh
2026-08-16 22:50:02.997701: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 438.63p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.19kWh, PV 0.0kWh
2026-08-16 22:50:03.073592: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 437.44p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.41kWh, PV 0.0kWh
2026-08-16 22:50:03.073687: Saving plan best values to HA entities
2026-08-16 22:50:03.244567: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 22:50:03.251355: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 22:50:03.257370: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.29kWh, house 0.0kWh, export 0.0kWh, metric 437.44p, metric10 438.63p
2026-08-16 22:50:03.334960: Marginal costs baseline metric (no standing charge): 390.8081
2026-08-16 22:50:03.621950: Marginal energy costs matrix computed: min=4.65 max=30.11
2026-08-16 22:50:03.692402: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1370, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:50:03.692986: - Your estimated bill for today is £3.24 and tomorrow is £1.34
2026-08-16 22:50:03.693029: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:50:03.693048: - The battery is currently at 56% and is in eco mode for the next 40 minutes.
2026-08-16 22:50:03.693062: - For the next 48 hours there will be no solar generation.
2026-08-16 22:50:03.693076: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:50:03.693091: - Your next charge slot will be in 40 minutes where import rates will be cheap (8.0p).
2026-08-16 22:50:03.693107: 
2026-08-16 22:50:03.744382: Plan calculation took 1.12 seconds
2026-08-16 22:50:03.748361: No high rate period found
2026-08-16 22:50:03.801082: Import threshold used for optimisation was 8.0p
2026-08-16 22:50:03.858507: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:50:03.864882: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 22:50:03.865058: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:50:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:50:03.865193: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:50:03.865457: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:50:03.865551: No export window planned
2026-08-16 22:50:03.865665: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:50:03.865702: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:50:03.865838: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:50:03.866046: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:50:03.866107: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:50:03.866181: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:50:03.866273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866403: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:50:03.866698: Inverter 0 count register writes 0
2026-08-16 22:50:03.883383: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 22:50:03.888681: Total inverter register writes now 844
2026-08-16 22:50:03.924355: Info: Completed run status Demand
2026-08-16 22:50:03.931490: Info: record_status Demand
2026-08-16 22:50:03.939572: Saved current settings to /config/predbat_config.json
2026-08-16 22:50:03.940049: Compare, best tariff: current metric 318.25p
2026-08-16 22:50:34.053943: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:50:34.054227: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:50:34.054307: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:50:34.054473: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:50:34.054526: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:50:34.054548: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:50:34.054570: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:52:34.291409: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:52:34.291666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:52:34.291724: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:52:34.291961: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:52:34.292008: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:52:34.292030: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:52:34.292048: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:54:48.535044: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:54:48.535289: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:54:48.535324: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:54:48.535468: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:54:48.535518: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:54:48.535549: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:54:48.535567: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:55:00.629630: --------------- PredBat - update at 2026-08-16 22:55:00+01:00 with clock skew 0 minutes, minutes now 1375
2026-08-16 22:55:00.630452: Saved current settings to /config/predbat_config.json
2026-08-16 22:55:00.630645: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-16 22:55:00.630806: 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-16 22:55:00.630939: 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-16 22:55:00.654540: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 22:55:00.654666: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 22:55:00.654839: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 22:55:00.655366: 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-16 22:55:00.655487: Predbat mode is set to Control charge & discharge
2026-08-16 22:55:00.836517: Found 21602 load_today datapoints going back 28 days
2026-08-16 22:55:00.836660: Using load_power data to fill gaps in load_today data
2026-08-16 22:55:01.595619: Processing 721 30-minute periods for power integration
2026-08-16 22:55:01.763074: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 22:55:01.763249: Car charging hold False, threshold 6.0kWh
2026-08-16 22:55:01.763296: Current data so far today: load 11.0kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 22:55:01.782334: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 22:55:01.782454: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 22:55:01.783343: Standing charge is set to 46.63p
2026-08-16 22:55:01.877924: 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-16 22:55:01.878262: 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-16 22:55:01.878538: 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-16 22:55:01.878799: 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-16 22:55:01.879070: 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-16 22:55:01.879320: 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-16 22:55:01.879577: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.879740: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.879937: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880044: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880124: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880271: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880363: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880437: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880794: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 22:55:01.880892: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 22:55:01.886913: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 22:55:01.887356: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 22:55:01.932368: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 22:55:01.932504: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 22:55:01.933917: High export rate found rates in range 99p to -99p
2026-08-16 22:55:01.970138: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 22:55:01.970302: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 22:55:01.970370: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 22:55:01.989443: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -22.32p, rate_forward 6.87p
2026-08-16 22:55:01.990016: 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-16 22:55:02.054253: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 22:55:02.054427: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 22:55:02.154277: Using weighted-bucket historical load forecast over 14 days
2026-08-16 22:55:02.187488: Today's load divergence 75.7%, in-day adjustment 77.19%, damping 0.95x, yesterday 82.97% today 76.91% blend 4.51%
2026-08-16 22:55:02.187590: Today's predicted so far 13.92kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 13.92kWh forecast extra.
2026-08-16 22:55:02.187623: Today's actual load so far 10.94kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 22:55:02.226493: Inverter 0: Type SK Sunsynk
2026-08-16 22:55:02.226593: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:55:02.226796: Reserve min: 7%, battery_min: 7%
2026-08-16 22:55:02.226894: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:55:02.227176: Inverter 0 SoC: 8.96kW 56%, 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-16 22:55:02.227349: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:55:02.227443: Inverter 0 scheduled charge enable is False
2026-08-16 22:55:02.227472: Inverter 0 charge windows currently []
2026-08-16 22:55:02.227498: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:55:02.227605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:55:02.227640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:55:02.227677: Inverter 0 scheduled discharge enable is False
2026-08-16 22:55:02.227809: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:55:02.227846: Inverter 0 discharge windows currently []
2026-08-16 22:55:02.227887: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:55:02.227908: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:55:02.227932: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:55:02.301909: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 22:55:02.302024: Plan was last updated on 2026-08-16 22:45:00+01:00 and is now 10.0 minutes old
2026-08-16 22:55:02.302250: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 22:55:02.302293: Best export window [  ]
2026-08-16 22:55:02.303262: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:55:02.306584: Load divergence over 8.0 hours mean 548.13W, min 291.0W, max 1060.8W, std dev 226.06W, divergence 20.62%
2026-08-16 22:55:02.325434: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:55:02.325833: LoadML is_calculating False
2026-08-16 22:55:02.325935: Creating pool of 12 processes to match your CPU count
2026-08-16 22:55:02.440471: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 651.92p, metric_keep 208.59kWh, min_soc 1.12kWh @ 08-17 10:15:00, load 27.5kWh, PV 0.0kWh
2026-08-16 22:55:02.562960: Battery has 11.33 hours left - now at 8.96kWh
2026-08-16 22:55:02.603174: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 678.16p, metric_keep 218.78kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:55:02.683042: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 441.6p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.28kWh, PV 0.0kWh
2026-08-16 22:55:02.760590: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 441.06p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.5kWh, PV 0.0kWh
2026-08-16 22:55:02.760678: Saving plan best values to HA entities
2026-08-16 22:55:02.911912: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 22:55:02.918100: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:55:02.922984: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.74kWh, house 0.0kWh, export 0.0kWh, metric 441.06p, metric10 441.6p
2026-08-16 22:55:02.993942: Marginal costs baseline metric (no standing charge): 394.4257
2026-08-16 22:55:03.229607: Marginal energy costs matrix computed: min=4.67 max=30.13
2026-08-16 22:55:03.302489: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1375, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:55:03.303041: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 22:55:03.303082: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:55:03.303101: - The battery is currently at 56% and is in eco mode for the next 35 minutes.
2026-08-16 22:55:03.303115: - For the next 48 hours there will be no solar generation.
2026-08-16 22:55:03.303129: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:55:03.303148: - Your next charge slot will be in 35 minutes where import rates will be cheap (8.0p).
2026-08-16 22:55:03.303163: 
2026-08-16 22:55:03.352315: Plan calculation took 1.05 seconds
2026-08-16 22:55:03.355507: No high rate period found
2026-08-16 22:55:03.404077: Import threshold used for optimisation was 8.0p
2026-08-16 22:55:03.462285: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 22:55:03.468613: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 22:55:03.468747: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:55:03.468896: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:55:03.469218: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:55:03.469314: No export window planned
2026-08-16 22:55:03.469433: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:55:03.469470: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:55:03.469608: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:55:03.469789: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:55:03.469869: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:55:03.469963: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:55:03.470056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470196: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:03.470459: Inverter 0 count register writes 0
2026-08-16 22:55:03.490067: 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-16 22:55:03.490262: Recompute is saving previous plan...
2026-08-16 22:55:03.491236: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 0%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 0%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ]
2026-08-16 22:55:03.491308: Best export window [  ]
2026-08-16 22:55:03.492109: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 22:55:03.495282: Load divergence over 8.0 hours mean 548.13W, min 291.0W, max 1060.8W, std dev 226.06W, divergence 20.62%
2026-08-16 22:55:03.513574: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 22:55:03.513984: LoadML is_calculating False
2026-08-16 22:55:03.514100: Creating pool of 12 processes to match your CPU count
2026-08-16 22:55:03.608529: 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-16 22:55:03.609608: Optimise levels pass started at 2026-08-16 22:55:03
2026-08-16 22:55:03.609683: Optimise all windows, total charge 25 export 1
2026-08-16 22:55:03.984685: >> Region optimisation pass width 960 gives best_metric 509.56p, best_cost 526.7p, best_cycle 41.13kWh, best_import 28.27kWh
2026-08-16 22:55:04.125584: >> Region optimisation pass width 480 gives best_metric 509.56p, best_cost 526.7p, best_cycle 41.13kWh, best_import 28.27kWh
2026-08-16 22:55:04.426657: >> Region optimisation pass width 240 gives best_metric 509.56p, best_cost 526.7p, best_cycle 41.13kWh, best_import 28.27kWh
2026-08-16 22:55:05.045751: >> Region optimisation pass width 120 gives best_metric 509.23p, best_cost 522.46p, best_cycle 41.68kWh, best_import 27.74kWh
2026-08-16 22:55:05.046126: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 22:55:05.046201: Optimise levels pass ended at 2026-08-16 22:55:05, duration 1.4 seconds tried 79 combinations
2026-08-16 22:55:05.046274: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 509.23p, best_keep 0kWh, best_cycle 41.68kWh, best_carbon 0kg, best_import 27.74kWh
2026-08-16 22:55:05.061615: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 22:55:07.486336: Tweak plan optimisation started metric 372.44p, cost 385.6p
2026-08-16 22:55:07.827598: Tweak optimisation finished metric 372.44p, cost 385.6p, metric_keep 0kWh, cycle 17.9kWh, carbon 0kg, import 10.64kWh, changed 8 window(s)
2026-08-16 22:55:07.849923: Swap charge optimisation started metric 372.44p, cost 385.6p, min_improvement_swap 0.1p
2026-08-16 22:55:08.715099: Swap charge optimisation finished metric 372.44p, cost 385.6p
2026-08-16 22:55:08.850322: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 81%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 81%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 81%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 81%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 22:55:08.851090: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:55:08.851350: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:55:08.851529: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 22:55:08.889833: Previous plan best metric is 372.8 (cost 386.02) and new plan best metric is 372.44 (cost 385.6)
2026-08-16 22:55:08.890347: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 22:55:08.890558: Plan valid is now true after recompute was False
2026-08-16 22:55:08.922418: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 650.17p, metric_keep 208.0kWh, min_soc 1.12kWh @ 08-17 10:15:00, load 27.28kWh, PV 0.0kWh
2026-08-16 22:55:09.049613: Battery has 11.33 hours left - now at 8.96kWh
2026-08-16 22:55:09.096355: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 676.33p, metric_keep 218.19kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 28.05kWh, PV 0.0kWh
2026-08-16 22:55:09.176915: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 434.22p, metric_keep 2.1kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.05kWh, PV 0.0kWh
2026-08-16 22:55:09.259098: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 432.65p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.28kWh, PV 0.0kWh
2026-08-16 22:55:09.259216: Saving plan best values to HA entities
2026-08-16 22:55:09.422125: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 22:55:09.428617: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 22:55:09.435312: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.69kWh, house 0.0kWh, export 0.0kWh, metric 432.65p, metric10 434.22p
2026-08-16 22:55:09.532136: Marginal costs baseline metric (no standing charge): 386.0158
2026-08-16 22:55:09.831583: Marginal energy costs matrix computed: min=4.67 max=30.13
2026-08-16 22:55:09.905233: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1375, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 22:55:09.905849: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 22:55:09.905913: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 22:55:09.905936: - The battery is currently at 56% and is in eco mode for the next 35 minutes.
2026-08-16 22:55:09.905954: - For the next 48 hours there will be no solar generation.
2026-08-16 22:55:09.905971: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 22:55:09.905988: - Your next charge slot will be in 35 minutes where import rates will be cheap (8.0p).
2026-08-16 22:55:09.906006: 
2026-08-16 22:55:09.962725: Plan calculation took 6.47 seconds
2026-08-16 22:55:09.963095: Inverter 0: Type SK Sunsynk
2026-08-16 22:55:09.963152: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 22:55:09.963421: Reserve min: 7%, battery_min: 7%
2026-08-16 22:55:09.963528: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 22:55:09.963931: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 367W, current battery voltage 51.2V, grid power -55W, load power 423W, PV Power 0W
2026-08-16 22:55:09.964212: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:55:09.964354: Inverter 0 scheduled charge enable is False
2026-08-16 22:55:09.964398: Inverter 0 charge windows currently []
2026-08-16 22:55:09.964441: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 22:55:09.964607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:55:09.964656: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:55:09.964712: Inverter 0 scheduled discharge enable is False
2026-08-16 22:55:09.964932: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:55:09.965019: Inverter 0 discharge windows currently []
2026-08-16 22:55:09.965069: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:55:09.965112: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:55:09.965149: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:55:10.030068: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 22:55:10.030224: Inverter 0 disabled charge window while waiting for schedule (now 08-16 22:55:00 target set_window_minutes 30 charge start time 08-16 23:30:00) original inverter start time 08-18 00:00:00
2026-08-16 22:55:10.030297: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:55:10.030493: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:55:10.030568: No export window planned
2026-08-16 22:55:10.030675: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 22:55:10.030716: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-16 22:55:10.030875: Adjust demand (idle) time computed is 13:35:00-23:59:00
2026-08-16 22:55:10.031036: Inverter 0 not setting charging SoC as we are not within the window (now 08-16 22:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-16 22:55:10.031084: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 22:55:10.031139: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 22:55:10.031221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031362: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 22:55:10.031637: Inverter 0 count register writes 0
2026-08-16 22:55:10.058507: Total inverter register writes now 844
2026-08-16 22:55:10.092431: Info: Completed run status Demand
2026-08-16 22:55:10.099672: Info: record_status Demand
2026-08-16 22:55:10.106658: Saved current settings to /config/predbat_config.json
2026-08-16 22:55:10.106991: Compare, best tariff: current metric 318.25p
2026-08-16 22:55:49.223819: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:55:49.224246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:55:49.224319: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:55:49.224561: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:55:49.224615: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:55:49.224638: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:55:49.224657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 22:58:03.467449: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 22:58:03.467825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 22:58:03.468327: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 22:58:03.468680: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 22:58:03.468745: Note: Inverter does not support discharge freeze - disabled
2026-08-16 22:58:03.468770: Note: Inverter does not support charge freeze - disabled
2026-08-16 22:58:03.468789: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:00:00.688509: --------------- PredBat - update at 2026-08-16 23:00:00+01:00 with clock skew 0 minutes, minutes now 1380
2026-08-16 23:00:00.689517: Saved current settings to /config/predbat_config.json
2026-08-16 23:00:00.689732: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-16 23:00:00.689852: 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-16 23:00:00.690042: 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-16 23:00:00.713493: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:00:00.713635: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:00:00.713807: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:00:00.714372: 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-16 23:00:00.714496: Predbat mode is set to Control charge & discharge
2026-08-16 23:00:00.927769: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:00:00.927927: Using load_power data to fill gaps in load_today data
2026-08-16 23:00:01.739262: Processing 721 30-minute periods for power integration
2026-08-16 23:00:01.927762: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:00:01.927913: Car charging hold False, threshold 6.0kWh
2026-08-16 23:00:01.927956: Current data so far today: load 10.9kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:00:01.943865: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:00:01.943964: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:00:01.944639: Standing charge is set to 46.63p
2026-08-16 23:00:02.043828: 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-16 23:00:02.044075: 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-16 23:00:02.044238: 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-16 23:00:02.044393: 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-16 23:00:02.044540: 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-16 23:00:02.044681: 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-16 23:00:02.044826: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.044927: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045032: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045110: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045178: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045296: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045384: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045444: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045588: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:00:02.045639: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:00:02.050807: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:00:02.051326: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:00:02.088142: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:00:02.088262: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:00:02.089430: High export rate found rates in range 99p to -99p
2026-08-16 23:00:02.116446: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:00:02.116569: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:00:02.116623: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:00:02.129957: Battery level now 8.96kWh, -1hr ago 9.34kWh, at midnight 12.21kWh, battery value change in the last hour -2.64p, change today -22.32p, rate_forward 6.87p
2026-08-16 23:00:02.130265: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.15p, import 0.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 23:00:02.200834: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:00:02.201053: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:00:02.309448: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:00:02.349917: Today's load divergence 73.71%, in-day adjustment 75.35%, damping 0.95x, yesterday 82.97% today 75.02% blend 4.17%
2026-08-16 23:00:02.350022: Today's predicted so far 14.09kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 14.09kWh forecast extra.
2026-08-16 23:00:02.350055: Today's actual load so far 10.92kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 23:00:02.389269: Inverter 0: Type SK Sunsynk
2026-08-16 23:00:02.389396: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:00:02.389606: Reserve min: 7%, battery_min: 7%
2026-08-16 23:00:02.389686: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:00:02.390076: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 374W, current battery voltage 51.2V, grid power -54W, load power 426W, PV Power 0W
2026-08-16 23:00:02.390286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-16 23:00:02.390388: Inverter 0 scheduled charge enable is False
2026-08-16 23:00:02.390426: Inverter 0 charge windows currently []
2026-08-16 23:00:02.390455: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-16 23:00:02.390581: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:00:02.390619: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:00:02.390657: Inverter 0 scheduled discharge enable is False
2026-08-16 23:00:02.390833: Inverter 0 idle time is 08-16 13:35:00-08-16 23:59:00
2026-08-16 23:00:02.390894: Inverter 0 discharge windows currently []
2026-08-16 23:00:02.390924: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:00:02.390956: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:00:02.390976: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:00:02.471535: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:00:02.471668: Plan was last updated on 2026-08-16 22:55:00+01:00 and is now 5.0 minutes old
2026-08-16 23:00:02.471990: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:00:02.472052: Best export window [  ]
2026-08-16 23:00:02.472993: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:00:02.476158: Load divergence over 8.0 hours mean 542.27W, min 316.8W, max 1042.8W, std dev 207.96W, divergence 19.17%
2026-08-16 23:00:02.495498: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:00:02.495645: LoadML is_calculating False
2026-08-16 23:00:02.495743: Creating pool of 12 processes to match your CPU count
2026-08-16 23:00:02.629703: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 648.48p, metric_keep 206.17kWh, min_soc 1.12kWh @ 08-17 10:20:00, load 27.21kWh, PV 0.0kWh
2026-08-16 23:00:02.789475: Battery has 11.33 hours left - now at 8.96kWh
2026-08-16 23:00:02.843754: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 674.63p, metric_keep 215.9kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.99kWh, PV 0.0kWh
2026-08-16 23:00:02.925655: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 437.2p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 27.99kWh, PV 0.0kWh
2026-08-16 23:00:03.008201: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 436.26p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.21kWh, PV 0.0kWh
2026-08-16 23:00:03.008296: Saving plan best values to HA entities
2026-08-16 23:00:03.175579: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 23:00:03.182497: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 23:00:03.188347: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.14kWh, house 0.0kWh, export 0.0kWh, metric 436.26p, metric10 437.2p
2026-08-16 23:00:03.274186: Marginal costs baseline metric (no standing charge): 389.6223
2026-08-16 23:00:03.528354: Marginal energy costs matrix computed: min=4.0 max=30.11
2026-08-16 23:00:03.616962: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1380, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:00:03.617516: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 23:00:03.617562: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:00:03.617582: - The battery is currently at 56% and is in eco mode for the next 30 minutes.
2026-08-16 23:00:03.617597: - For the next 48 hours there will be no solar generation.
2026-08-16 23:00:03.617611: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:00:03.617646: - Your next charge slot will be in 30 minutes where import rates will be cheap (8.0p).
2026-08-16 23:00:03.617662: 
2026-08-16 23:00:03.673757: Plan calculation took 1.20 seconds
2026-08-16 23:00:03.677818: No high rate period found
2026-08-16 23:00:03.737478: Import threshold used for optimisation was 8.0p
2026-08-16 23:00:03.788212: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:00:03.796404: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-16 23:00:03.796578: Inverter 0 configuring charge window now (now 08-16 23:00:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:00:03.796913: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:00:03.797230: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:00:03.797608: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:00:03.797722: Inverter 0 set new demand (idle) end time to 23:30:00 was 23:59:00
2026-08-16 23:00:08.805268: Inverter 0 write_and_poll_value: Wrote 23:30:00 to idle_end_time, successfully now 23:30:00
2026-08-16 23:00:13.813272: Inverter 0 write_and_poll_value: Wrote 23:30:00 to charge_start_time, successfully now 23:30:00
2026-08-16 23:00:18.822478: Inverter 0 write_and_poll_value: Wrote 05:30:00 to charge_end_time, successfully now 05:30:00
2026-08-16 23:00:18.822638: Inverter 0 Updated start and end charge window to 23:30:00 - 05:30:00 (old 23:59:00 - 23:59:00)
2026-08-16 23:00:23.830766: Inverter 0 Wrote scheduled_charge_enable to True successfully and got on
2026-08-16 23:00:23.830916: Inverter 0 Turning on scheduled charge
2026-08-16 23:00:23.830960: No export window planned
2026-08-16 23:00:23.831144: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:00:23.831188: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:00:23.831437: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:00:23.831621: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:00:23.831677: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:00:23.831743: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:00:23.831832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.831898: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.831926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.831962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:00:23.832456: Inverter 0 count register writes 0
2026-08-16 23:00:23.853382: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:00:23.859445: Total inverter register writes now 844
2026-08-16 23:00:23.895985: Info: Completed run status Demand
2026-08-16 23:00:23.903069: Info: record_status Demand
2026-08-16 23:00:23.910065: Saved current settings to /config/predbat_config.json
2026-08-16 23:00:23.910374: Compare, best tariff: current metric 318.25p
2026-08-16 23:01:04.027300: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:01:04.027611: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:01:04.027649: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:01:04.027885: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:01:04.027954: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:01:04.027977: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:01:04.027995: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:03:04.261134: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:03:04.261659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:03:04.261715: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:03:04.261951: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:03:04.262000: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:03:04.262032: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:03:04.262067: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:05:00.487515: --------------- PredBat - update at 2026-08-16 23:05:00+01:00 with clock skew 0 minutes, minutes now 1385
2026-08-16 23:05:00.488380: Saved current settings to /config/predbat_config.json
2026-08-16 23:05:00.856470: 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-16 23:05:00.856605: 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-16 23:05:00.878736: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:05:00.878940: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:05:00.879169: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:05:00.879813: 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-16 23:05:00.880019: Predbat mode is set to Control charge & discharge
2026-08-16 23:05:01.087725: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:05:01.087897: Using load_power data to fill gaps in load_today data
2026-08-16 23:05:01.988230: Processing 721 30-minute periods for power integration
2026-08-16 23:05:02.188916: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:05:02.189117: Car charging hold False, threshold 6.0kWh
2026-08-16 23:05:02.189168: Current data so far today: load 10.9kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:05:02.208741: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:05:02.208870: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:05:02.209813: Standing charge is set to 46.63p
2026-08-16 23:05:02.298595: 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-16 23:05:02.298884: 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-16 23:05:02.299066: 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-16 23:05:02.299256: 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-16 23:05:02.299436: 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-16 23:05:02.299614: 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-16 23:05:02.299794: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.299910: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.299994: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300078: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300153: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300296: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300384: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300455: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300649: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:05:02.300713: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:05:02.306720: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:05:02.307242: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:05:02.351796: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:05:02.351936: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:05:02.353348: High export rate found rates in range 99p to -99p
2026-08-16 23:05:02.388048: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:05:02.388194: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:05:02.388253: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:05:02.408697: Battery level now 8.96kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -2.2p, change today -22.32p, rate_forward 6.87p
2026-08-16 23:05:02.409125: 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-16 23:05:02.484580: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:05:02.484748: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:05:02.587437: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:05:02.620583: Today's load divergence 72.88%, in-day adjustment 74.57%, damping 0.95x, yesterday 82.97% today 74.23% blend 3.82%
2026-08-16 23:05:02.620692: Today's predicted so far 14.24kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 14.24kWh forecast extra.
2026-08-16 23:05:02.620725: Today's actual load so far 10.99kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 23:05:02.653975: Inverter 0: Type SK Sunsynk
2026-08-16 23:05:02.654076: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:05:02.654266: Reserve min: 7%, battery_min: 7%
2026-08-16 23:05:02.654348: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:05:02.654624: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 473W, current battery voltage 51.2V, grid power -55W, load power 529W, PV Power 0W
2026-08-16 23:05:02.654791: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:05:02.654900: Inverter 0 scheduled charge enable is True
2026-08-16 23:05:02.654973: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:05:02.655077: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:05:02.655221: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:05:02.655265: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:05:02.655305: Inverter 0 scheduled discharge enable is False
2026-08-16 23:05:02.655458: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:05:02.655501: Inverter 0 discharge windows currently []
2026-08-16 23:05:02.655525: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:05:02.655544: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:05:02.655582: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:05:02.725265: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:05:02.725377: Plan was last updated on 2026-08-16 22:55:00+01:00 and is now 10.0 minutes old
2026-08-16 23:05:02.725668: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:05:02.725724: Best export window [  ]
2026-08-16 23:05:02.726582: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:05:02.729726: Load divergence over 8.0 hours mean 536.1W, min 325.2W, max 1051.2W, std dev 209.68W, divergence 19.56%
2026-08-16 23:05:02.748876: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:05:02.749066: LoadML is_calculating False
2026-08-16 23:05:02.749146: Creating pool of 12 processes to match your CPU count
2026-08-16 23:05:02.872349: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 652.15p, metric_keep 209.0kWh, min_soc 1.12kWh @ 08-17 10:10:00, load 27.25kWh, PV 0.0kWh
2026-08-16 23:05:03.000640: Battery has 11.08 hours left - now at 8.8kWh
2026-08-16 23:05:03.042621: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 678.15p, metric_keep 218.94kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 28.03kWh, PV 0.0kWh
2026-08-16 23:05:03.115422: predict best10 end_record 08-17 23:40:00, final soc 2.13kWh, metric 441.67p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 28.03kWh, PV 0.0kWh
2026-08-16 23:05:03.193672: predict best end_record 08-17 23:40:00, final soc 2.83kWh, metric 441.19p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.25kWh, PV 0.0kWh
2026-08-16 23:05:03.193761: Saving plan best values to HA entities
2026-08-16 23:05:03.355391: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 23:05:03.361060: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:05:03.366369: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.76kWh, house 0.0kWh, export 0.0kWh, metric 441.19p, metric10 441.67p
2026-08-16 23:05:03.453186: Marginal costs baseline metric (no standing charge): 394.557
2026-08-16 23:05:03.751231: Marginal energy costs matrix computed: min=3.33 max=30.08
2026-08-16 23:05:03.827768: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1385, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:05:03.828487: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 23:05:03.828540: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:05:03.828563: - The battery is currently at 55% and is in eco mode for the next 25 minutes.
2026-08-16 23:05:03.828581: - For the next 48 hours there will be no solar generation.
2026-08-16 23:05:03.828598: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:05:03.828615: - Your next charge slot will be in 25 minutes where import rates will be cheap (8.0p).
2026-08-16 23:05:03.828632: 
2026-08-16 23:05:03.885040: Plan calculation took 1.16 seconds
2026-08-16 23:05:03.888962: No high rate period found
2026-08-16 23:05:03.948332: Import threshold used for optimisation was 8.0p
2026-08-16 23:05:04.007308: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:05:04.013910: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:05:04.014038: Inverter 0 configuring charge window now (now 08-16 23:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:05:04.014187: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:05:04.014410: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:05:04.014662: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:05:04.014751: No export window planned
2026-08-16 23:05:04.014864: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:05:04.014897: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:05:04.015008: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:05:04.015291: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:05:04.015354: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:05:04.015410: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:05:04.015486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015543: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015597: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:04.015927: Inverter 0 count register writes 0
2026-08-16 23:05:04.031499: 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-16 23:05:04.031656: Recompute is saving previous plan...
2026-08-16 23:05:04.032484: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 7%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 7%, 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% ]
2026-08-16 23:05:04.032532: Best export window [  ]
2026-08-16 23:05:04.033286: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:05:04.036009: Load divergence over 8.0 hours mean 536.1W, min 325.2W, max 1051.2W, std dev 209.68W, divergence 19.56%
2026-08-16 23:05:04.050967: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:05:04.051074: LoadML is_calculating False
2026-08-16 23:05:04.051139: Creating pool of 12 processes to match your CPU count
2026-08-16 23:05:04.141833: 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-16 23:05:04.142940: Optimise levels pass started at 2026-08-16 23:05:04
2026-08-16 23:05:04.142998: Optimise all windows, total charge 25 export 1
2026-08-16 23:05:04.794276: >> Region optimisation pass width 960 gives best_metric 510.57p, best_cost 524.66p, best_cycle 40.85kWh, best_import 28.02kWh
2026-08-16 23:05:04.966617: >> Region optimisation pass width 480 gives best_metric 510.57p, best_cost 524.66p, best_cycle 40.85kWh, best_import 28.02kWh
2026-08-16 23:05:05.319888: >> Region optimisation pass width 240 gives best_metric 510.57p, best_cost 524.66p, best_cycle 40.85kWh, best_import 28.02kWh
2026-08-16 23:05:06.020920: >> Region optimisation pass width 120 gives best_metric 510.42p, best_cost 522.64p, best_cycle 41.11kWh, best_import 27.77kWh
2026-08-16 23:05:06.021314: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 23:05:06.021577: Optimise levels pass ended at 2026-08-16 23:05:06, duration 1.9 seconds tried 73 combinations
2026-08-16 23:05:06.021658: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 510.42p, best_keep 0kWh, best_cycle 41.11kWh, best_carbon 0kg, best_import 27.77kWh
2026-08-16 23:05:06.055485: Starting detailed optimisation end_record 08-17 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, 0, 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-16 23:05:08.240747: Tweak plan optimisation started metric 374.72p, cost 387.59p
2026-08-16 23:05:08.504218: Tweak optimisation finished metric 374.72p, cost 387.59p, metric_keep 0.0kWh, cycle 21.76kWh, carbon 0kg, import 10.89kWh, changed 8 window(s)
2026-08-16 23:05:08.526501: Swap charge optimisation started metric 374.72p, cost 387.59p, min_improvement_swap 0.1p
2026-08-16 23:05:09.222644: Swap charge optimisation finished metric 374.72p, cost 387.59p
2026-08-16 23:05:09.284289: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-16 23:05:09.284559: Unclipped charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:05:09.284742: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:05:09.284870: Filtered charge windows [ 16-08 23:30:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:05:09.316187: Previous plan best metric is 372.84 (cost 386.16) and new plan best metric is 374.72 (cost 387.59)
2026-08-16 23:05:09.316420: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 23:05:09.316574: Plan valid is now true after recompute was False
2026-08-16 23:05:09.343275: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 650.42p, metric_keep 208.41kWh, min_soc 1.12kWh @ 08-17 10:10:00, load 27.04kWh, PV 0.0kWh
2026-08-16 23:05:09.449357: Battery has 11.08 hours left - now at 8.8kWh
2026-08-16 23:05:09.491806: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 676.33p, metric_keep 218.35kWh, min_soc 1.12kWh @ 08-17 09:40:00, load 27.8kWh, PV 0.0kWh
2026-08-16 23:05:09.574118: predict best10 end_record 08-17 23:30:00, final soc 1.49kWh, metric 434.3p, metric_keep 2.06kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 27.8kWh, PV 0.0kWh
2026-08-16 23:05:09.660180: predict best end_record 08-17 23:30:00, final soc 2.06kWh, metric 432.79p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.04kWh, PV 0.0kWh
2026-08-16 23:05:09.660280: Saving plan best values to HA entities
2026-08-16 23:05:09.835434: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 23:05:09.841412: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:05:09.846872: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.71kWh, house 0.0kWh, export 0.0kWh, metric 432.79p, metric10 434.3p
2026-08-16 23:05:09.927616: Marginal costs baseline metric (no standing charge): 386.1559
2026-08-16 23:05:10.228611: Marginal energy costs matrix computed: min=3.33 max=30.08
2026-08-16 23:05:10.303687: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1385, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:05:10.304266: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 23:05:10.304309: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:05:10.304327: - The battery is currently at 55% and is in eco mode for the next 25 minutes.
2026-08-16 23:05:10.304341: - For the next 48 hours there will be no solar generation.
2026-08-16 23:05:10.304355: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:05:10.304371: - Your next charge slot will be in 25 minutes where import rates will be cheap (8.0p).
2026-08-16 23:05:10.304385: 
2026-08-16 23:05:10.354427: Plan calculation took 6.32 seconds
2026-08-16 23:05:10.354731: Inverter 0: Type SK Sunsynk
2026-08-16 23:05:10.354771: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:05:10.354983: Reserve min: 7%, battery_min: 7%
2026-08-16 23:05:10.355051: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:05:10.355336: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 473W, current battery voltage 51.2V, grid power -55W, load power 529W, PV Power 0W
2026-08-16 23:05:10.355546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:05:10.355639: Inverter 0 scheduled charge enable is True
2026-08-16 23:05:10.355681: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:05:10.355769: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:05:10.355892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:05:10.355928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:05:10.355960: Inverter 0 scheduled discharge enable is False
2026-08-16 23:05:10.356072: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:05:10.356105: Inverter 0 discharge windows currently []
2026-08-16 23:05:10.356124: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:05:10.356140: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:05:10.356158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:05:10.449811: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:05:10.450010: Inverter 0 configuring charge window now (now 08-16 23:05:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:05:10.450152: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:05:10.450309: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:05:10.450469: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:05:10.450545: No export window planned
2026-08-16 23:05:10.450642: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:05:10.450673: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:05:10.450789: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:05:10.450919: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:05:10.450962: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:05:10.451006: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:05:10.451083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:05:10.451419: Inverter 0 count register writes 0
2026-08-16 23:05:10.610131: Total inverter register writes now 844
2026-08-16 23:05:10.642961: Info: Completed run status Demand
2026-08-16 23:05:10.649470: Info: record_status Demand
2026-08-16 23:05:10.656888: Saved current settings to /config/predbat_config.json
2026-08-16 23:05:10.657219: Compare, best tariff: current metric 318.25p
2026-08-16 23:05:12.433134: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-16 23:05:13.450511: Processing 1345 30-minute periods for power integration
2026-08-16 23:05:13.532578: ML Component: Car charging hold False, car energy reported load False
2026-08-16 23:05:13.617875: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:05:13.700581: ML Temperature data points: 49016
2026-08-16 23:05:13.921828: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-16 23:05:13.957455: ML Component: Data fetch completed, load data age 58.0 days, 16813 data points
2026-08-16 23:05:13.957579: ML Component: Starting fine-tune training (2h interval), model age is 2.0210454605555555 hours
2026-08-16 23:05:13.957600: ML Component: Doing training...
2026-08-16 23:05:13.971871: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-16 23:05:13.972005: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.4 days)
2026-08-16 23:05:14.023231: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-16 23:05:14.023348: ML Predictor: Starting initial training with 30 epochs
2026-08-16 23:05:14.537646: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-16 23:05:18.593658: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-16 23:05:18.646902: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0480) load(mean=0.0588 std=0.0472) 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-16 23:05:45.331805: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0338 val_mae=0.0089 kWh val_bias=-0.0056 kWh (-7.8%) combined=0.0068 kWh ema_combined=0.0068 kWh
2026-08-16 23:05:49.044083: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:05:49.044568: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:05:49.044631: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:05:49.044928: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:05:49.045122: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:05:49.045261: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:05:49.045410: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:06:11.187148: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0466 val_mae=0.0073 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0043 kWh ema_combined=0.0061 kWh
2026-08-16 23:06:38.489747: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0323 val_mae=0.0062 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0035 kWh ema_combined=0.0053 kWh
2026-08-16 23:07:05.180927: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0231 val_mae=0.0046 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0023 kWh ema_combined=0.0044 kWh
2026-08-16 23:07:31.195482: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0170 val_mae=0.0050 kWh val_bias=-0.0018 kWh (-2.5%) combined=0.0028 kWh ema_combined=0.0039 kWh
2026-08-16 23:07:57.852206: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0156 val_mae=0.0038 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0023 kWh ema_combined=0.0034 kWh
2026-08-16 23:08:03.510416: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:08:03.510715: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:08:03.510762: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:08:03.510924: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:08:03.510966: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:08:03.510989: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:08:03.511009: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:08:23.173878: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0134 val_mae=0.0042 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0024 kWh ema_combined=0.0031 kWh
2026-08-16 23:08:50.272170: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0114 val_mae=0.0041 kWh val_bias=-0.0021 kWh (-3.0%) combined=0.0034 kWh ema_combined=0.0032 kWh
2026-08-16 23:09:16.528895: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0100 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-16 23:09:45.080757: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0090 val_mae=0.0036 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-16 23:10:00.894317: --------------- PredBat - update at 2026-08-16 23:10:00+01:00 with clock skew 0 minutes, minutes now 1390
2026-08-16 23:10:00.895288: Saved current settings to /config/predbat_config.json
2026-08-16 23:10:00.895452: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-16 23:10:00.895607: 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-16 23:10:00.895712: 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-16 23:10:00.945931: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:10:00.946094: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:10:00.946329: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:10:00.947028: 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-16 23:10:00.947199: Predbat mode is set to Control charge & discharge
2026-08-16 23:10:01.490145: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:10:01.499552: Using load_power data to fill gaps in load_today data
2026-08-16 23:10:03.012785: Processing 721 30-minute periods for power integration
2026-08-16 23:10:03.166434: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:10:03.167499: Car charging hold False, threshold 6.0kWh
2026-08-16 23:10:03.167644: Current data so far today: load 11.03kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:10:03.192115: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:10:03.192239: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:10:03.193265: Standing charge is set to 46.63p
2026-08-16 23:10:03.442873: 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-16 23:10:03.443690: 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-16 23:10:03.443888: 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-16 23:10:03.444083: 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-16 23:10:03.444259: 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-16 23:10:03.444410: 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-16 23:10:03.444564: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.444651: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.444730: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.444851: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.444929: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.445193: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.445277: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.445333: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.445485: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:10:03.445537: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:10:03.450332: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:10:03.450640: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:10:03.489126: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:10:03.489860: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:10:03.491248: High export rate found rates in range 99p to -99p
2026-08-16 23:10:03.519829: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:10:03.519966: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:10:03.520027: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:10:03.538087: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -23.42p, rate_forward 6.87p
2026-08-16 23:10:03.538520: 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-16 23:10:03.668030: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:10:03.668378: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:10:03.878330: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:10:03.915301: Today's load divergence 73.17%, in-day adjustment 74.81%, damping 0.95x, yesterday 82.97% today 74.51% blend 3.47%
2026-08-16 23:10:03.915463: Today's predicted so far 14.28kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 14.28kWh forecast extra.
2026-08-16 23:10:03.915519: Today's actual load so far 11.06kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 23:10:03.962665: Inverter 0: Type SK Sunsynk
2026-08-16 23:10:03.962788: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:10:03.963012: Reserve min: 7%, battery_min: 7%
2026-08-16 23:10:03.963102: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:10:03.963426: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -55W, load power 467W, PV Power 0W
2026-08-16 23:10:03.963610: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:10:03.963756: Inverter 0 scheduled charge enable is True
2026-08-16 23:10:03.963819: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:10:03.963938: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:10:03.964079: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:10:03.964124: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:10:03.964167: Inverter 0 scheduled discharge enable is False
2026-08-16 23:10:03.964323: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:10:03.964367: Inverter 0 discharge windows currently []
2026-08-16 23:10:03.964397: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:10:03.964429: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:10:03.964452: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:10:04.069997: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:10:04.070273: Plan was last updated on 2026-08-16 23:05:00+01:00 and is now 5.0 minutes old
2026-08-16 23:10:04.070625: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:10:04.070685: Best export window [  ]
2026-08-16 23:10:04.072010: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:10:04.077244: Load divergence over 8.0 hours mean 528.18W, min 316.2W, max 1049.4W, std dev 206.97W, divergence 19.59%
2026-08-16 23:10:04.102762: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:10:04.102890: LoadML is_calculating True
2026-08-16 23:10:04.102917: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:10:04.159896: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 648.75p, metric_keep 206.36kWh, min_soc 1.12kWh @ 08-17 10:20:00, load 27.19kWh, PV 0.0kWh
2026-08-16 23:10:04.443275: Battery has 11.17 hours left - now at 8.8kWh
2026-08-16 23:10:04.500215: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 674.63p, metric_keep 215.84kWh, min_soc 1.12kWh @ 08-17 09:50:00, load 27.97kWh, PV 0.0kWh
2026-08-16 23:10:04.621282: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 437.17p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 27.97kWh, PV 0.0kWh
2026-08-16 23:10:04.784598: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 436.31p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.19kWh, PV 0.0kWh
2026-08-16 23:10:04.784724: Saving plan best values to HA entities
2026-08-16 23:10:05.147800: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:10:05.166258: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:10:05.182882: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.15kWh, house 0.0kWh, export 0.0kWh, metric 436.31p, metric10 437.17p
2026-08-16 23:10:05.286603: Marginal costs baseline metric (no standing charge): 389.6801
2026-08-16 23:10:05.659473: Marginal energy costs matrix computed: min=2.67 max=30.12
2026-08-16 23:10:05.835409: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1390, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:10:05.836403: - Your estimated bill for today is £3.24 and tomorrow is £1.33
2026-08-16 23:10:05.836572: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:10:05.836712: - The battery is currently at 55% and is in eco mode for the next 20 minutes.
2026-08-16 23:10:05.836874: - For the next 48 hours there will be no solar generation.
2026-08-16 23:10:05.837025: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:10:05.837158: - Your next charge slot will be in 20 minutes where import rates will be cheap (8.0p).
2026-08-16 23:10:05.837278: 
2026-08-16 23:10:05.889771: Plan calculation took 1.82 seconds
2026-08-16 23:10:05.899822: No high rate period found
2026-08-16 23:10:05.978668: Import threshold used for optimisation was 8.0p
2026-08-16 23:10:06.065055: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:10:06.075710: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:10:06.076116: Inverter 0 configuring charge window now (now 08-16 23:10:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:10:06.076376: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:10:06.076720: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:10:06.077179: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:10:06.077416: No export window planned
2026-08-16 23:10:06.077675: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:10:06.077855: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:10:06.078190: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:10:06.078490: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:10:06.078640: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:10:06.078855: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:10:06.079081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.079252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.079397: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.079558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.079695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.079914: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.080888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.081058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.081214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:10:06.081327: Inverter 0 count register writes 0
2026-08-16 23:10:06.117914: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:10:06.128137: Total inverter register writes now 844
2026-08-16 23:10:06.206259: Info: Completed run status Demand
2026-08-16 23:10:06.215595: Info: record_status Demand
2026-08-16 23:10:06.225136: Saved current settings to /config/predbat_config.json
2026-08-16 23:10:06.225452: Compare, best tariff: current metric 318.25p
2026-08-16 23:10:15.547485: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0091 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-16 23:10:40.265504: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0085 val_mae=0.0032 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-16 23:10:48.440430: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:10:48.440923: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:10:48.441078: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:10:48.441348: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:10:48.441473: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:10:48.441639: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:10:48.441816: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:11:07.368081: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0095 val_mae=0.0034 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-16 23:11:35.195554: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0089 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-16 23:12:01.911721: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0028 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 23:12:28.644429: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0076 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-16 23:12:48.960357: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:12:48.960683: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:12:48.960751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:12:48.961107: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:12:48.961243: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:12:48.961363: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:12:48.961477: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:12:55.416447: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0029 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-16 23:13:22.595120: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0066 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 23:13:51.284400: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 23:14:15.899017: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0072 val_mae=0.0026 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-16 23:14:38.049432: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-16 23:14:38.532424: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-16 23:14:42.379210: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0062 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 23:15:00.391174: --------------- PredBat - update at 2026-08-16 23:15:00+01:00 with clock skew 0 minutes, minutes now 1395
2026-08-16 23:15:00.391978: Saved current settings to /config/predbat_config.json
2026-08-16 23:15:00.392149: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-16 23:15:00.392284: 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-16 23:15:00.392462: 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-16 23:15:00.428581: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:15:00.428920: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:15:00.429217: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:15:00.429845: 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-16 23:15:00.430170: Predbat mode is set to Control charge & discharge
2026-08-16 23:15:00.842636: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:15:00.843066: Using load_power data to fill gaps in load_today data
2026-08-16 23:15:01.970992: Processing 721 30-minute periods for power integration
2026-08-16 23:15:02.240358: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:15:02.253209: Car charging hold False, threshold 6.0kWh
2026-08-16 23:15:02.253294: Current data so far today: load 11.05kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:15:02.277626: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:15:02.295587: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:15:02.296520: Standing charge is set to 46.63p
2026-08-16 23:15:02.524904: 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-16 23:15:02.525458: 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-16 23:15:02.525778: 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-16 23:15:02.526029: 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-16 23:15:02.526275: 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-16 23:15:02.527164: 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-16 23:15:02.527391: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.527494: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.527585: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.527667: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.527816: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.527995: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.528199: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.528289: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.528479: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:15:02.528540: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:15:02.534851: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:15:02.535261: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:15:02.579619: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:15:02.579847: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:15:02.581945: High export rate found rates in range 99p to -99p
2026-08-16 23:15:02.617754: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:15:02.617974: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:15:02.618043: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:15:02.654357: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -23.42p, rate_forward 6.87p
2026-08-16 23:15:02.654924: 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-16 23:15:02.798210: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:15:02.798432: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:15:03.010741: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:15:03.087135: Today's load divergence 72.14%, in-day adjustment 73.83%, damping 0.95x, yesterday 82.97% today 73.54% blend 3.12%
2026-08-16 23:15:03.087265: Today's predicted so far 14.32kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 14.32kWh forecast extra.
2026-08-16 23:15:03.087293: Today's actual load so far 11.01kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 23:15:03.131350: Inverter 0: Type SK Sunsynk
2026-08-16 23:15:03.131558: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:15:03.131844: Reserve min: 7%, battery_min: 7%
2026-08-16 23:15:03.131969: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:15:03.132305: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 629W, current battery voltage 51.2V, grid power -55W, load power 691W, PV Power 0W
2026-08-16 23:15:03.132524: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:15:03.132669: Inverter 0 scheduled charge enable is True
2026-08-16 23:15:03.132745: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:15:03.132938: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:15:03.133170: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:15:03.133227: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:15:03.133321: Inverter 0 scheduled discharge enable is False
2026-08-16 23:15:03.133519: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:15:03.133566: Inverter 0 discharge windows currently []
2026-08-16 23:15:03.133635: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:15:03.133687: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:15:03.133709: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:15:03.232050: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:15:03.232198: Plan was last updated on 2026-08-16 23:05:00+01:00 and is now 10.0 minutes old
2026-08-16 23:15:03.232509: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:15:03.232566: Best export window [  ]
2026-08-16 23:15:03.233934: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:15:03.239257: Load divergence over 8.0 hours mean 520.35W, min 259.8W, max 1153.2W, std dev 210.57W, divergence 20.23%
2026-08-16 23:15:03.263432: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:15:03.263551: LoadML is_calculating True
2026-08-16 23:15:03.263580: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:15:03.310858: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 647.02p, metric_keep 204.33kWh, min_soc 1.12kWh @ 08-17 10:25:00, load 27.26kWh, PV 0.0kWh
2026-08-16 23:15:03.550690: Battery has 11.17 hours left - now at 8.8kWh
2026-08-16 23:15:03.653484: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 672.78p, metric_keep 213.29kWh, min_soc 1.12kWh @ 08-17 10:00:00, load 28.03kWh, PV 0.0kWh
2026-08-16 23:15:03.825947: predict best10 end_record 08-17 23:40:00, final soc 2.11kWh, metric 440.07p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.03kWh, PV 0.0kWh
2026-08-16 23:15:03.999601: predict best end_record 08-17 23:40:00, final soc 2.81kWh, metric 439.86p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.26kWh, PV 0.0kWh
2026-08-16 23:15:03.999722: Saving plan best values to HA entities
2026-08-16 23:15:04.374167: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 23:15:04.382771: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 23:15:04.389078: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.59kWh, house 0kWh, export 0.0kWh, metric 439.86p, metric10 440.07p
2026-08-16 23:15:04.559521: Marginal costs baseline metric (no standing charge): 393.2232
2026-08-16 23:15:04.941792: Marginal energy costs matrix computed: min=2.0 max=30.18
2026-08-16 23:15:05.104222: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1395, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:15:05.105018: - Your estimated bill for today is £3.24 and tomorrow is £1.32
2026-08-16 23:15:05.105071: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:15:05.105095: - The battery is currently at 55% and is in eco mode for the next 15 minutes.
2026-08-16 23:15:05.105116: - For the next 48 hours there will be no solar generation.
2026-08-16 23:15:05.105136: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:15:05.117006: - Your next charge slot will be in 15 minutes where import rates will be cheap (8.0p).
2026-08-16 23:15:05.117171: 
2026-08-16 23:15:05.184591: Plan calculation took 1.95 seconds
2026-08-16 23:15:05.190242: No high rate period found
2026-08-16 23:15:05.285832: Import threshold used for optimisation was 8.0p
2026-08-16 23:15:05.408728: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:15:05.415084: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:15:05.415394: Inverter 0 configuring charge window now (now 08-16 23:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:15:05.415648: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:15:05.415946: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:15:05.416288: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:15:05.416497: No export window planned
2026-08-16 23:15:05.416768: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:15:05.416915: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:15:05.417197: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:15:05.417466: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:15:05.417622: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:15:05.417890: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:15:05.418111: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.418249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.418408: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.418561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.419073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.419208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.419363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.420866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.421139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.421319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.421493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.421662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.421853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.422024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:05.422184: Inverter 0 count register writes 0
2026-08-16 23:15:05.450842: 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-16 23:15:05.451238: Recompute is saving previous plan...
2026-08-16 23:15:05.452512: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 7%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 7%, 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% ]
2026-08-16 23:15:05.452746: Best export window [  ]
2026-08-16 23:15:05.453961: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:15:05.473869: Load divergence over 8.0 hours mean 520.35W, min 259.8W, max 1153.2W, std dev 210.57W, divergence 20.23%
2026-08-16 23:15:05.579399: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:15:05.579562: LoadML is_calculating True
2026-08-16 23:15:05.579608: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:15:05.640447: 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-16 23:15:05.640910: Optimise levels pass started at 2026-08-16 23:15:05
2026-08-16 23:15:05.641002: Optimise all windows, total charge 25 export 1
2026-08-16 23:15:07.672502: >> Region optimisation pass width 960 gives best_metric 510.96p, best_cost 525.28p, best_cycle 41.08kWh, best_import 28.1kWh
2026-08-16 23:15:07.865658: >> Region optimisation pass width 480 gives best_metric 510.96p, best_cost 525.28p, best_cycle 41.08kWh, best_import 28.1kWh
2026-08-16 23:15:08.395146: >> Region optimisation pass width 240 gives best_metric 510.96p, best_cost 525.28p, best_cycle 41.08kWh, best_import 28.1kWh
2026-08-16 23:15:10.105197: >> Region optimisation pass width 120 gives best_metric 510.81p, best_cost 523.32p, best_cycle 41.34kWh, best_import 27.85kWh
2026-08-16 23:15:10.105546: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 23:15:10.105623: Optimise levels pass ended at 2026-08-16 23:15:10, duration 4.5 seconds tried 73 combinations
2026-08-16 23:15:10.105736: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 510.81p, best_keep 0kWh, best_cycle 41.34kWh, best_carbon 0kg, best_import 27.85kWh
2026-08-16 23:15:10.131639: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 23:15:18.319918: Tweak plan optimisation started metric 371.06p, cost 384.15p
2026-08-16 23:15:19.748544: Tweak optimisation finished metric 371.06p, cost 384.15p, metric_keep 0kWh, cycle 17.45kWh, carbon 0kg, import 10.46kWh, changed 8 window(s)
2026-08-16 23:15:19.810699: Swap charge optimisation started metric 371.06p, cost 384.15p, min_improvement_swap 0.1p
2026-08-16 23:15:20.224549: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0035 kWh val_bias=-0.0016 kWh (-2.3%) combined=0.0023 kWh ema_combined=0.0018 kWh
2026-08-16 23:15:21.264505: Swap charge optimisation finished metric 371.06p, cost 384.15p
2026-08-16 23:15:21.482607: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 84%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 84%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 84%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 84%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 23:15:21.483233: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:15:21.483561: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:15:21.483886: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:15:21.528039: Previous plan best metric is 371.58 (cost 384.76) and new plan best metric is 371.06 (cost 384.15)
2026-08-16 23:15:21.528374: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 23:15:21.528582: Plan valid is now true after recompute was False
2026-08-16 23:15:21.566064: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 645.23p, metric_keep 203.74kWh, min_soc 1.12kWh @ 08-17 10:25:00, load 27.03kWh, PV 0.0kWh
2026-08-16 23:15:21.791707: Battery has 11.17 hours left - now at 8.8kWh
2026-08-16 23:15:21.863894: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 670.9p, metric_keep 212.7kWh, min_soc 1.12kWh @ 08-17 10:00:00, load 27.79kWh, PV 0.0kWh
2026-08-16 23:15:21.984033: predict best10 end_record 08-17 23:30:00, final soc 1.46kWh, metric 432.64p, metric_keep 2.22kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 27.79kWh, PV 0.0kWh
2026-08-16 23:15:22.171156: predict best end_record 08-17 23:30:00, final soc 2.03kWh, metric 431.4p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.03kWh, PV 0.0kWh
2026-08-16 23:15:22.171280: Saving plan best values to HA entities
2026-08-16 23:15:22.583818: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-16 23:15:22.597109: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-16 23:15:22.607219: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.53kWh, house 0kWh, export 0.0kWh, metric 431.4p, metric10 432.64p
2026-08-16 23:15:22.775823: Info: HAHistory: Pruning history data started.
2026-08-16 23:15:22.779103: Info: HAHistory: Pruning history data completed.
2026-08-16 23:15:22.837321: Marginal costs baseline metric (no standing charge): 384.7637
2026-08-16 23:15:23.185330: Marginal energy costs matrix computed: min=2.0 max=30.18
2026-08-16 23:15:23.277366: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1395, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:15:23.294505: - Your estimated bill for today is £3.24 and tomorrow is £1.32
2026-08-16 23:15:23.294610: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:15:23.294656: - The battery is currently at 55% and is in eco mode for the next 15 minutes.
2026-08-16 23:15:23.294694: - For the next 48 hours there will be no solar generation.
2026-08-16 23:15:23.294715: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:15:23.294744: - Your next charge slot will be in 15 minutes where import rates will be cheap (8.0p).
2026-08-16 23:15:23.294763: 
2026-08-16 23:15:23.382395: Plan calculation took 17.93 seconds
2026-08-16 23:15:23.382657: Inverter 0: Type SK Sunsynk
2026-08-16 23:15:23.382728: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:15:23.382920: Reserve min: 7%, battery_min: 7%
2026-08-16 23:15:23.382992: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:15:23.383251: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 617W, current battery voltage 51.2V, grid power -57W, load power 674W, PV Power 0W
2026-08-16 23:15:23.383429: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:15:23.383524: Inverter 0 scheduled charge enable is True
2026-08-16 23:15:23.383572: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:15:23.383658: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:15:23.383808: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:15:23.383844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:15:23.383885: Inverter 0 scheduled discharge enable is False
2026-08-16 23:15:23.384093: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:15:23.384141: Inverter 0 discharge windows currently []
2026-08-16 23:15:23.384166: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:15:23.384268: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:15:23.384307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:15:23.515478: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:15:23.515836: Inverter 0 configuring charge window now (now 08-16 23:15:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:15:23.516455: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:15:23.516708: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:15:23.516915: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:15:23.517139: No export window planned
2026-08-16 23:15:23.517476: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:15:23.517613: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:15:23.517847: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:15:23.518066: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:15:23.518223: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:15:23.518296: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:15:23.518522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518829: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518897: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.518967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.519093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.519165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.519275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.519328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.519444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.520255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:15:23.520343: Inverter 0 count register writes 0
2026-08-16 23:15:23.549882: Total inverter register writes now 844
2026-08-16 23:15:23.598197: Info: Completed run status Demand
2026-08-16 23:15:23.608379: Info: record_status Demand
2026-08-16 23:15:23.642643: Saved current settings to /config/predbat_config.json
2026-08-16 23:15:23.642873: Compare, best tariff: current metric 318.25p
2026-08-16 23:15:49.008265: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0060 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 23:16:03.801492: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:16:03.801894: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:16:03.801960: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:16:03.802195: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:16:03.802354: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:16:03.802414: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:16:03.802463: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:16:19.023177: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-16 23:16:47.107762: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 23:17:15.767907: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 23:17:43.529995: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-16 23:18:10.619027: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0056 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-16 23:18:15.550973: Successfully loaded apps.yaml from apps.yaml
2026-08-16 23:18:18.399062: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:18:18.399658: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:18:18.399912: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:18:18.400314: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:18:18.400524: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:18:18.400726: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:18:18.400852: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:18:38.888178: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0060 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 23:19:08.218834: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0016 kWh ema_combined=0.0014 kWh
2026-08-16 23:19:08.220193: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 23:19:08.220360: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-16 23:19:09.801801: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=-0.0000 kWh (-0.0%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-16 23:19:09.807972: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0022 kWh
2026-08-16 23:19:09.918502: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-16 23:19:09.918663: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 23:19:10.497512: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-16 23:19:15.351798: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-16 23:19:15.403008: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0589 std=0.0473) 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-16 23:19:15.481060: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 23:19:15.495788: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 23:19:15.539658: ML Predictor: Baseline (pre-finetune) val_mae=0.0045 kWh val_bias=-0.0008 kWh
2026-08-16 23:19:43.048446: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0054 kWh val_bias=+0.0022 kWh (+2.5%) combined=0.0044 kWh ema_combined=0.0044 kWh
2026-08-16 23:20:00.325210: --------------- PredBat - update at 2026-08-16 23:20:00+01:00 with clock skew 0 minutes, minutes now 1400
2026-08-16 23:20:00.326160: Saved current settings to /config/predbat_config.json
2026-08-16 23:20:00.326293: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-16 23:20:00.326416: 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-16 23:20:00.326503: 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-16 23:20:00.359406: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:20:00.359692: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:20:00.359912: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:20:00.360560: 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-16 23:20:00.360728: Predbat mode is set to Control charge & discharge
2026-08-16 23:20:00.686485: Found 21602 load_today datapoints going back 27 days
2026-08-16 23:20:00.686722: Using load_power data to fill gaps in load_today data
2026-08-16 23:20:02.139749: Processing 721 30-minute periods for power integration
2026-08-16 23:20:02.519423: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:20:02.519582: Car charging hold False, threshold 6.0kWh
2026-08-16 23:20:02.519653: Current data so far today: load 11.15kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:20:02.554670: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:20:02.555212: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:20:02.556190: Standing charge is set to 46.63p
2026-08-16 23:20:02.669977: 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-16 23:20:02.670654: 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-16 23:20:02.671671: 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-16 23:20:02.672228: 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-16 23:20:02.672604: 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-16 23:20:02.673222: 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-16 23:20:02.673536: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.673679: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.673782: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.673874: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.673962: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.674174: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.674365: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.674450: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.674756: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:20:02.674956: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:20:02.681962: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:20:02.682463: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:20:02.763007: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:20:02.774352: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:20:02.777710: High export rate found rates in range 99p to -99p
2026-08-16 23:20:02.886648: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:20:02.886795: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:20:02.886870: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:20:02.914053: Battery level now 8.8kWh, -1hr ago 9.26kWh, at midnight 12.21kWh, battery value change in the last hour -3.19p, change today -23.42p, rate_forward 6.87p
2026-08-16 23:20:02.914659: 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-16 23:20:03.024650: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:20:03.024887: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:20:03.263121: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:20:03.296404: Today's load divergence 72.48%, in-day adjustment 74.11%, damping 0.95x, yesterday 82.97% today 73.86% blend 2.78%
2026-08-16 23:20:03.296606: Today's predicted so far 14.38kWh with 0.0kWh car/iBoost excluded, 6.16kWh import ignored, and 14.38kWh forecast extra.
2026-08-16 23:20:03.296685: Today's actual load so far 11.1kWh with 0.0kWh car/iBoost excluded, and 6.16kWh import ignored.
2026-08-16 23:20:03.339236: Inverter 0: Type SK Sunsynk
2026-08-16 23:20:03.339449: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:20:03.339681: Reserve min: 7%, battery_min: 7%
2026-08-16 23:20:03.339886: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:20:03.340221: Inverter 0 SoC: 8.76kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 531W, current battery voltage 51.2V, grid power -55W, load power 587W, PV Power 0W
2026-08-16 23:20:03.340403: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:20:03.340501: Inverter 0 scheduled charge enable is True
2026-08-16 23:20:03.340552: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:20:03.340683: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:20:03.340818: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:20:03.340858: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:20:03.340897: Inverter 0 scheduled discharge enable is False
2026-08-16 23:20:03.341057: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:20:03.341103: Inverter 0 discharge windows currently []
2026-08-16 23:20:03.341127: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:20:03.341145: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:20:03.341245: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:20:03.425998: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:20:03.426117: Plan was last updated on 2026-08-16 23:15:00+01:00 and is now 5.0 minutes old
2026-08-16 23:20:03.426364: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:20:03.426425: Best export window [  ]
2026-08-16 23:20:03.427306: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:20:03.430657: Load divergence over 8.0 hours mean 515.47W, min 260.4W, max 1047.6W, std dev 208.71W, divergence 20.24%
2026-08-16 23:20:03.451544: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:20:03.451701: LoadML is_calculating True
2026-08-16 23:20:03.451731: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:20:03.492584: predict base end_record 08-17 23:35:00, final soc 1.12kWh, metric 644.35p, metric_keep 202.98kWh, min_soc 1.12kWh @ 08-17 10:30:00, load 27.15kWh, PV 0.0kWh
2026-08-16 23:20:03.722285: Battery has 11.17 hours left - now at 8.76kWh
2026-08-16 23:20:03.854723: predict base10 end_record 08-17 23:35:00, final soc 1.12kWh, metric 669.93p, metric_keep 211.67kWh, min_soc 1.12kWh @ 08-17 10:00:00, load 27.91kWh, PV 0.0kWh
2026-08-16 23:20:03.961098: predict best10 end_record 08-17 23:35:00, final soc 1.8kWh, metric 435.95p, metric_keep 2.17kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 27.91kWh, PV 0.0kWh
2026-08-16 23:20:04.055199: predict best end_record 08-17 23:35:00, final soc 2.43kWh, metric 435.26p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.15kWh, PV 0.0kWh
2026-08-16 23:20:04.055309: Saving plan best values to HA entities
2026-08-16 23:20:04.405047: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:20:04.413500: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:20:04.436320: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.01kWh, house 0.0kWh, export 0.0kWh, metric 435.26p, metric10 435.95p
2026-08-16 23:20:04.625957: Marginal costs baseline metric (no standing charge): 388.6292
2026-08-16 23:20:04.986918: Marginal energy costs matrix computed: min=1.33 max=30.11
2026-08-16 23:20:05.095825: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1400, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:20:05.096893: - Your estimated bill for today is £3.24 and tomorrow is £1.32
2026-08-16 23:20:05.097075: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:20:05.097328: - The battery is currently at 55% and is in eco mode for the next 10 minutes.
2026-08-16 23:20:05.097459: - For the next 48 hours there will be no solar generation.
2026-08-16 23:20:05.097590: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:20:05.097725: - Your next charge slot will be in 10 minutes where import rates will be cheap (8.0p).
2026-08-16 23:20:05.097854: 
2026-08-16 23:20:05.169921: Plan calculation took 1.74 seconds
2026-08-16 23:20:05.186172: No high rate period found
2026-08-16 23:20:05.311597: Import threshold used for optimisation was 8.0p
2026-08-16 23:20:05.433287: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:20:05.441033: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:20:05.441168: Inverter 0 configuring charge window now (now 08-16 23:20:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:20:05.441285: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:20:05.441438: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:20:05.441748: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:20:05.441835: No export window planned
2026-08-16 23:20:05.441959: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:20:05.442000: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:20:05.442138: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:20:05.442294: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:20:05.442338: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:20:05.442385: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:20:05.442465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.442955: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:20:05.443238: Inverter 0 count register writes 0
2026-08-16 23:20:05.465507: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:20:05.473443: Total inverter register writes now 844
2026-08-16 23:20:05.522528: Info: Completed run status Demand
2026-08-16 23:20:05.535815: Info: record_status Demand
2026-08-16 23:20:05.566952: Saved current settings to /config/predbat_config.json
2026-08-16 23:20:05.567336: Compare, best tariff: current metric 318.25p
2026-08-16 23:20:12.024055: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0054 kWh val_bias=+0.0015 kWh (+1.7%) combined=0.0044 kWh ema_combined=0.0044 kWh
2026-08-16 23:20:41.839714: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0106 val_mae=0.0058 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0030 kWh ema_combined=0.0039 kWh
2026-08-16 23:20:48.829753: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:20:48.830066: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:20:48.830119: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:20:48.830285: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:20:48.830330: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:20:48.830356: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:20:48.830379: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:21:09.441491: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0136 val_mae=0.0061 kWh val_bias=-0.0027 kWh (-3.0%) combined=0.0053 kWh ema_combined=0.0044 kWh
2026-08-16 23:21:37.096249: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0166 val_mae=0.0047 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0030 kWh ema_combined=0.0039 kWh
2026-08-16 23:22:05.884528: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0131 val_mae=0.0047 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0030 kWh ema_combined=0.0037 kWh
2026-08-16 23:22:33.599361: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0103 val_mae=0.0049 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0026 kWh ema_combined=0.0034 kWh
2026-08-16 23:23:03.156295: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0045 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0028 kWh ema_combined=0.0032 kWh
2026-08-16 23:23:03.400508: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:23:03.400811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:23:03.400859: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:23:03.401033: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:23:03.401080: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:23:03.401102: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:23:03.401203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:23:29.164857: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0093 val_mae=0.0047 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0024 kWh ema_combined=0.0030 kWh
2026-08-16 23:23:56.860777: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0048 kWh val_bias=+0.0013 kWh (+1.5%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-16 23:24:24.971999: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0095 val_mae=0.0045 kWh val_bias=-0.0023 kWh (-2.6%) combined=0.0036 kWh ema_combined=0.0032 kWh
2026-08-16 23:24:53.611673: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0096 val_mae=0.0038 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-16 23:25:00.835642: --------------- PredBat - update at 2026-08-16 23:25:00+01:00 with clock skew 0 minutes, minutes now 1405
2026-08-16 23:25:00.836644: Saved current settings to /config/predbat_config.json
2026-08-16 23:25:00.836780: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-16 23:25:00.837002: 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-16 23:25:00.837180: 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-16 23:25:00.873369: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:25:00.873707: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:25:00.874010: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:25:00.874712: 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-16 23:25:00.874951: Predbat mode is set to Control charge & discharge
2026-08-16 23:25:01.259187: Found 21602 load_today datapoints going back 27 days
2026-08-16 23:25:01.259617: Using load_power data to fill gaps in load_today data
2026-08-16 23:25:02.263672: Processing 721 30-minute periods for power integration
2026-08-16 23:25:02.430389: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:25:02.430628: Car charging hold False, threshold 6.0kWh
2026-08-16 23:25:02.430766: Current data so far today: load 11.2kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:25:02.461112: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:25:02.478079: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:25:02.479127: Standing charge is set to 46.63p
2026-08-16 23:25:02.640794: 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-16 23:25:02.641148: 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-16 23:25:02.641338: 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-16 23:25:02.641498: 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-16 23:25:02.641804: 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-16 23:25:02.641975: 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-16 23:25:02.642152: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642232: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642308: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642383: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642453: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642526: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642916: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.642993: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.643149: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:25:02.643199: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:25:02.647818: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:25:02.649026: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:25:02.684326: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:25:02.684549: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:25:02.685983: High export rate found rates in range 99p to -99p
2026-08-16 23:25:02.718899: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:25:02.719025: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:25:02.719080: Car 0 charging plan is: [{'start': 1470, 'end': 1710, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:25:02.740221: Battery level now 8.76kWh, -1hr ago 9.12kWh, at midnight 12.21kWh, battery value change in the last hour -2.47p, change today -23.7p, rate_forward 6.87p
2026-08-16 23:25:02.740544: 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-16 23:25:02.867768: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:25:02.867975: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:25:03.008233: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:25:03.041465: Today's load divergence 72.22%, in-day adjustment 73.83%, damping 0.95x, yesterday 82.97% today 73.61% blend 2.43%
2026-08-16 23:25:03.041677: Today's predicted so far 14.46kWh with 0.0kWh car/iBoost excluded, 6.12kWh import ignored, and 14.46kWh forecast extra.
2026-08-16 23:25:03.041721: Today's actual load so far 11.16kWh with 0.0kWh car/iBoost excluded, and 6.12kWh import ignored.
2026-08-16 23:25:03.100185: Inverter 0: Type SK Sunsynk
2026-08-16 23:25:03.100297: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:25:03.100654: Reserve min: 7%, battery_min: 7%
2026-08-16 23:25:03.100808: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:25:03.101285: Inverter 0 SoC: 8.76kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 395W, current battery voltage 51.2V, grid power -54W, load power 451W, PV Power 0W
2026-08-16 23:25:03.101604: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:25:03.101811: Inverter 0 scheduled charge enable is True
2026-08-16 23:25:03.101920: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:25:03.102151: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:25:03.102420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:25:03.102514: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:25:03.102642: Inverter 0 scheduled discharge enable is False
2026-08-16 23:25:03.102959: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:25:03.103024: Inverter 0 discharge windows currently []
2026-08-16 23:25:03.103110: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:25:03.103191: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:25:03.103270: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:25:03.243905: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:25:03.244042: Plan was last updated on 2026-08-16 23:15:00+01:00 and is now 10.0 minutes old
2026-08-16 23:25:03.244329: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:25:03.244385: Best export window [  ]
2026-08-16 23:25:03.245711: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:25:03.250715: Load divergence over 8.0 hours mean 510.69W, min 260.4W, max 1060.8W, std dev 208.32W, divergence 20.4%
2026-08-16 23:25:03.316285: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:25:03.316438: LoadML is_calculating True
2026-08-16 23:25:03.316470: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:25:03.385060: predict base end_record 08-17 23:40:00, final soc 1.12kWh, metric 642.44p, metric_keep 201.02kWh, min_soc 1.12kWh @ 08-17 10:35:00, load 27.23kWh, PV 0.0kWh
2026-08-16 23:25:03.641238: Battery has 11.17 hours left - now at 8.76kWh
2026-08-16 23:25:03.748389: predict base10 end_record 08-17 23:40:00, final soc 1.12kWh, metric 667.93p, metric_keep 209.25kWh, min_soc 1.12kWh @ 08-17 10:10:00, load 27.99kWh, PV 0.0kWh
2026-08-16 23:25:03.993539: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 438.84p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 27.99kWh, PV 0.0kWh
2026-08-16 23:25:04.116461: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 438.87p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.23kWh, PV 0.0kWh
2026-08-16 23:25:04.123364: Saving plan best values to HA entities
2026-08-16 23:25:04.473129: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:25:04.482745: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:25:04.490469: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 11.47kWh, house 0.0kWh, export 0.0kWh, metric 438.87p, metric10 438.84p
2026-08-16 23:25:04.740234: Marginal costs baseline metric (no standing charge): 392.2367
2026-08-16 23:25:05.209553: Marginal energy costs matrix computed: min=2.6 max=30.13
2026-08-16 23:25:05.670283: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1405, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:25:05.671265: - Your estimated bill for today is £3.24 and tomorrow is £1.31
2026-08-16 23:25:05.672624: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:25:05.672765: - The battery is currently at 55% and is in eco mode for the next 5 minutes.
2026-08-16 23:25:05.672845: - For the next 48 hours there will be no solar generation.
2026-08-16 23:25:05.672880: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:25:05.673099: - Your next charge slot will be in 5 minutes where import rates will be cheap (8.0p).
2026-08-16 23:25:05.673243: 
2026-08-16 23:25:05.719903: Plan calculation took 2.48 seconds
2026-08-16 23:25:05.723881: No high rate period found
2026-08-16 23:25:05.954711: Import threshold used for optimisation was 8.0p
2026-08-16 23:25:06.115293: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:25:06.146635: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-16 23:25:06.146906: Inverter 0 configuring charge window now (now 08-16 23:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:25:06.147149: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:25:06.147431: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:25:06.147810: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:25:06.147961: No export window planned
2026-08-16 23:25:06.148238: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:25:06.148295: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:25:06.148535: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:25:06.149002: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:25:06.149210: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:25:06.149457: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:25:06.149757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.149968: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.150110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.150286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.150421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.150608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.150787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151562: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:06.151889: Inverter 0 count register writes 0
2026-08-16 23:25:06.204026: 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-16 23:25:06.204458: Recompute is saving previous plan...
2026-08-16 23:25:06.206191: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 7%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 7%, 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% ]
2026-08-16 23:25:06.206425: Best export window [  ]
2026-08-16 23:25:06.207941: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:25:06.212794: Load divergence over 8.0 hours mean 510.69W, min 260.4W, max 1060.8W, std dev 208.32W, divergence 20.4%
2026-08-16 23:25:06.267930: Calculating data from yesterday for savings calculation
2026-08-16 23:25:06.283438: 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-16 23:25:06.331015: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 23:25:06.346379: predict yesterday10 end_record 08-17 00:00:00, final soc 10.15kWh, metric 232.7p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 23:25:06.365005: predict yesterday end_record 08-17 00:00:00, final soc 10.54kWh, metric 236.04p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 23:25:06.396221: Yesterday: Predbat disabled was £2.36 (adjusted £1.64) vs £5.77 (adjusted £4.93), saving £-3.41 (adjusted £-3.29) with import 23.68kWh, export 0.0kWh, battery_cycle 25.29kWh, start_soc 1.12kWh,  final_soc 10.54kWh and battery_value 72.45kWh
2026-08-16 23:25:06.549380: predict yesterday end_record 08-17 00:00:00, final soc 0.0kWh, metric 332.93p, metric_keep 639.19kWh, min_soc 0kWh @ 08-16 00:00:00, load 12.45kWh, PV 0.0kWh
2026-08-16 23:25:06.565326: Yesterday: No Battery/PV system cost predicted was £3.33 (adjusted £3.33) vs £5.77 (adjusted £4.93), saving £-2.44 (adjusted £-1.6) with import 12.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-16 23:25:06.598716: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:25:06.598998: LoadML is_calculating True
2026-08-16 23:25:06.599121: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:25:06.610002: 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-16 23:25:06.625473: Optimise levels pass started at 2026-08-16 23:25:06
2026-08-16 23:25:06.625721: Optimise all windows, total charge 25 export 1
2026-08-16 23:25:08.712224: >> Region optimisation pass width 960 gives best_metric 511.2p, best_cost 524.14p, best_cycle 40.98kWh, best_import 27.95kWh
2026-08-16 23:25:08.964368: >> Region optimisation pass width 480 gives best_metric 511.2p, best_cost 524.14p, best_cycle 40.98kWh, best_import 27.95kWh
2026-08-16 23:25:09.542298: >> Region optimisation pass width 240 gives best_metric 511.2p, best_cost 524.14p, best_cycle 40.98kWh, best_import 27.95kWh
2026-08-16 23:25:11.053908: >> Region optimisation pass width 120 gives best_metric 511.2p, best_cost 524.14p, best_cycle 40.98kWh, best_import 27.95kWh
2026-08-16 23:25:11.072326: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 23:25:11.072414: Optimise levels pass ended at 2026-08-16 23:25:11, duration 4.4 seconds tried 67 combinations
2026-08-16 23:25:11.072478: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 511.2p, best_keep 0kWh, best_cycle 40.98kWh, best_carbon 0kg, best_import 27.95kWh
2026-08-16 23:25:11.125416: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 23:25:19.878104: Tweak plan optimisation started metric 369.85p, cost 383.04p
2026-08-16 23:25:21.791028: Tweak optimisation finished metric 369.85p, cost 383.04p, metric_keep 0kWh, cycle 17.16kWh, carbon 0kg, import 10.32kWh, changed 8 window(s)
2026-08-16 23:25:21.822489: Swap charge optimisation started metric 369.85p, cost 383.04p, min_improvement_swap 0.1p
2026-08-16 23:25:23.024132: Swap charge optimisation finished metric 369.85p, cost 383.04p
2026-08-16 23:25:23.197515: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 84%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 84%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 84%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 84%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 23:25:23.198236: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:25:23.198631: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:25:23.198952: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:25:23.257567: Previous plan best metric is 370.52 (cost 383.83) and new plan best metric is 369.85 (cost 383.04)
2026-08-16 23:25:23.257957: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 23:25:23.258276: Plan valid is now true after recompute was False
2026-08-16 23:25:23.294146: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 640.7p, metric_keep 200.43kWh, min_soc 1.12kWh @ 08-17 10:35:00, load 27.01kWh, PV 0.0kWh
2026-08-16 23:25:23.492436: Battery has 11.17 hours left - now at 8.76kWh
2026-08-16 23:25:23.596355: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 666.11p, metric_keep 208.66kWh, min_soc 1.12kWh @ 08-17 10:10:00, load 27.76kWh, PV 0.0kWh
2026-08-16 23:25:23.775965: predict best10 end_record 08-17 23:30:00, final soc 1.47kWh, metric 431.46p, metric_keep 2.1kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 27.76kWh, PV 0.0kWh
2026-08-16 23:25:23.934175: predict best end_record 08-17 23:30:00, final soc 2.04kWh, metric 430.46p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.01kWh, PV 0.0kWh
2026-08-16 23:25:23.938146: Saving plan best values to HA entities
2026-08-16 23:25:24.199421: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:25:24.207487: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:25:24.223031: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.41kWh, house 0.0kWh, export 0.0kWh, metric 430.46p, metric10 431.46p
2026-08-16 23:25:24.417650: Marginal costs baseline metric (no standing charge): 383.8268
2026-08-16 23:25:24.909842: Marginal energy costs matrix computed: min=2.6 max=30.13
2026-08-16 23:25:25.065964: 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': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1405, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:25:25.066535: - Your estimated bill for today is £3.24 and tomorrow is £1.31
2026-08-16 23:25:25.066575: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-16 23:25:25.066610: - The battery is currently at 55% and is in eco mode for the next 5 minutes.
2026-08-16 23:25:25.066626: - For the next 48 hours there will be no solar generation.
2026-08-16 23:25:25.066640: - You will reach a minimum of 13% battery in 24 hours.
2026-08-16 23:25:25.066654: - Your next charge slot will be in 5 minutes where import rates will be cheap (8.0p).
2026-08-16 23:25:25.066670: 
2026-08-16 23:25:25.098493: Plan calculation took 18.89 seconds
2026-08-16 23:25:25.098939: Inverter 0: Type SK Sunsynk
2026-08-16 23:25:25.099193: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:25:25.099465: Reserve min: 7%, battery_min: 7%
2026-08-16 23:25:25.099620: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:25:25.099968: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 400W, current battery voltage 51.2V, grid power -54W, load power 456W, PV Power 0W
2026-08-16 23:25:25.100201: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:25:25.100457: Inverter 0 scheduled charge enable is True
2026-08-16 23:25:25.101328: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:25:25.102103: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:25:25.102328: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:25:25.102381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:25:25.102432: Inverter 0 scheduled discharge enable is False
2026-08-16 23:25:25.102746: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:25:25.103369: Inverter 0 discharge windows currently []
2026-08-16 23:25:25.103422: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:25:25.103455: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:25:25.103486: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:25:25.211880: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-16 23:25:25.212028: Inverter 0 configuring charge window now (now 08-16 23:25:00 target set_window_minutes 30 charge start time 08-16 23:30:00
2026-08-16 23:25:25.212121: IOG action latency: 0.0 seconds from slot start
2026-08-16 23:25:25.212257: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:25:25.212444: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:25:25.212519: No export window planned
2026-08-16 23:25:25.212638: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:25:25.212678: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:25:25.212819: Adjust demand (idle) time computed is 13:35:00-23:30:00
2026-08-16 23:25:25.212936: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-16 23:25:25.213016: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-16 23:25:25.213065: Inverter 0 Current Target SoC is 7%, already at target
2026-08-16 23:25:25.213150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213476: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.213984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:25:25.214169: Inverter 0 count register writes 0
2026-08-16 23:25:25.242406: Total inverter register writes now 844
2026-08-16 23:25:25.284599: Info: Completed run status Demand
2026-08-16 23:25:25.292626: Info: record_status Demand
2026-08-16 23:25:25.301697: Saved current settings to /config/predbat_config.json
2026-08-16 23:25:25.301981: Compare, best tariff: current metric 318.25p
2026-08-16 23:25:36.617666: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0018 kWh ema_combined=0.0026 kWh
2026-08-16 23:26:03.461527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:26:03.461874: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:26:03.461929: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:26:03.462099: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:26:03.462148: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:26:03.462175: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:26:03.462291: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:26:03.971754: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0077 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-16 23:26:29.930498: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-16 23:26:57.516668: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0067 val_mae=0.0039 kWh val_bias=-0.0024 kWh (-2.7%) combined=0.0034 kWh ema_combined=0.0026 kWh
2026-08-16 23:27:25.751994: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0073 val_mae=0.0045 kWh val_bias=-0.0024 kWh (-2.7%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-16 23:27:52.884604: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-16 23:28:03.833644: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:28:03.833979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:28:03.834033: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:28:03.834201: Inverter 0 idle time is 08-16 13:35:00-08-16 23:30:00
2026-08-16 23:28:03.834250: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:28:03.834375: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:28:03.834421: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:28:21.348057: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0070 val_mae=0.0032 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-16 23:28:48.484174: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0064 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0023 kWh
2026-08-16 23:29:18.289895: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-16 23:29:45.624076: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0019 kWh
2026-08-16 23:30:00.266764: --------------- PredBat - update at 2026-08-16 23:30:00+01:00 with clock skew 0 minutes, minutes now 1410
2026-08-16 23:30:00.268314: Saved current settings to /config/predbat_config.json
2026-08-16 23:30:00.268663: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-16 23:30:00.268877: 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-16 23:30:00.269113: 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-16 23:30:00.314280: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:30:00.314705: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:30:00.315103: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:30:00.315996: 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-16 23:30:00.316305: Predbat mode is set to Control charge & discharge
2026-08-16 23:30:00.727707: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:30:00.727996: Using load_power data to fill gaps in load_today data
2026-08-16 23:30:02.502780: Processing 721 30-minute periods for power integration
2026-08-16 23:30:02.768524: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:30:02.768870: Car charging hold False, threshold 6.0kWh
2026-08-16 23:30:02.769079: Current data so far today: load 11.25kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:30:02.799919: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:30:02.800212: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:30:02.801387: Standing charge is set to 46.63p
2026-08-16 23:30:03.061558: 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-16 23:30:03.061832: 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-16 23:30:03.062025: 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-16 23:30:03.062214: 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-16 23:30:03.062397: 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-16 23:30:03.062588: 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-16 23:30:03.062772: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.062902: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.062992: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063078: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063162: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063251: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063336: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063414: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063602: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:30:03.063666: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:30:03.077040: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:30:03.077631: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:30:03.129957: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:30:03.130220: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:30:03.131649: High export rate found rates in range 99p to -99p
2026-08-16 23:30:03.166709: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:30:03.167127: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:30:03.167209: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:30:03.187724: Battery level now 8.76kWh, -1hr ago 9.12kWh, at midnight 12.21kWh, battery value change in the last hour -2.47p, change today -23.7p, rate_forward 6.87p
2026-08-16 23:30:03.188275: 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-16 23:30:03.307876: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:30:03.308225: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:30:03.542323: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:30:03.624572: Today's load divergence 71.4%, in-day adjustment 73.04%, damping 0.95x, yesterday 82.97% today 72.83% blend 2.08%
2026-08-16 23:30:03.624700: Today's predicted so far 14.64kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 14.64kWh forecast extra.
2026-08-16 23:30:03.624736: Today's actual load so far 11.26kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 23:30:03.742148: 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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-16 23:30:03.742954: Sensor changes require a replan, will recompute the plan
2026-08-16 23:30:03.743173: Inverter 0: Type SK Sunsynk
2026-08-16 23:30:03.743223: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:30:03.743480: Reserve min: 7%, battery_min: 7%
2026-08-16 23:30:03.743649: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:30:03.743980: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 429W, current battery voltage 51.2V, grid power -54W, load power 484W, PV Power 0W
2026-08-16 23:30:03.744200: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:30:03.744336: Inverter 0 scheduled charge enable is True
2026-08-16 23:30:03.744392: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:30:03.744537: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:30:03.744730: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:30:03.744777: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:30:03.744864: Inverter 0 scheduled discharge enable is False
2026-08-16 23:30:03.745159: Inverter 0 idle time is 08-17 13:35:00-08-17 23:30:00
2026-08-16 23:30:03.745215: Inverter 0 discharge windows currently []
2026-08-16 23:30:03.745275: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:30:03.745360: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:30:03.745470: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:30:03.890777: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:30:03.890990: Will recompute the plan as it is invalid
2026-08-16 23:30:03.891148: Recompute is saving previous plan...
2026-08-16 23:30:03.892157: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 7%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 7%, 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% ]
2026-08-16 23:30:03.892239: Best export window [  ]
2026-08-16 23:30:03.893237: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:30:03.896413: Load divergence over 8.0 hours mean 502.9W, min 262.2W, max 1042.8W, std dev 182.26W, divergence 18.12%
2026-08-16 23:30:03.956609: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:30:03.956916: LoadML is_calculating True
2026-08-16 23:30:03.957269: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:30:03.968235: 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-16 23:30:03.969582: Optimise levels pass started at 2026-08-16 23:30:03
2026-08-16 23:30:03.969746: Optimise all windows, total charge 25 export 1
2026-08-16 23:30:06.792732: >> Region optimisation pass width 960 gives best_metric 512.43p, best_cost 524.71p, best_cycle 41.03kWh, best_import 28.02kWh
2026-08-16 23:30:07.213154: >> Region optimisation pass width 480 gives best_metric 512.43p, best_cost 524.71p, best_cycle 41.03kWh, best_import 28.02kWh
2026-08-16 23:30:07.774176: >> Region optimisation pass width 240 gives best_metric 512.43p, best_cost 524.71p, best_cycle 41.03kWh, best_import 28.02kWh
2026-08-16 23:30:09.226431: >> Region optimisation pass width 120 gives best_metric 512.43p, best_cost 524.71p, best_cycle 41.03kWh, best_import 28.02kWh
2026-08-16 23:30:09.226625: Calculated end_record as 08-17 23:30:00 based on best_price 8.0p, next_charge_start 08-16 23:30:00, max_windows 13
2026-08-16 23:30:09.226686: Optimise levels pass ended at 2026-08-16 23:30:09, duration 5.3 seconds tried 67 combinations
2026-08-16 23:30:09.226723: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 512.43p, best_keep 0kWh, best_cycle 41.03kWh, best_carbon 0kg, best_import 28.02kWh
2026-08-16 23:30:09.243716: Starting detailed optimisation end_record 08-17 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.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]kWh and export limits []kWh
2026-08-16 23:30:18.822409: Tweak plan optimisation started metric 370.35p, cost 383.56p
2026-08-16 23:30:20.762418: Tweak optimisation finished metric 370.35p, cost 383.56p, metric_keep 0kWh, cycle 17.12kWh, carbon 0kg, import 10.38kWh, changed 8 window(s)
2026-08-16 23:30:20.787078: Swap charge optimisation started metric 370.35p, cost 383.56p, min_improvement_swap 0.1p
2026-08-16 23:30:22.298682: Swap charge optimisation finished metric 370.35p, cost 383.56p
2026-08-16 23:30:22.629094: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 84%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 84%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 84%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 84%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 84%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 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% ] reserve 1.12
2026-08-16 23:30:22.630098: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:30:22.630316: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:30:22.630463: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 84%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:30:22.671102: Previous plan best metric is 370.93 (cost 384.24) and new plan best metric is 370.35 (cost 383.56)
2026-08-16 23:30:22.673324: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 23:30:22.673483: Plan valid is now true after recompute was False
2026-08-16 23:30:22.705889: predict base end_record 08-17 23:30:00, final soc 1.12kWh, metric 642.59p, metric_keep 201.92kWh, min_soc 1.12kWh @ 08-17 10:35:00, load 27.01kWh, PV 0.0kWh
2026-08-16 23:30:22.983950: Battery has 11.08 hours left - now at 8.64kWh
2026-08-16 23:30:23.065251: predict base10 end_record 08-17 23:30:00, final soc 1.12kWh, metric 667.98p, metric_keep 210.31kWh, min_soc 1.12kWh @ 08-17 10:05:00, load 27.76kWh, PV 0.0kWh
2026-08-16 23:30:23.259653: predict best10 end_record 08-17 23:30:00, final soc 1.48kWh, metric 431.96p, metric_keep 2.1kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 27.76kWh, PV 0.0kWh
2026-08-16 23:30:23.435122: predict best end_record 08-17 23:30:00, final soc 2.05kWh, metric 430.88p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.01kWh, PV 0.0kWh
2026-08-16 23:30:23.435238: Saving plan best values to HA entities
2026-08-16 23:30:23.783123: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:30:23.792817: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:30:23.803206: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.47kWh, house 0.0kWh, export 0.0kWh, metric 430.88p, metric10 431.96p
2026-08-16 23:30:23.903355: Marginal costs baseline metric (no standing charge): 384.2415
2026-08-16 23:30:24.254354: Marginal energy costs matrix computed: min=4.63 max=30.11
2026-08-16 23:30:24.410580: Rate array import [{'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1410, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-16 23:30:24.418486: - Your estimated bill for today is £3.24 and tomorrow is £1.32
2026-08-16 23:30:24.418790: - Import rates are cheap (8.0p) for the next 6 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:30:24.418920: - The battery is currently at 54% and is charging to 77% for the next 1 hour.
2026-08-16 23:30:24.419034: - For the next 48 hours there will be no solar generation.
2026-08-16 23:30:24.419125: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:30:24.419217: 
2026-08-16 23:30:24.483612: Plan calculation took 20.59 seconds
2026-08-16 23:30:24.568498: Saved plan to storage
2026-08-16 23:30:24.572768: No high rate period found
2026-08-16 23:30:24.702158: Import threshold used for optimisation was 8.0p
2026-08-16 23:30:24.818567: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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]
2026-08-16 23:30:24.830274: Inverter 0: Type SK Sunsynk
2026-08-16 23:30:24.830502: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:30:24.830900: Reserve min: 7%, battery_min: 7%
2026-08-16 23:30:24.831086: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:30:24.831496: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 429W, current battery voltage 51.2V, grid power -54W, load power 484W, PV Power 0W
2026-08-16 23:30:24.831813: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:30:24.832025: Inverter 0 scheduled charge enable is True
2026-08-16 23:30:24.832150: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}]
2026-08-16 23:30:24.832495: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 7.0%, power 5.0kW
2026-08-16 23:30:24.832803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:30:24.832972: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:30:24.833102: Inverter 0 scheduled discharge enable is False
2026-08-16 23:30:24.833413: Inverter 0 idle time is 08-17 13:35:00-08-17 23:30:00
2026-08-16 23:30:24.833565: Inverter 0 discharge windows currently []
2026-08-16 23:30:24.833689: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:30:24.833835: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:30:24.833952: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:30:24.915858: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:30:24.916134: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-16 23:30:24.916384: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:30:24.916689: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:30:24.917017: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:30:24.917201: Inverter 0 set new demand (idle) start time to 05:30:00 was 13:35:00
2026-08-16 23:30:29.444650: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-16 23:30:29.925970: Inverter 0 write_and_poll_value: Wrote 05:30:00 to idle_start_time, successfully now 05:30:00
2026-08-16 23:30:29.926236: Inverter 0 set new demand (idle) end time to 23:59:00 was 23:30:00
2026-08-16 23:30:34.937077: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-16 23:30:34.938020: No export window planned
2026-08-16 23:30:34.938339: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:30:34.938490: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:30:34.938834: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:30:34.939056: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:30:34.939217: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:30:34.939379: Inverter 0 Current charge limit is 7% and new target is 100%
2026-08-16 23:30:40.012630: Inverter 0 write_and_poll_value: Wrote 100 to charge_limit, successfully now 100.0
2026-08-16 23:30:40.013175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.013402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.013968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.014149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.014352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.014611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.014776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.015057: 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-16 23:30:40.052422: 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-16 23:30:40.169236: 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-16 23:30:40.273671: 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-16 23:30:40.381823: 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-16 23:30:40.464531: 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-16 23:30:40.577872: 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-16 23:30:40.692695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.693067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.694289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.694448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.694619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.694768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.694912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:30:40.695044: Inverter 0 count register writes 1
2026-08-16 23:30:40.752764: Total inverter register writes now 845
2026-08-16 23:30:40.856211: Info: Completed run status Charging
2026-08-16 23:30:41.187652: Info: record_status Charging target 54%-100.0%
2026-08-16 23:30:41.196151: Saved current settings to /config/predbat_config.json
2026-08-16 23:30:41.196392: Compare, best tariff: current metric 318.25p
2026-08-16 23:30:56.037556: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0030 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0025 kWh ema_combined=0.0019 kWh
2026-08-16 23:31:18.352711: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:31:18.353484: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:31:18.353729: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:31:18.354197: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:31:18.354382: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:31:18.354586: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:31:18.354744: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:31:25.858078: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-16 23:31:55.063664: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0061 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-16 23:32:21.891773: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-16 23:32:50.332093: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-16 23:33:18.157752: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 23:33:18.756222: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:33:18.756771: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:33:18.757429: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:33:18.757796: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:33:18.757961: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:33:18.758094: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:33:18.758220: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:33:45.755647: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0015 kWh
2026-08-16 23:33:45.756910: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-16 23:33:45.757182: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-16 23:33:54.218637: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0004 kWh (-0.4%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-16 23:33:54.237694: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0022 kWh
2026-08-16 23:33:54.339720: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-16 23:33:54.339871: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 23:33:54.964364: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-16 23:34:00.619269: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-16 23:34:00.680082: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0590 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.6270 std=4.5032) import_rate(mean=16.8678 std=8.3496) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-16 23:34:00.772028: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 23:34:00.790929: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 23:34:00.859648: ML Predictor: Baseline (pre-finetune) val_mae=0.0037 kWh val_bias=+0.0001 kWh
2026-08-16 23:34:28.903334: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0049 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 23:34:54.836068: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0116 val_mae=0.0062 kWh val_bias=-0.0041 kWh (-5.2%) combined=0.0050 kWh ema_combined=0.0040 kWh
2026-08-16 23:35:00.845426: --------------- PredBat - update at 2026-08-16 23:35:00+01:00 with clock skew 0 minutes, minutes now 1415
2026-08-16 23:35:00.847303: Saved current settings to /config/predbat_config.json
2026-08-16 23:35:00.847547: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-16 23:35:00.847763: 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-16 23:35:00.847939: 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-16 23:35:00.895024: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:35:00.895321: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:35:00.895608: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:35:00.896249: 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-16 23:35:00.896471: Predbat mode is set to Control charge & discharge
2026-08-16 23:35:01.360195: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:35:01.360932: Using load_power data to fill gaps in load_today data
2026-08-16 23:35:02.822214: Processing 721 30-minute periods for power integration
2026-08-16 23:35:02.995535: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:35:02.995787: Car charging hold False, threshold 6.0kWh
2026-08-16 23:35:02.995850: Current data so far today: load 11.3kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:35:03.020231: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:35:03.020353: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:35:03.021237: Standing charge is set to 46.63p
2026-08-16 23:35:03.129868: 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-16 23:35:03.130217: 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-16 23:35:03.130394: 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-16 23:35:03.130576: 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-16 23:35:03.130733: 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-16 23:35:03.131549: 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-16 23:35:03.131833: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.131924: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.131995: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132062: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132206: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132337: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132458: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132591: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132804: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:35:03.132901: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:35:03.137478: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:35:03.137876: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:35:03.173435: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:35:03.173692: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:35:03.174961: High export rate found rates in range 99p to -99p
2026-08-16 23:35:03.203059: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:35:03.203462: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:35:03.203623: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:35:03.224666: Battery level now 8.64kWh, -1hr ago 9.12kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -24.52p, rate_forward 6.87p
2026-08-16 23:35:03.225151: 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-16 23:35:03.333188: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 300.51p, import 253.88p, export 0.0p, carbon 0.0kg
2026-08-16 23:35:03.333605: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:35:03.552663: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:35:03.587666: Today's load divergence 71.01%, in-day adjustment 72.64%, damping 0.95x, yesterday 82.97% today 72.45% blend 1.74%
2026-08-16 23:35:03.587788: Today's predicted so far 14.79kWh with 0.0kWh car/iBoost excluded, 6.1kWh import ignored, and 14.79kWh forecast extra.
2026-08-16 23:35:03.587822: Today's actual load so far 11.37kWh with 0.0kWh car/iBoost excluded, and 6.1kWh import ignored.
2026-08-16 23:35:03.649181: Inverter 0: Type SK Sunsynk
2026-08-16 23:35:03.649700: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:35:03.649957: Reserve min: 7%, battery_min: 7%
2026-08-16 23:35:03.650168: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:35:03.650606: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power -4477W, current battery voltage 51.2V, grid power -5351W, load power 355W, PV Power 0W
2026-08-16 23:35:03.650880: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:35:03.651046: Inverter 0 scheduled charge enable is True
2026-08-16 23:35:03.651173: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:35:03.651362: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:35:03.651621: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:35:03.651682: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:35:03.651829: Inverter 0 scheduled discharge enable is False
2026-08-16 23:35:03.652075: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:35:03.652135: Inverter 0 discharge windows currently []
2026-08-16 23:35:03.652253: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:35:03.652304: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:35:03.652385: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:35:03.773074: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:35:03.773212: Plan was last updated on 2026-08-16 23:30:00+01:00 and is now 5.0 minutes old
2026-08-16 23:35:03.773529: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:35:03.773583: Best export window [  ]
2026-08-16 23:35:03.774638: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:35:03.778477: Load divergence over 8.0 hours mean 495.24W, min 271.2W, max 996.6W, std dev 178.56W, divergence 18.03%
2026-08-16 23:35:03.821207: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:35:03.821359: LoadML is_calculating True
2026-08-16 23:35:03.821388: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:35:03.877329: predict base end_record 08-17 23:35:00, final soc 4.44kWh, metric 451.15p, metric_keep 0kWh, min_soc 4.06kWh @ 08-17 23:25:00, load 27.1kWh, PV 0.0kWh
2026-08-16 23:35:04.065756: Battery has 48.0 hours left - now at 8.64kWh
2026-08-16 23:35:04.166072: predict base10 end_record 08-17 23:35:00, final soc 3.81kWh, metric 452.37p, metric_keep 0kWh, min_soc 3.49kWh @ 08-17 23:25:00, load 27.85kWh, PV 0.0kWh
2026-08-16 23:35:04.363416: predict best10 end_record 08-17 23:35:00, final soc 1.81kWh, metric 435.19p, metric_keep 2.12kWh, min_soc 1.49kWh @ 08-17 23:25:00, load 27.85kWh, PV 0.0kWh
2026-08-16 23:35:04.481151: predict best end_record 08-17 23:35:00, final soc 2.44kWh, metric 434.19p, metric_keep 0kWh, min_soc 2.06kWh @ 08-17 23:25:00, load 27.1kWh, PV 0.0kWh
2026-08-16 23:35:04.481379: Saving plan best values to HA entities
2026-08-16 23:35:04.858414: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:35:04.870232: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:35:04.885677: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.88kWh, house 0.0kWh, export 0.0kWh, metric 434.19p, metric10 435.19p
2026-08-16 23:35:05.032630: Marginal costs baseline metric (no standing charge): 387.5518
2026-08-16 23:35:05.515189: Marginal energy costs matrix computed: min=4.35 max=30.08
2026-08-16 23:35:05.684767: Rate array import [{'start': 1415, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:35:05.695181: - Your estimated bill for today is £3.20 and tomorrow is £1.35
2026-08-16 23:35:05.695243: - Import rates are cheap (8.0p) for the next 5  hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:35:05.695267: - The battery is currently at 54% and is charging to 77% for the next 55 minutes.
2026-08-16 23:35:05.695288: - For the next 48 hours there will be no solar generation.
2026-08-16 23:35:05.695318: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:35:05.695345: 
2026-08-16 23:35:05.744664: Plan calculation took 1.97 seconds
2026-08-16 23:35:05.750110: No high rate period found
2026-08-16 23:35:05.877894: Import threshold used for optimisation was 8.0p
2026-08-16 23:35:05.966604: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-16 23:35:05.976466: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:35:05.976750: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-16 23:35:05.977108: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:35:05.977421: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:35:05.977792: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:35:05.977989: No export window planned
2026-08-16 23:35:05.978238: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:35:05.978359: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:35:05.978675: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:35:05.978899: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:35:05.979056: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:35:05.979201: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:35:05.979426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.979579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.979725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.979843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.979979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980366: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980508: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980650: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980788: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.980904: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981076: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981207: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.981980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.982096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.982230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:35:05.982338: Inverter 0 count register writes 0
2026-08-16 23:35:06.006902: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:35:06.014931: Total inverter register writes now 845
2026-08-16 23:35:06.099864: Info: Completed run status Charging
2026-08-16 23:35:06.139891: Info: record_status Charging target 54%-100.0%
2026-08-16 23:35:06.160921: Saved current settings to /config/predbat_config.json
2026-08-16 23:35:06.165220: Compare, best tariff: current metric 318.25p
2026-08-16 23:35:27.246127: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0045 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0029 kWh ema_combined=0.0037 kWh
2026-08-16 23:35:49.341005: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:35:49.341607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:35:49.341754: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:35:49.342096: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:35:49.342223: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:35:49.342326: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:35:49.342437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:35:55.760766: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0118 val_mae=0.0046 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0026 kWh ema_combined=0.0034 kWh
2026-08-16 23:36:27.717406: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0113 val_mae=0.0065 kWh val_bias=-0.0052 kWh (-6.7%) combined=0.0065 kWh ema_combined=0.0043 kWh
2026-08-16 23:36:56.683640: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0124 val_mae=0.0042 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0022 kWh ema_combined=0.0037 kWh
2026-08-16 23:37:25.147697: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0129 val_mae=0.0047 kWh val_bias=-0.0017 kWh (-2.2%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-16 23:37:55.220058: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0136 val_mae=0.0035 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0021 kWh ema_combined=0.0032 kWh
2026-08-16 23:38:03.898352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:38:03.898899: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:38:03.899064: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:38:03.899373: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:38:03.899544: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:38:03.899678: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:38:03.899800: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:38:23.755005: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0101 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0022 kWh ema_combined=0.0029 kWh
2026-08-16 23:39:19.934541: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0107 val_mae=0.0037 kWh val_bias=+0.0017 kWh (+2.1%) combined=0.0030 kWh ema_combined=0.0029 kWh
2026-08-16 23:39:19.934864: ML Predictor: Early stopping at epoch 10
2026-08-16 23:39:19.936190: ML Predictor: Restored best weights from epoch with val_mae=0.0037 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-16 23:39:19.936477: ML Predictor: Training complete, final val_mae=0.0037 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-16 23:39:29.132846: ML Predictor: AR rollout over holdout: ar_mae=0.0043 kWh ar_bias=+0.0007 kWh (+0.8%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-16 23:39:29.148413: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0037 kWh
2026-08-16 23:39:29.252319: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-16 23:39:29.252451: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 23:39:30.150538: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-16 23:39:36.855684: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-16 23:39:36.922912: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0591 std=0.0475) pv(mean=0.0000 std=0.0100) temp(mean=19.6335 std=4.5092) import_rate(mean=16.8585 std=8.3678) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-16 23:39:37.030942: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 23:39:37.049034: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 23:39:37.087545: ML Predictor: Baseline (pre-finetune) val_mae=0.0050 kWh val_bias=+0.0007 kWh
2026-08-16 23:40:00.794926: --------------- PredBat - update at 2026-08-16 23:40:00+01:00 with clock skew 0 minutes, minutes now 1420
2026-08-16 23:40:00.796026: Saved current settings to /config/predbat_config.json
2026-08-16 23:40:00.796239: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-16 23:40:00.796400: 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-16 23:40:00.796716: 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-16 23:40:00.834007: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:40:00.834334: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:40:00.834654: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:40:00.835388: 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-16 23:40:00.835538: Predbat mode is set to Control charge & discharge
2026-08-16 23:40:01.352049: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:40:01.353849: Using load_power data to fill gaps in load_today data
2026-08-16 23:40:03.038282: Processing 721 30-minute periods for power integration
2026-08-16 23:40:03.454733: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:40:03.454880: Car charging hold False, threshold 6.0kWh
2026-08-16 23:40:03.454932: Current data so far today: load 11.35kWh, import 9.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:40:03.488184: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:40:03.488798: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:40:03.489694: Standing charge is set to 46.63p
2026-08-16 23:40:03.612124: 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-16 23:40:03.613496: 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-16 23:40:03.615796: 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-16 23:40:03.616231: 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-16 23:40:03.616551: 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-16 23:40:03.616850: 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-16 23:40:03.617164: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.617376: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.617563: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.617759: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.618397: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.619432: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.619589: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.619720: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.620107: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:40:03.623159: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:40:03.629486: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:40:03.629947: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:40:03.747884: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:40:03.748053: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:40:03.750299: High export rate found rates in range 99p to -99p
2026-08-16 23:40:03.826077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:40:03.826538: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:40:03.826768: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:40:03.854205: Battery level now 8.64kWh, -1hr ago 9.12kWh, at midnight 12.21kWh, battery value change in the last hour -3.3p, change today -24.52p, rate_forward 6.87p
2026-08-16 23:40:03.854759: Last hour: net energy 0.18kWh, import 0.18kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 5.67p, import 5.67p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 23:40:04.091110: Today's energy total net 9.6kWh, import 9.6kWh, export 0.0kWh, cost 310.21p, import 263.57p, export 0.0p, carbon 0.0kg
2026-08-16 23:40:04.091354: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:40:04.221685: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:40:04.254325: Today's load divergence 70.35%, in-day adjustment 71.99%, damping 0.95x, yesterday 82.97% today 71.83% blend 1.39%
2026-08-16 23:40:04.254877: Today's predicted so far 14.86kWh with 0.0kWh car/iBoost excluded, 6.15kWh import ignored, and 14.86kWh forecast extra.
2026-08-16 23:40:04.254975: Today's actual load so far 11.38kWh with 0.0kWh car/iBoost excluded, and 6.15kWh import ignored.
2026-08-16 23:40:04.334835: Inverter 0: Type SK Sunsynk
2026-08-16 23:40:04.335151: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:40:04.336172: Reserve min: 7%, battery_min: 7%
2026-08-16 23:40:04.336432: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:40:04.336989: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power -4483W, current battery voltage 51.2V, grid power -5332W, load power 336W, PV Power 0W
2026-08-16 23:40:04.337356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:40:04.337682: Inverter 0 scheduled charge enable is True
2026-08-16 23:40:04.337874: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:40:04.338147: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:40:04.338450: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:40:04.338835: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:40:04.339022: Inverter 0 scheduled discharge enable is False
2026-08-16 23:40:04.339346: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:40:04.339505: Inverter 0 discharge windows currently []
2026-08-16 23:40:04.339665: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:40:04.339892: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:40:04.340033: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:40:04.583405: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:40:04.583721: Plan was last updated on 2026-08-16 23:30:00+01:00 and is now 10.0 minutes old
2026-08-16 23:40:04.584124: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 05:30:00 @ 8.0p 100% ]
2026-08-16 23:40:04.590807: Best export window [  ]
2026-08-16 23:40:04.592587: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:40:04.597808: Load divergence over 8.0 hours mean 488.93W, min 293.4W, max 1030.2W, std dev 173.63W, divergence 17.76%
2026-08-16 23:40:04.638169: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:40:04.638619: LoadML is_calculating True
2026-08-16 23:40:04.638702: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:40:04.692771: predict base end_record 08-17 23:40:00, final soc 4.82kWh, metric 460.34p, metric_keep 0kWh, min_soc 4.04kWh @ 08-17 23:25:00, load 27.17kWh, PV 0.0kWh
2026-08-16 23:40:04.882993: Battery has 48.0 hours left - now at 9.09kWh
2026-08-16 23:40:04.946504: predict base10 end_record 08-17 23:40:00, final soc 4.12kWh, metric 461.02p, metric_keep 0kWh, min_soc 3.47kWh @ 08-17 23:25:00, load 27.92kWh, PV 0.0kWh
2026-08-16 23:40:05.138995: predict best10 end_record 08-17 23:40:00, final soc 2.12kWh, metric 443.83p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 27.92kWh, PV 0.0kWh
2026-08-16 23:40:05.307286: predict best end_record 08-17 23:40:00, final soc 2.82kWh, metric 443.48p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.17kWh, PV 0.0kWh
2026-08-16 23:40:05.308079: Saving plan best values to HA entities
2026-08-16 23:40:05.743499: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:40:05.750716: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:40:05.759154: Best charging limit SoC's [16.0, 12.5, 14.0, 16.0]kWh, export []kWh gives import battery 10.83kWh, house 0.0kWh, export 0.0kWh, metric 443.48p, metric10 443.83p
2026-08-16 23:40:05.941845: Marginal costs baseline metric (no standing charge): 396.8462
2026-08-16 23:40:06.501351: Marginal energy costs matrix computed: min=4.73 max=30.12
2026-08-16 23:40:06.652966: Rate array import [{'start': 1420, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:40:06.653569: - Your estimated bill for today is £3.25 and tomorrow is £1.34
2026-08-16 23:40:06.653627: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:40:06.653653: - The battery is currently at 57% and is charging to 77% for the next 50 minutes.
2026-08-16 23:40:06.653688: - For the next 48 hours there will be no solar generation.
2026-08-16 23:40:06.653729: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:40:06.653862: 
2026-08-16 23:40:06.724551: Plan calculation took 2.14 seconds
2026-08-16 23:40:06.730451: No high rate period found
2026-08-16 23:40:06.930930: Import threshold used for optimisation was 8.0p
2026-08-16 23:40:07.061423: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-16 23:40:07.090213: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:40:07.090346: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 23:40:07.090474: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:40:07.090655: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:40:07.090847: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:40:07.090948: No export window planned
2026-08-16 23:40:07.091131: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:40:07.091203: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:40:07.091354: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:40:07.091454: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:40:07.091498: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:40:07.091565: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:40:07.091655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091875: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091912: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091948: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.091974: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092008: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092033: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092058: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:07.092318: Inverter 0 count register writes 0
2026-08-16 23:40:07.137508: 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-16 23:40:07.137901: Recompute is saving previous plan...
2026-08-16 23:40:07.140725: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 100%, 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% ]
2026-08-16 23:40:07.140817: Best export window [  ]
2026-08-16 23:40:07.141734: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:40:07.145644: Load divergence over 8.0 hours mean 488.93W, min 293.4W, max 1030.2W, std dev 173.63W, divergence 17.76%
2026-08-16 23:40:07.166808: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:40:07.167068: LoadML is_calculating True
2026-08-16 23:40:07.167168: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:40:07.181079: 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-16 23:40:07.181976: Optimise levels pass started at 2026-08-16 23:40:07
2026-08-16 23:40:07.182102: Optimise all windows, total charge 25 export 1
2026-08-16 23:40:09.736581: >> Region optimisation pass width 960 gives best_metric 518.7p, best_cost 529.19p, best_cycle 40.81kWh, best_import 27.37kWh
2026-08-16 23:40:09.938040: >> Region optimisation pass width 480 gives best_metric 518.7p, best_cost 529.19p, best_cycle 40.81kWh, best_import 27.37kWh
2026-08-16 23:40:10.547490: >> Region optimisation pass width 240 gives best_metric 518.7p, best_cost 529.19p, best_cycle 40.81kWh, best_import 27.37kWh
2026-08-16 23:40:11.941839: >> Region optimisation pass width 120 gives best_metric 518.7p, best_cost 529.19p, best_cycle 40.81kWh, best_import 27.37kWh
2026-08-16 23:40:11.944353: Calculated end_record as 08-18 00:00:00 based on best_price 8.0p, next_charge_start 08-17 00:00:00, max_windows 14
2026-08-16 23:40:11.944506: Optimise levels pass ended at 2026-08-16 23:40:11, duration 4.8 seconds tried 70 combinations
2026-08-16 23:40:11.944612: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 518.7p, best_keep 0.09kWh, best_cycle 40.81kWh, best_carbon 0kg, best_import 27.37kWh
2026-08-16 23:40:11.973058: Starting detailed optimisation end_record 08-18 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 0, 14.0, 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-16 23:40:23.823430: Tweak plan optimisation started metric 379.45p, cost 392.48p
2026-08-16 23:40:25.154668: Tweak optimisation finished metric 379.45p, cost 392.48p, metric_keep 0kWh, cycle 16.66kWh, carbon 0kg, import 10.28kWh, changed 8 window(s)
2026-08-16 23:40:25.184858: Swap charge optimisation started metric 379.45p, cost 392.48p, min_improvement_swap 0.1p
2026-08-16 23:40:26.589937: Swap charge optimisation finished metric 379.45p, cost 392.48p
2026-08-16 23:40:26.752603: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 81%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 81%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 81%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 81%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 13%, 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% ] reserve 1.12
2026-08-16 23:40:26.765427: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:40:26.765839: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:40:26.766133: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:40:26.814704: Previous plan best metric is 383.48 (cost 412.8) and new plan best metric is 379.45 (cost 392.48)
2026-08-16 23:40:26.829134: New plan metric is significantly better from previous plan, using new plan
2026-08-16 23:40:26.829334: Plan valid is now true after recompute was False
2026-08-16 23:40:26.872354: predict base end_record 08-18 00:00:00, final soc 6.37kWh, metric 476.3p, metric_keep 0kWh, min_soc 4.04kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 23:40:27.039641: Battery has 48.0 hours left - now at 9.09kWh
2026-08-16 23:40:27.079777: predict base10 end_record 08-18 00:00:00, final soc 5.41kWh, metric 474.87p, metric_keep 0kWh, min_soc 3.47kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 23:40:27.302845: predict best10 end_record 08-18 00:00:00, final soc 2.0kWh, metric 445.55p, metric_keep 2.21kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 23:40:27.520513: predict best end_record 08-18 00:00:00, final soc 2.04kWh, metric 439.11p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 23:40:27.520631: Saving plan best values to HA entities
2026-08-16 23:40:28.168352: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:40:28.235259: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:40:28.244255: Best charging limit SoC's [16.0, 13.0, 14.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.28kWh, house 0.0kWh, export 0.0kWh, metric 439.11p, metric10 445.55p
2026-08-16 23:40:28.454167: Marginal costs baseline metric (no standing charge): 392.4801
2026-08-16 23:40:28.971090: Marginal energy costs matrix computed: min=8.0 max=31.07
2026-08-16 23:40:29.092961: Rate array import [{'start': 1420, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:40:29.093431: - Your estimated bill for today is £3.25 and tomorrow is £1.14
2026-08-16 23:40:29.093479: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:40:29.093502: - The battery is currently at 57% and is charging to 81% for the next 50 minutes.
2026-08-16 23:40:29.093523: - For the next 48 hours there will be no solar generation.
2026-08-16 23:40:29.117031: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:40:29.117140: 
2026-08-16 23:40:29.154458: Plan calculation took 22.02 seconds
2026-08-16 23:40:29.154857: Inverter 0: Type SK Sunsynk
2026-08-16 23:40:29.157190: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:40:29.171214: Reserve min: 7%, battery_min: 7%
2026-08-16 23:40:29.171347: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:40:29.171790: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power -4483W, current battery voltage 51.2V, grid power -5332W, load power 336W, PV Power 0W
2026-08-16 23:40:29.172040: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:40:29.172182: Inverter 0 scheduled charge enable is True
2026-08-16 23:40:29.172247: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:40:29.172428: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:40:29.172632: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:40:29.172680: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:40:29.172758: Inverter 0 scheduled discharge enable is False
2026-08-16 23:40:29.172979: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:40:29.173031: Inverter 0 discharge windows currently []
2026-08-16 23:40:29.173095: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:40:29.173163: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:40:29.173209: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:40:29.275128: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:40:29.275446: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 23:40:29.276120: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:40:29.276305: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:40:29.276578: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:40:29.276743: No export window planned
2026-08-16 23:40:29.276860: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:40:29.276901: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:40:29.277090: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:40:29.277428: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:40:29.277553: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:40:29.277618: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:40:29.277713: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.277925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278038: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278084: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278111: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278137: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278292: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278337: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278364: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278901: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.278990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:40:29.279046: Inverter 0 count register writes 0
2026-08-16 23:40:29.312261: Total inverter register writes now 845
2026-08-16 23:40:29.364119: Info: Completed run status Charging
2026-08-16 23:40:29.375719: Info: record_status Charging target 57%-100.0%
2026-08-16 23:40:29.386716: Saved current settings to /config/predbat_config.json
2026-08-16 23:40:29.386979: Compare, best tariff: current metric 318.25p
2026-08-16 23:40:31.360022: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0090 val_mae=0.0045 kWh val_bias=-0.0013 kWh (-2.4%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-16 23:41:00.395061: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0118 val_mae=0.0047 kWh val_bias=+0.0014 kWh (+2.4%) combined=0.0036 kWh ema_combined=0.0031 kWh
2026-08-16 23:41:03.549864: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:41:03.550368: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:41:03.550526: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:41:03.550915: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:41:03.551065: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:41:03.551212: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:41:03.551357: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:41:26.436119: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0119 val_mae=0.0045 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-16 23:41:57.735707: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0120 val_mae=0.0046 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0028 kWh ema_combined=0.0029 kWh
2026-08-16 23:42:25.860010: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0119 val_mae=0.0039 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-16 23:42:56.959991: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0117 val_mae=0.0037 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-16 23:43:03.938462: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:43:03.938938: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:43:03.939110: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:43:03.939369: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:43:03.939501: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:43:03.939596: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:43:03.939706: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:43:25.609419: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0110 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-16 23:43:54.272501: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0101 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-16 23:44:21.185663: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0096 val_mae=0.0033 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-16 23:44:51.574076: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0087 val_mae=0.0030 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-16 23:45:00.371961: --------------- PredBat - update at 2026-08-16 23:45:00+01:00 with clock skew 0 minutes, minutes now 1425
2026-08-16 23:45:00.373206: Saved current settings to /config/predbat_config.json
2026-08-16 23:45:00.373529: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-16 23:45:00.373711: 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-16 23:45:00.373936: 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-16 23:45:00.420558: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:45:00.420871: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:45:00.421167: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:45:00.421860: 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-16 23:45:00.422065: Predbat mode is set to Control charge & discharge
2026-08-16 23:45:00.885773: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:45:00.885970: Using load_power data to fill gaps in load_today data
2026-08-16 23:45:02.117683: Processing 721 30-minute periods for power integration
2026-08-16 23:45:02.510488: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:45:02.510689: Car charging hold False, threshold 6.0kWh
2026-08-16 23:45:02.510762: Current data so far today: load 11.4kWh, import 9.6kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:45:02.529981: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:45:02.530103: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:45:02.530844: Standing charge is set to 46.63p
2026-08-16 23:45:02.628389: 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-16 23:45:02.631426: 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-16 23:45:02.631847: 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-16 23:45:02.632151: 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-16 23:45:02.632492: 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-16 23:45:02.632798: 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-16 23:45:02.633112: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.633289: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.633442: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.633597: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.633761: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.633919: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.634071: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.634213: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.634506: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:45:02.634601: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:45:02.643170: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:45:02.643713: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:45:02.752639: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:45:02.753493: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:45:02.757097: High export rate found rates in range 99p to -99p
2026-08-16 23:45:02.852391: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:45:02.853661: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:45:02.853920: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:45:02.888140: Battery level now 9.09kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour 0.88p, change today -21.44p, rate_forward 6.87p
2026-08-16 23:45:02.888788: Last hour: net energy 0.17kWh, import 0.17kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 5.11p, import 5.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 23:45:03.020469: Today's energy total net 9.6kWh, import 9.6kWh, export 0.0kWh, cost 310.21p, import 263.57p, export 0.0p, carbon 0.0kg
2026-08-16 23:45:03.020751: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:45:03.213444: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:45:03.261067: Today's load divergence 69.22%, in-day adjustment 70.88%, damping 0.95x, yesterday 82.97% today 70.76% blend 1.04%
2026-08-16 23:45:03.261312: Today's predicted so far 14.92kWh with 0.0kWh car/iBoost excluded, 6.18kWh import ignored, and 14.92kWh forecast extra.
2026-08-16 23:45:03.261379: Today's actual load so far 11.35kWh with 0.0kWh car/iBoost excluded, and 6.18kWh import ignored.
2026-08-16 23:45:03.324145: Inverter 0: Type SK Sunsynk
2026-08-16 23:45:03.324259: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:45:03.324488: Reserve min: 7%, battery_min: 7%
2026-08-16 23:45:03.324578: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:45:03.324922: Inverter 0 SoC: 9.09kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power -4495W, current battery voltage 51.2V, grid power -5346W, load power 349W, PV Power 0W
2026-08-16 23:45:03.325154: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:45:03.325272: Inverter 0 scheduled charge enable is True
2026-08-16 23:45:03.325337: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:45:03.325456: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:45:03.325606: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:45:03.325653: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:45:03.325699: Inverter 0 scheduled discharge enable is False
2026-08-16 23:45:03.325884: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:45:03.325933: Inverter 0 discharge windows currently []
2026-08-16 23:45:03.325996: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:45:03.326023: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:45:03.326058: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:45:03.463682: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:45:03.463851: Plan was last updated on 2026-08-16 23:40:00+01:00 and is now 5.0 minutes old
2026-08-16 23:45:03.464258: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ]
2026-08-16 23:45:03.464319: Best export window [  ]
2026-08-16 23:45:03.465747: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:45:03.471424: Load divergence over 8.0 hours mean 482.55W, min 259.8W, max 1153.2W, std dev 171.36W, divergence 17.76%
2026-08-16 23:45:03.494144: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:45:03.494345: LoadML is_calculating True
2026-08-16 23:45:03.494383: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:45:03.578505: predict base end_record 08-18 00:05:00, final soc 6.75kWh, metric 526.41p, metric_keep 0kWh, min_soc 4.03kWh @ 08-17 23:25:00, load 27.57kWh, PV 0.0kWh
2026-08-16 23:45:03.841142: Battery has 48.0 hours left - now at 9.09kWh
2026-08-16 23:45:03.925464: predict base10 end_record 08-18 00:05:00, final soc 5.72kWh, metric 524.43p, metric_keep 0kWh, min_soc 3.46kWh @ 08-17 23:25:00, load 28.34kWh, PV 0.0kWh
2026-08-16 23:45:04.108345: predict best10 end_record 08-18 00:05:00, final soc 2.32kWh, metric 495.22p, metric_keep 2.29kWh, min_soc 1.46kWh @ 08-17 23:25:00, load 28.34kWh, PV 0.0kWh
2026-08-16 23:45:04.231658: predict best end_record 08-18 00:05:00, final soc 2.42kWh, metric 489.22p, metric_keep 0kWh, min_soc 2.03kWh @ 08-17 23:25:00, load 27.57kWh, PV 0.0kWh
2026-08-16 23:45:04.231795: Saving plan best values to HA entities
2026-08-16 23:45:04.671173: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:45:04.701282: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:45:04.711637: Best charging limit SoC's [16.0, 13.0, 14.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.72kWh, house 0kWh, export 0.0kWh, metric 489.22p, metric10 495.22p
2026-08-16 23:45:04.899391: Marginal costs baseline metric (no standing charge): 395.955
2026-08-16 23:45:05.320146: Marginal energy costs matrix computed: min=8.0 max=31.12
2026-08-16 23:45:05.497088: Rate array import [{'start': 1425, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:45:05.497826: - Your estimated bill for today is £3.22 and tomorrow is £1.17
2026-08-16 23:45:05.497992: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:45:05.498102: - The battery is currently at 57% and is charging to 81% for the next 45 minutes.
2026-08-16 23:45:05.498211: - For the next 48 hours there will be no solar generation.
2026-08-16 23:45:05.498309: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:45:05.498413: 
2026-08-16 23:45:05.543251: Plan calculation took 2.08 seconds
2026-08-16 23:45:05.549182: No high rate period found
2026-08-16 23:45:05.658227: Import threshold used for optimisation was 8.0p
2026-08-16 23:45:05.789295: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-16 23:45:05.798391: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:45:05.798698: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-16 23:45:05.798963: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:45:05.799239: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:45:05.799543: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:45:05.799723: No export window planned
2026-08-16 23:45:05.799954: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:45:05.800076: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:45:05.800330: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:45:05.800532: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:45:05.800667: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:45:05.800825: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:45:05.801047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.801878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802110: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802248: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802409: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802595: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802825: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.802961: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803118: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.803990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.804144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.804298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:45:05.804459: Inverter 0 count register writes 0
2026-08-16 23:45:05.832257: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:45:05.841206: Total inverter register writes now 845
2026-08-16 23:45:05.926638: Info: Completed run status Charging
2026-08-16 23:45:05.935959: Info: record_status Charging target 57%-100.0%
2026-08-16 23:45:05.944912: Saved current settings to /config/predbat_config.json
2026-08-16 23:45:05.945236: Compare, best tariff: current metric 318.25p
2026-08-16 23:45:23.919074: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0084 val_mae=0.0031 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-16 23:45:49.138557: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:45:49.143609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:45:49.143873: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:45:49.144264: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:45:49.144466: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:45:49.144601: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:45:49.145537: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:45:55.789960: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0083 val_mae=0.0032 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-16 23:46:26.458027: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0074 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-16 23:46:56.836613: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 23:47:25.263293: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0069 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-16 23:47:55.667998: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0063 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-16 23:48:03.579748: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:48:03.580280: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:48:03.580345: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:48:03.580652: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:48:03.580715: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:48:03.580784: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:48:03.580873: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:48:25.315926: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0068 val_mae=0.0027 kWh val_bias=-0.0012 kWh (-2.2%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-16 23:48:54.889582: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-16 23:49:25.176469: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=-0.0014 kWh (-2.4%) combined=0.0024 kWh ema_combined=0.0021 kWh
2026-08-16 23:49:52.852610: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0018 kWh
2026-08-16 23:50:00.049632: --------------- PredBat - update at 2026-08-16 23:50:00+01:00 with clock skew 0 minutes, minutes now 1430
2026-08-16 23:50:00.050421: Saved current settings to /config/predbat_config.json
2026-08-16 23:50:00.050530: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-16 23:50:00.050618: 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-16 23:50:00.050760: 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-16 23:50:00.132782: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:50:00.133148: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:50:00.133485: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:50:00.134299: 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-16 23:50:00.134607: Predbat mode is set to Control charge & discharge
2026-08-16 23:50:00.467518: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:50:00.468328: Using load_power data to fill gaps in load_today data
2026-08-16 23:50:01.811101: Processing 721 30-minute periods for power integration
2026-08-16 23:50:02.012472: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:50:02.012781: Car charging hold False, threshold 6.0kWh
2026-08-16 23:50:02.012849: Current data so far today: load 11.3kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:50:02.032417: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:50:02.032550: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:50:02.033408: Standing charge is set to 46.63p
2026-08-16 23:50:02.337177: 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-16 23:50:02.337946: 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-16 23:50:02.338252: 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-16 23:50:02.338521: 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-16 23:50:02.338713: 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-16 23:50:02.338917: 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-16 23:50:02.339110: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.339837: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.339969: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.341471: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.343641: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.343911: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.344022: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.344103: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.344339: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:50:02.344413: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:50:02.352274: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:50:02.353842: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:50:02.407002: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:50:02.407292: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:50:02.408787: High export rate found rates in range 99p to -99p
2026-08-16 23:50:02.446638: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:50:02.446894: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:50:02.447088: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:50:02.467294: Battery level now 9.09kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour 0.88p, change today -21.44p, rate_forward 6.87p
2026-08-16 23:50:02.467835: Last hour: net energy 1.05kWh, import 1.05kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 11.75p, import 11.75p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 23:50:02.639031: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 317.41p, import 270.77p, export 0.0p, carbon 0.0kg
2026-08-16 23:50:02.639242: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:50:02.833608: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:50:02.867706: Today's load divergence 67.53%, in-day adjustment 69.25%, damping 0.95x, yesterday 82.97% today 69.16% blend 0.69%
2026-08-16 23:50:02.869397: Today's predicted so far 14.99kWh with 0.0kWh car/iBoost excluded, 7.01kWh import ignored, and 14.99kWh forecast extra.
2026-08-16 23:50:02.870627: Today's actual load so far 11.27kWh with 0.0kWh car/iBoost excluded, and 7.01kWh import ignored.
2026-08-16 23:50:02.982933: Inverter 0: Type SK Sunsynk
2026-08-16 23:50:02.983056: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:50:02.983344: Reserve min: 7%, battery_min: 7%
2026-08-16 23:50:02.985467: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:50:02.987212: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power -4503W, current battery voltage 51.2V, grid power -5312W, load power 316W, PV Power 0W
2026-08-16 23:50:02.987608: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:50:02.987900: Inverter 0 scheduled charge enable is True
2026-08-16 23:50:02.988084: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:50:02.988301: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:50:02.988576: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:50:02.988708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:50:02.988882: Inverter 0 scheduled discharge enable is False
2026-08-16 23:50:02.989239: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:50:02.989404: Inverter 0 discharge windows currently []
2026-08-16 23:50:02.989517: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:50:02.989629: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:50:02.989731: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:50:03.189309: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:50:03.189409: Plan was last updated on 2026-08-16 23:40:00+01:00 and is now 10.0 minutes old
2026-08-16 23:50:03.189686: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ]
2026-08-16 23:50:03.189739: Best export window [  ]
2026-08-16 23:50:03.190439: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:50:03.193048: Load divergence over 8.0 hours mean 477.78W, min 260.4W, max 1047.6W, std dev 168.35W, divergence 17.62%
2026-08-16 23:50:03.210329: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:50:03.211350: LoadML is_calculating True
2026-08-16 23:50:03.211415: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:50:03.265302: predict base end_record 08-18 00:10:00, final soc 7.15kWh, metric 534.13p, metric_keep 0kWh, min_soc 4.05kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 23:50:03.530196: Battery has 48.0 hours left - now at 9.44kWh
2026-08-16 23:50:03.616712: predict base10 end_record 08-18 00:10:00, final soc 6.06kWh, metric 531.6p, metric_keep 0kWh, min_soc 3.48kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 23:50:03.743317: predict best10 end_record 08-18 00:10:00, final soc 2.65kWh, metric 502.26p, metric_keep 2.18kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.26kWh, PV 0.0kWh
2026-08-16 23:50:03.939974: predict best end_record 08-18 00:10:00, final soc 2.82kWh, metric 496.94p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.49kWh, PV 0.0kWh
2026-08-16 23:50:03.940995: Saving plan best values to HA entities
2026-08-16 23:50:04.264781: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:50:04.278946: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:50:04.298233: Best charging limit SoC's [16.0, 13.0, 14.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.78kWh, house 0.0kWh, export 0.0kWh, metric 496.94p, metric10 502.26p
2026-08-16 23:50:04.447685: Marginal costs baseline metric (no standing charge): 403.6771
2026-08-16 23:50:04.823777: Marginal energy costs matrix computed: min=8.0 max=31.06
2026-08-16 23:50:04.970064: Rate array import [{'start': 1430, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:50:04.971283: - Your estimated bill for today is £3.25 and tomorrow is £1.17
2026-08-16 23:50:04.971413: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:50:04.971472: - The battery is currently at 59% and is charging to 81% for the next 40 minutes.
2026-08-16 23:50:04.971492: - For the next 48 hours there will be no solar generation.
2026-08-16 23:50:04.971510: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:50:04.971579: 
2026-08-16 23:50:05.015524: Plan calculation took 1.83 seconds
2026-08-16 23:50:05.021128: No high rate period found
2026-08-16 23:50:05.144393: Import threshold used for optimisation was 8.0p
2026-08-16 23:50:05.250431: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-16 23:50:05.259929: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:50:05.260072: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-16 23:50:05.260317: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:50:05.260597: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:50:05.260981: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:50:05.261205: No export window planned
2026-08-16 23:50:05.261437: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:50:05.261612: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:50:05.261916: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:50:05.262161: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:50:05.262297: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:50:05.262466: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:50:05.262674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.262830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.262980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263669: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263798: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.263961: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264086: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264221: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264330: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264456: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.264919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.265098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.265229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.265371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.265491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:05.265620: Inverter 0 count register writes 0
2026-08-16 23:50:05.299894: 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-16 23:50:05.300301: Recompute is saving previous plan...
2026-08-16 23:50:05.301833: Best charge window [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 100%, 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% ]
2026-08-16 23:50:05.302048: Best export window [  ]
2026-08-16 23:50:05.303392: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:50:05.314557: Load divergence over 8.0 hours mean 477.78W, min 260.4W, max 1047.6W, std dev 168.35W, divergence 17.62%
2026-08-16 23:50:05.356097: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:50:05.356256: LoadML is_calculating True
2026-08-16 23:50:05.356290: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:50:05.392616: 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-16 23:50:05.393331: Optimise levels pass started at 2026-08-16 23:50:05
2026-08-16 23:50:05.393406: Optimise all windows, total charge 25 export 1
2026-08-16 23:50:08.184567: >> Region optimisation pass width 960 gives best_metric 523.13p, best_cost 531.84p, best_cycle 40.66kWh, best_import 26.8kWh
2026-08-16 23:50:08.544171: >> Region optimisation pass width 480 gives best_metric 523.13p, best_cost 531.84p, best_cycle 40.66kWh, best_import 26.8kWh
2026-08-16 23:50:09.342067: >> Region optimisation pass width 240 gives best_metric 523.13p, best_cost 531.84p, best_cycle 40.66kWh, best_import 26.8kWh
2026-08-16 23:50:10.874014: >> Region optimisation pass width 120 gives best_metric 523.13p, best_cost 531.84p, best_cycle 40.66kWh, best_import 26.8kWh
2026-08-16 23:50:10.874468: Calculated end_record as 08-18 00:00:00 based on best_price 8.0p, next_charge_start 08-17 00:00:00, max_windows 14
2026-08-16 23:50:10.874580: Optimise levels pass ended at 2026-08-16 23:50:10, duration 5.5 seconds tried 70 combinations
2026-08-16 23:50:10.874664: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 523.13p, best_keep 0.32kWh, best_cycle 40.66kWh, best_carbon 0kg, best_import 26.8kWh
2026-08-16 23:50:10.893349: Starting detailed optimisation end_record 08-18 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 14.0, 0, 14.0, 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-16 23:50:22.030827: Tweak plan optimisation started metric 382.7p, cost 395.76p
2026-08-16 23:50:23.892626: Tweak optimisation finished metric 382.7p, cost 395.76p, metric_keep 0kWh, cycle 16.3kWh, carbon 0kg, import 9.79kWh, changed 8 window(s)
2026-08-16 23:50:23.912274: Swap charge optimisation started metric 382.7p, cost 395.76p, min_improvement_swap 0.1p
2026-08-16 23:50:25.539027: Swap charge optimisation finished metric 382.7p, cost 395.76p
2026-08-16 23:50:25.723443: Raw charge windows [ 16-08 23:30:00 - 17-08 00:00:00 @ 8.0p 100%, 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 78%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 78%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 78%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 88%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 88%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 88%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 88%, 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 13%, 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% ] reserve 1.12
2026-08-16 23:50:25.724153: Unclipped charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:50:25.724554: Unfiltered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:50:25.724939: Filtered charge windows [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 78%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-16 23:50:25.837871: Previous plan best metric is 382.7 (cost 395.76) and new plan best metric is 382.7 (cost 395.76)
2026-08-16 23:50:25.838124: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-16 23:50:25.838304: Plan valid is now true after recompute was False
2026-08-16 23:50:25.933161: predict base end_record 08-18 00:00:00, final soc 6.37kWh, metric 479.58p, metric_keep 0kWh, min_soc 4.05kWh @ 08-17 23:25:00, load 27.33kWh, PV 0.0kWh
2026-08-16 23:50:26.194413: Battery has 48.0 hours left - now at 9.44kWh
2026-08-16 23:50:26.335092: predict base10 end_record 08-18 00:00:00, final soc 5.42kWh, metric 478.11p, metric_keep 0kWh, min_soc 3.48kWh @ 08-17 23:25:00, load 28.09kWh, PV 0.0kWh
2026-08-16 23:50:26.465736: predict best10 end_record 08-18 00:00:00, final soc 2.0kWh, metric 448.76p, metric_keep 2.18kWh, min_soc 1.48kWh @ 08-17 23:25:00, load 28.09kWh, PV 0.0kWh
2026-08-16 23:50:26.787760: predict best end_record 08-18 00:00:00, final soc 2.05kWh, metric 442.4p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:25:00, load 27.33kWh, PV 0.0kWh
2026-08-16 23:50:26.794380: Saving plan best values to HA entities
2026-08-16 23:50:27.122690: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:50:27.143459: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:50:27.151376: Best charging limit SoC's [16.0, 13.0, 14.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.79kWh, house 0.0kWh, export 0.0kWh, metric 442.4p, metric10 448.76p
2026-08-16 23:50:27.314007: Marginal costs baseline metric (no standing charge): 395.7632
2026-08-16 23:50:27.697005: Marginal energy costs matrix computed: min=8.0 max=31.06
2026-08-16 23:50:27.939257: Rate array import [{'start': 1430, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:50:27.944121: - Your estimated bill for today is £3.25 and tomorrow is £1.17
2026-08-16 23:50:27.944190: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:50:27.944215: - The battery is currently at 59% and is charging to 81% for the next 40 minutes.
2026-08-16 23:50:27.944234: - For the next 48 hours there will be no solar generation.
2026-08-16 23:50:27.944251: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:50:27.944268: 
2026-08-16 23:50:27.992078: Plan calculation took 22.69 seconds
2026-08-16 23:50:27.992312: Inverter 0: Type SK Sunsynk
2026-08-16 23:50:27.992350: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:50:27.992523: Reserve min: 7%, battery_min: 7%
2026-08-16 23:50:27.992593: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:50:27.992844: Inverter 0 SoC: 9.78kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power -4503W, current battery voltage 51.2V, grid power -5330W, load power 336W, PV Power 0W
2026-08-16 23:50:27.993063: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:50:27.993336: Inverter 0 scheduled charge enable is True
2026-08-16 23:50:27.993415: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:50:27.993570: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:50:27.993775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:50:27.993829: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:50:27.993909: Inverter 0 scheduled discharge enable is False
2026-08-16 23:50:27.994112: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:50:27.994161: Inverter 0 discharge windows currently []
2026-08-16 23:50:27.994198: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:50:27.994450: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:50:27.995119: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:50:28.132092: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:50:28.133472: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 23:50:28.133684: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:50:28.133990: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:50:28.134307: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:50:28.134489: No export window planned
2026-08-16 23:50:28.134702: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:50:28.134780: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:50:28.135083: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:50:28.135271: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:50:28.135380: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:50:28.136384: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:50:28.136620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.136721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.140856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141327: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141394: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141455: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141518: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141578: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141688: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141763: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.141963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.142959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:50:28.143067: Inverter 0 count register writes 0
2026-08-16 23:50:28.209092: Total inverter register writes now 845
2026-08-16 23:50:28.344738: Info: Completed run status Charging
2026-08-16 23:50:28.371733: Info: record_status Charging target 61%-100.0%
2026-08-16 23:50:28.401182: Saved current settings to /config/predbat_config.json
2026-08-16 23:50:28.401473: Compare, best tariff: current metric 318.25p
2026-08-16 23:50:39.554935: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-16 23:51:03.557798: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:51:03.558441: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:51:03.558615: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:51:03.558968: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:51:03.559130: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:51:03.559282: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:51:03.559411: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:51:09.825494: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-16 23:51:39.700290: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0062 val_mae=0.0023 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-16 23:52:11.104024: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-16 23:52:42.825576: 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.0014 kWh ema_combined=0.0014 kWh
2026-08-16 23:53:04.078938: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:53:04.079709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:53:04.079863: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:53:04.080146: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:53:04.080277: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:53:04.080385: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:53:04.080477: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:53:12.362473: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-16 23:53:40.781761: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0018 kWh ema_combined=0.0015 kWh
2026-08-16 23:54:10.499066: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-16 23:54:37.505940: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-16 23:55:00.552740: --------------- PredBat - update at 2026-08-16 23:55:00+01:00 with clock skew 0 minutes, minutes now 1435
2026-08-16 23:55:00.553607: Saved current settings to /config/predbat_config.json
2026-08-16 23:55:00.553834: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-16 23:55:00.553950: 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-16 23:55:00.554017: 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-16 23:55:00.599817: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-16 23:55:00.600006: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-16 23:55:00.600361: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-16 23:55:00.601200: 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-16 23:55:00.601479: Predbat mode is set to Control charge & discharge
2026-08-16 23:55:01.091881: Found 21602 load_today datapoints going back 28 days
2026-08-16 23:55:01.092096: Using load_power data to fill gaps in load_today data
2026-08-16 23:55:02.149230: Processing 721 30-minute periods for power integration
2026-08-16 23:55:02.314821: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-16 23:55:02.314995: Car charging hold False, threshold 6.0kWh
2026-08-16 23:55:02.315046: Current data so far today: load 11.3kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-16 23:55:02.334308: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-16 23:55:02.334428: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-16 23:55:02.335342: Standing charge is set to 46.63p
2026-08-16 23:55:02.534805: 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-16 23:55:02.535297: 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-16 23:55:02.535679: 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-16 23:55:02.536074: 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-16 23:55:02.536442: 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-16 23:55:02.536803: 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-16 23:55:02.537211: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.537468: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.537703: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.537951: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.538184: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.538414: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.538638: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.538852: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.539227: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-16 23:55:02.539437: Octopus: Intelligent slots for day 0: 12 of 12 max
2026-08-16 23:55:02.548438: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-16 23:55:02.549001: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-16 23:55:02.620692: Export rates: min 0p, max 0p, average 0.0p
2026-08-16 23:55:02.621069: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-16 23:55:02.623205: High export rate found rates in range 99p to -99p
2026-08-16 23:55:02.683983: Low Import rate found rates in range 8.0p to 8.0p
2026-08-16 23:55:02.684230: Car 0 on Octopus Intelligent, active plan for charge
2026-08-16 23:55:02.684329: Car 0 charging plan is: [{'start': 1500, 'end': 1740, 'kwh': 29.6, 'average': 33.75, 'cost': 999.0, 'soc': 58.6, 'octopus': True}, {'start': 1890, 'end': 1920, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-16 23:55:02.741525: Battery level now 9.44kWh, -1hr ago 8.96kWh, at midnight 12.21kWh, battery value change in the last hour 3.3p, change today -19.02p, rate_forward 6.87p
2026-08-16 23:55:02.742089: Last hour: net energy 1.03kWh, import 1.03kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 11.18p, import 11.18p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-16 23:55:02.915272: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 317.41p, import 270.77p, export 0.0p, carbon 0.0kg
2026-08-16 23:55:02.915457: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-16 23:55:03.023759: Using weighted-bucket historical load forecast over 14 days
2026-08-16 23:55:03.060496: Today's load divergence 66.65%, in-day adjustment 68.37%, damping 0.95x, yesterday 82.97% today 68.32% blend 0.35%
2026-08-16 23:55:03.060613: Today's predicted so far 15.07kWh with 0.0kWh car/iBoost excluded, 6.99kWh import ignored, and 15.07kWh forecast extra.
2026-08-16 23:55:03.060647: Today's actual load so far 11.27kWh with 0.0kWh car/iBoost excluded, and 6.99kWh import ignored.
2026-08-16 23:55:03.133539: Inverter 0: Type SK Sunsynk
2026-08-16 23:55:03.133646: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-16 23:55:03.133893: Reserve min: 7%, battery_min: 7%
2026-08-16 23:55:03.134025: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-16 23:55:03.134376: Inverter 0 SoC: 9.78kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power -4507W, current battery voltage 51.2V, grid power -5332W, load power 335W, PV Power 0W
2026-08-16 23:55:03.134576: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:55:03.134697: Inverter 0 scheduled charge enable is True
2026-08-16 23:55:03.134764: Inverter 0 charge windows currently [{'start': 1410, 'end': 1770, 'average': 0}, {'start': 2850, 'end': 3210, 'average': 0}, {'start': 4290, 'end': 4650, 'average': 0}]
2026-08-16 23:55:03.134901: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-16 23:55:03.135086: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:55:03.135137: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:55:03.135190: Inverter 0 scheduled discharge enable is False
2026-08-16 23:55:03.135373: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:55:03.135423: Inverter 0 discharge windows currently []
2026-08-16 23:55:03.135454: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:55:03.135488: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:55:03.135515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:55:03.302826: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-16 23:55:03.302984: Plan was last updated on 2026-08-16 23:50:00+01:00 and is now 5.0 minutes old
2026-08-16 23:55:03.303397: Best charge window [ 16-08 23:30:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 03:30:00 @ 8.0p 81%, 17-08 03:30:00 - 17-08 05:30:00 @ 8.0p 88%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ]
2026-08-16 23:55:03.303457: Best export window [  ]
2026-08-16 23:55:03.304724: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-16 23:55:03.310508: Load divergence over 8.0 hours mean 473.07W, min 260.4W, max 1060.8W, std dev 167.09W, divergence 17.66%
2026-08-16 23:55:03.366180: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-16 23:55:03.381054: LoadML is_calculating True
2026-08-16 23:55:03.381167: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-16 23:55:03.495020: predict base end_record 08-18 00:05:00, final soc 6.76kWh, metric 526.78p, metric_keep 0kWh, min_soc 4.04kWh @ 08-17 23:25:00, load 27.36kWh, PV 0.0kWh
2026-08-16 23:55:03.702027: Battery has 48.0 hours left - now at 9.78kWh
2026-08-16 23:55:03.774881: predict base10 end_record 08-18 00:05:00, final soc 5.74kWh, metric 524.76p, metric_keep 0kWh, min_soc 3.47kWh @ 08-17 23:25:00, load 28.12kWh, PV 0.0kWh
2026-08-16 23:55:03.996877: predict best10 end_record 08-18 00:05:00, final soc 2.32kWh, metric 495.44p, metric_keep 2.17kWh, min_soc 1.47kWh @ 08-17 23:25:00, load 28.12kWh, PV 0.0kWh
2026-08-16 23:55:04.203557: predict best end_record 08-18 00:05:00, final soc 2.43kWh, metric 489.6p, metric_keep 0kWh, min_soc 2.04kWh @ 08-17 23:25:00, load 27.36kWh, PV 0.0kWh
2026-08-16 23:55:04.207658: Saving plan best values to HA entities
2026-08-16 23:55:04.633821: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-16 23:55:04.641490: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-16 23:55:04.653787: Best charging limit SoC's [16.0, 13.0, 14.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 9.87kWh, house 0.0kWh, export 0.0kWh, metric 489.6p, metric10 495.44p
2026-08-16 23:55:04.834310: Marginal costs baseline metric (no standing charge): 396.3284
2026-08-16 23:55:05.218572: Marginal energy costs matrix computed: min=8.0 max=31.07
2026-08-16 23:55:05.310552: Rate array import [{'start': 1435, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1890, 'end': 1920, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1920, '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-16 23:55:05.311263: - Your estimated bill for today is £3.21 and tomorrow is £1.18
2026-08-16 23:55:05.311429: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-16 23:55:05.311560: - The battery is currently at 61% and is charging to 81% for the next 35 minutes.
2026-08-16 23:55:05.311678: - For the next 48 hours there will be no solar generation.
2026-08-16 23:55:05.311796: - You will reach a minimum of 13% battery in 23 hours.
2026-08-16 23:55:05.311913: 
2026-08-16 23:55:05.365702: Plan calculation took 2.06 seconds
2026-08-16 23:55:05.371346: No high rate period found
2026-08-16 23:55:05.510143: Import threshold used for optimisation was 8.0p
2026-08-16 23:55:05.612979: Low import rate windows [0: 08-16 23:30:00 - 08-17 00:00:00 @ 8.0, 1: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 2: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 3: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 4: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 5: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 6: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 7: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 8: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 9: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 10: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 11: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 12: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-16 23:55:05.622154: Include original charge start 08-16 23:30:00, keeping this instead of new start 08-16 23:30:00
2026-08-16 23:55:05.622320: Inverter 0 Charge window will be: 2026-08-16 23:30:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-16 23:55:05.622575: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-16 23:55:05.623031: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:55:05.624349: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:55:05.624557: No export window planned
2026-08-16 23:55:05.625190: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-16 23:55:05.625265: Adjust idle time, charge 23:30:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-16 23:55:05.625597: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-16 23:55:05.625802: Inverter 0 setting charging SoC to 100% as per target
2026-08-16 23:55:05.625919: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-16 23:55:05.626072: Inverter 0 Current Target SoC is 100%, already at target
2026-08-16 23:55:05.626275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.626984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627164: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627265: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627372: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627474: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627647: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.627835: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628015: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.628902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.629138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.629298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-16 23:55:05.629439: Inverter 0 count register writes 0
2026-08-16 23:55:05.659739: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-16 23:55:05.667085: Total inverter register writes now 845
2026-08-16 23:55:05.722515: Info: Completed run status Charging
2026-08-16 23:55:05.731777: Info: record_status Charging target 61%-100.0%
2026-08-16 23:55:05.741980: Saved current settings to /config/predbat_config.json
2026-08-16 23:55:05.742277: Compare, best tariff: current metric 318.25p
2026-08-16 23:55:12.759528: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-16 23:55:12.765373: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-16 23:55:12.765705: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-16 23:55:16.929738: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0002 kWh (-0.4%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-16 23:55:16.950623: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0020 kWh
2026-08-16 23:55:16.950721: ML Predictor: Curriculum final pass 5/5: full dataset (58.4 days)
2026-08-16 23:55:16.950754: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-16 23:55:17.546342: ML Predictor: Creating dataset with 1401 hours of training data, 48 hours validation
2026-08-16 23:55:23.146919: ML Predictor: Created 16524 training samples, 576 validation samples
2026-08-16 23:55:23.199838: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0591 std=0.0476) pv(mean=0.0000 std=0.0100) temp(mean=19.6367 std=4.5152) import_rate(mean=16.8552 std=8.3896) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1918 std=0.5268)
2026-08-16 23:55:23.280370: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-16 23:55:23.294526: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-16 23:55:23.471752: ML Predictor: Baseline (pre-finetune) val_mae=0.0033 kWh val_bias=-0.0006 kWh
2026-08-16 23:55:48.857103: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:55:48.857400: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:55:48.857451: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:55:48.857589: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:55:48.857654: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:55:48.857678: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:55:48.857784: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:55:51.539012: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0087 val_mae=0.0037 kWh val_bias=+0.0008 kWh (+1.8%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-16 23:56:22.846493: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0136 val_mae=0.0042 kWh val_bias=-0.0026 kWh (-6.0%) combined=0.0047 kWh ema_combined=0.0033 kWh
2026-08-16 23:56:52.112600: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0113 val_mae=0.0038 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0019 kWh ema_combined=0.0029 kWh
2026-08-16 23:57:19.076639: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0123 val_mae=0.0037 kWh val_bias=+0.0010 kWh (+2.3%) combined=0.0034 kWh ema_combined=0.0030 kWh
2026-08-16 23:57:49.302888: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-16 23:57:49.303482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-16 23:57:49.303695: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-16 23:57:49.304336: Inverter 0 idle time is 08-16 05:30:00-08-16 23:59:00
2026-08-16 23:57:49.304659: Note: Inverter does not support discharge freeze - disabled
2026-08-16 23:57:49.305003: Note: Inverter does not support charge freeze - disabled
2026-08-16 23:57:49.305311: Note: Inverter does not support reserve - disabling reserve functions
2026-08-16 23:57:50.760340: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0113 val_mae=0.0039 kWh val_bias=-0.0025 kWh (-5.9%) combined=0.0042 kWh ema_combined=0.0034 kWh
2026-08-16 23:58:28.363471: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0118 val_mae=0.0038 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0031 kWh
2026-08-16 23:58:59.564157: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0123 val_mae=0.0035 kWh val_bias=-0.0015 kWh (-3.5%) combined=0.0032 kWh ema_combined=0.0031 kWh
2026-08-16 23:59:29.372017: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0109 val_mae=0.0040 kWh val_bias=+0.0018 kWh (+4.1%) combined=0.0038 kWh ema_combined=0.0033 kWh
2026-08-16 23:59:58.628388: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0034 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-17 00:00:00.785417: --------------- PredBat - update at 2026-08-17 00:00:00+01:00 with clock skew 0 minutes, minutes now 0
2026-08-17 00:00:00.786333: Saved current settings to /config/predbat_config.json
2026-08-17 00:00:00.786519: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 00:00:00.786674: 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 00:00:00.786789: 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 00:00:00.854794: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:00:00.854980: days_previous_auto enabled - will 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 00:00:00.855180: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:00:00.855796: 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 00:00:00.855929: Predbat mode is set to Control charge & discharge
2026-08-17 00:00:01.571531: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:00:01.571718: Using load_power data to fill gaps in load_today data
2026-08-17 00:00:03.667485: Processing 721 30-minute periods for power integration
2026-08-17 00:00:04.183359: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:00:04.185825: Car charging hold False, threshold 6.0kWh
2026-08-17 00:00:04.186043: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:00:04.215401: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:00:04.215729: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:00:04.216845: Standing charge is set to 46.63p
2026-08-17 00:00:04.684213: 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 00:00:04.684621: 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 00:00:04.684912: 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 00:00:04.685300: 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 00:00:04.685639: 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 00:00:04.685917: 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 00:00:04.686208: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.686352: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.686486: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.686616: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.686742: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.686875: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.687017: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.687142: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.687409: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:04.687497: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:00:04.722494: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:00:04.737790: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:00:04.802915: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:00:04.803645: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:00:04.806872: High export rate found rates in range 99p to -99p
2026-08-17 00:00:04.841602: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:00:04.841896: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:00:04.842002: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:00:04.868362: Battery level now 9.78kWh, -1hr ago 8.96kWh, at midnight 9.78kWh, battery value change in the last hour 5.66p, change today 0.0p, rate_forward 6.87p
2026-08-17 00:00:04.869016: Last hour: net energy 1.92kWh, import 1.92kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 17.82p, import 17.82p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:00:05.023582: Today's energy total net 0kWh, import 0kWh, export 0kWh, cost 0p, import 0p, export 0p, carbon 0.0kg
2026-08-17 00:00:05.024114: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:00:05.226385: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:00:05.274147: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:00:05.274263: Today's predicted so far 0kWh with 0kWh car/iBoost excluded, 0kWh import ignored, and 0kWh forecast extra.
2026-08-17 00:00:05.274293: Today's actual load so far 0kWh with 0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:00:05.400555: Inverter 0: Type SK Sunsynk
2026-08-17 00:00:05.400688: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:00:06.213537: Find battery size has 15 days of data, max days 15
2026-08-17 00:00:06.213911: Charge start 21240 soc 71.0 end 21239 soc 71.0
2026-08-17 00:00:06.214663: Charge start 19530 soc 22.0 end 19510 soc 29.05
2026-08-17 00:00:06.214781: Charging clipped start at 19520 with SoC 24%, end at 19510 with SoC 29%; SoC change 5%
2026-08-17 00:00:06.214954: Charge start 19470 soc 31.0 end 19302 soc 100.0
2026-08-17 00:00:06.215082: Charging clipped start at 19460 with SoC 33%, end at 19330 with SoC 90%; SoC change 57%
2026-08-17 00:00:06.215229:   Power added over 131 samples is 9.9kWh
2026-08-17 00:00:06.215314:   Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 57% SoC over 131 minutes
2026-08-17 00:00:06.216661: Charge start 16560 soc 15.0 end 16381 soc 89.65
2026-08-17 00:00:06.218139: Charging clipped start at 16550 with SoC 17%, end at 16385 with SoC 89%; SoC change 72%
2026-08-17 00:00:06.218314:   Power added over 166 samples is 12.5kWh
2026-08-17 00:00:06.218378:   Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 72% SoC over 166 minutes
2026-08-17 00:00:06.218439: Charge start 16350 soc 92.0 end 16323 soc 100.0
2026-08-17 00:00:06.218768: Charge start 15263 soc 68.0 end 15262 soc 68.0
2026-08-17 00:00:06.218870: Charge start 15240 soc 69.0 end 15164 soc 99.5
2026-08-17 00:00:06.218949: Charging clipped start at 15230 with SoC 71%, end at 15190 with SoC 88%; SoC change 17%
2026-08-17 00:00:06.219030:   Power added over 41 samples is 3.1kWh
2026-08-17 00:00:06.219073:   Battery size sample accepted raw 18.13kWh adjusted 16.89kWh from 17% SoC over 41 minutes
2026-08-17 00:00:06.219523: Charge start 13590 soc 42.0 end 13566 soc 49.25
2026-08-17 00:00:06.219586: Charging clipped start at 13580 with SoC 44%, end at 13570 with SoC 49%; SoC change 5%
2026-08-17 00:00:06.219650: Charge start 13500 soc 52.0 end 13498 soc 52.0
2026-08-17 00:00:06.219715: Charge start 13470 soc 53.0 end 13441 soc 62.05
2026-08-17 00:00:06.219772: Charging clipped start at 13460 with SoC 55%, end at 13445 with SoC 62%; SoC change 7%
2026-08-17 00:00:06.220171: Charge start 12284 soc 9.0 end 12275 soc 11.15
2026-08-17 00:00:06.220241: Charge start 12258 soc 9.35 end 12249 soc 10.65
2026-08-17 00:00:06.220333: Charge start 12240 soc 11.8 end 12027 soc 100.0
2026-08-17 00:00:06.220412: Charging clipped start at 12240 with SoC 11%, end at 12055 with SoC 90%; SoC change 79%
2026-08-17 00:00:06.220548:   Power added over 186 samples is 14.1kWh
2026-08-17 00:00:06.220629:   Battery size sample accepted raw 17.84kWh adjusted 16.61kWh from 79% SoC over 186 minutes
2026-08-17 00:00:06.221017: Charge start 10890 soc 13.0 end 10801 soc 49.25
2026-08-17 00:00:06.221090: Charging clipped start at 10885 with SoC 14%, end at 10805 with SoC 49%; SoC change 35%
2026-08-17 00:00:06.221161:   Power added over 81 samples is 6.1kWh
2026-08-17 00:00:06.221233:   Battery size sample accepted raw 17.47kWh adjusted 16.27kWh from 35% SoC over 81 minutes
2026-08-17 00:00:06.221322: Charge start 10770 soc 53.0 end 10757 soc 55.75
2026-08-17 00:00:06.221383: Charge start 10740 soc 59.0 end 10718 soc 65.842
2026-08-17 00:00:06.221420: Charging clipped start at 10730 with SoC 61%, end at 10720 with SoC 65%; SoC change 4%
2026-08-17 00:00:06.221461: Charge start 10710 soc 69.0 end 10634 soc 99.65
2026-08-17 00:00:06.221502: Charging clipped start at 10710 with SoC 69%, end at 10660 with SoC 89%; SoC change 20%
2026-08-17 00:00:06.221574:   Power added over 51 samples is 3.9kWh
2026-08-17 00:00:06.221645:   Battery size sample accepted raw 19.33kWh adjusted 18.0kWh from 20% SoC over 51 minutes
2026-08-17 00:00:06.222097: Charge start 9480 soc 25.1 end 9466 soc 28.421
2026-08-17 00:00:06.222199: Charging clipped start at 9480 with SoC 25%, end at 9470 with SoC 28%; SoC change 3%
2026-08-17 00:00:06.222267: Charge start 9390 soc 31.0 end 9375 soc 35.75
2026-08-17 00:00:06.222315: Charging clipped start at 9380 with SoC 33%, end at 9375 with SoC 35%; SoC change 2%
2026-08-17 00:00:06.222408: Charge start 9300 soc 37.95 end 9202 soc 77.8
2026-08-17 00:00:06.222540: Charging clipped start at 9300 with SoC 37%, end at 9205 with SoC 77%; SoC change 40%
2026-08-17 00:00:06.222716:   Power added over 96 samples is 7.3kWh
2026-08-17 00:00:06.222923:   Battery size sample accepted raw 18.13kWh adjusted 16.88kWh from 40% SoC over 96 minutes
2026-08-17 00:00:06.223467: Charge start 7860 soc 10.85 end 7707 soc 74.55
2026-08-17 00:00:06.223654: Charging clipped start at 7860 with SoC 10%, end at 7710 with SoC 74%; SoC change 64%
2026-08-17 00:00:06.223993:   Power added over 151 samples is 11.4kWh
2026-08-17 00:00:06.224199:   Battery size sample accepted raw 17.86kWh adjusted 16.63kWh from 64% SoC over 151 minutes
2026-08-17 00:00:06.224656: Charge start 6710 soc 9.0 end 6701 soc 9.25
2026-08-17 00:00:06.224910: Charge start 6611 soc 9.0 end 6602 soc 9.75
2026-08-17 00:00:06.225258: Charge start 6540 soc 13.0 end 6470 soc 41.95
2026-08-17 00:00:06.225525: Charging clipped start at 6530 with SoC 15%, end at 6470 with SoC 41%; SoC change 26%
2026-08-17 00:00:06.225781:   Power added over 61 samples is 4.6kWh
2026-08-17 00:00:06.225999:   Battery size sample accepted raw 17.73kWh adjusted 16.51kWh from 26% SoC over 61 minutes
2026-08-17 00:00:06.226238: Charge start 6450 soc 44.0 end 6308 soc 100.0
2026-08-17 00:00:06.226483: Charging clipped start at 6440 with SoC 46%, end at 6340 with SoC 90%; SoC change 44%
2026-08-17 00:00:06.226788:   Power added over 101 samples is 7.7kWh
2026-08-17 00:00:06.227279:   Battery size sample accepted raw 17.44kWh adjusted 16.24kWh from 44% SoC over 101 minutes
2026-08-17 00:00:06.227638: Charge start 5730 soc 45.65 end 5727 soc 45.65
2026-08-17 00:00:06.227843: Charge start 5640 soc 42.0 end 5636 soc 42.0
2026-08-17 00:00:06.228280: Charge start 5055 soc 19.0 end 5043 soc 22.05
2026-08-17 00:00:06.228523: Charge start 4950 soc 22.0 end 4932 soc 27.55
2026-08-17 00:00:06.228716: Charging clipped start at 4945 with SoC 23%, end at 4935 with SoC 27%; SoC change 4%
2026-08-17 00:00:06.229010: Charge start 4920 soc 31.0 end 4827 soc 68.55
2026-08-17 00:00:06.229221: Charging clipped start at 4910 with SoC 33%, end at 4830 with SoC 68%; SoC change 35%
2026-08-17 00:00:06.229429:   Power added over 81 samples is 6.2kWh
2026-08-17 00:00:06.229619:   Battery size sample accepted raw 17.58kWh adjusted 16.37kWh from 35% SoC over 81 minutes
2026-08-17 00:00:06.229991: Charge start 4286 soc 9.8 end 4277 soc 9.65
2026-08-17 00:00:06.230228: Charge start 4252 soc 9.45 end 4244 soc 10.3
2026-08-17 00:00:06.230434: Charge start 4216 soc 9.65 end 4207 soc 9.8
2026-08-17 00:00:06.230522: Charge start 4180 soc 9.0 end 4171 soc 9.3
2026-08-17 00:00:06.230683: Charge start 4169 soc 11.55 end 4150 soc 19.9
2026-08-17 00:00:06.230752: Charging clipped start at 4165 with SoC 13%, end at 4150 with SoC 19%; SoC change 6%
2026-08-17 00:00:06.230985: Charge start 3770 soc 8.9 end 3762 soc 9.6
2026-08-17 00:00:06.231100: Charge start 3727 soc 9.05 end 3718 soc 10.05
2026-08-17 00:00:06.231186: Charge start 3682 soc 9.0 end 3674 soc 10.3
2026-08-17 00:00:06.231320: Charge start 3644 soc 9.05 end 3635 soc 11.05
2026-08-17 00:00:06.231495: Charge start 3592 soc 9.0 end 3584 soc 10.211
2026-08-17 00:00:06.231647: Charge start 3574 soc 12.1 end 3573 soc 12.1
2026-08-17 00:00:06.231852: Charge start 3540 soc 13.0 end 3421 soc 61.65
2026-08-17 00:00:06.231943: Charging clipped start at 3530 with SoC 15%, end at 3425 with SoC 61%; SoC change 46%
2026-08-17 00:00:06.232197:   Power added over 106 samples is 8.0kWh
2026-08-17 00:00:06.232825:   Battery size sample accepted raw 17.48kWh adjusted 16.27kWh from 46% SoC over 106 minutes
2026-08-17 00:00:06.232900: Charge start 3390 soc 63.0 end 3362 soc 72.85
2026-08-17 00:00:06.233006: Charging clipped start at 3385 with SoC 64%, end at 3365 with SoC 72%; SoC change 8%
2026-08-17 00:00:06.233276: Charge start 2872 soc 9.5 end 2864 soc 10.25
2026-08-17 00:00:06.234546: Charge start 2833 soc 9.0 end 2824 soc 10.7
2026-08-17 00:00:06.234808: Charge start 2789 soc 9.0 end 2780 soc 10.9
2026-08-17 00:00:06.235065: Charge start 2731 soc 10.3 end 2722 soc 9.7
2026-08-17 00:00:06.235354: Charge start 2642 soc 9.0 end 2633 soc 10.1
2026-08-17 00:00:06.235574: Charge start 2586 soc 9.0 end 2577 soc 9.7
2026-08-17 00:00:06.235839: Charge start 2486 soc 9.0 end 2478 soc 10.0
2026-08-17 00:00:06.236112: Charge start 2351 soc 9.0 end 2342 soc 9.75
2026-08-17 00:00:06.236370: Charge start 2244 soc 9.0 end 2235 soc 11.1
2026-08-17 00:00:06.236658: Charge start 2190 soc 13.0 end 2166 soc 20.15
2026-08-17 00:00:06.236862: Charging clipped start at 2180 with SoC 15%, end at 2170 with SoC 20%; SoC change 5%
2026-08-17 00:00:06.237138: Charge start 2130 soc 22.7 end 2126 soc 22.7
2026-08-17 00:00:06.237414: Charge start 2100 soc 25.0 end 1921 soc 99.45
2026-08-17 00:00:06.237677: Charging clipped start at 2090 with SoC 27%, end at 1945 with SoC 90%; SoC change 63%
2026-08-17 00:00:06.238294:   Power added over 146 samples is 11.1kWh
2026-08-17 00:00:06.238503:   Battery size sample accepted raw 17.55kWh adjusted 16.34kWh from 63% SoC over 146 minutes
2026-08-17 00:00:06.239124: Charge start 780 soc 44.0 end 721 soc 66.5
2026-08-17 00:00:06.239380: Charging clipped start at 770 with SoC 46%, end at 725 with SoC 66%; SoC change 20%
2026-08-17 00:00:06.239669:   Power added over 46 samples is 3.5kWh
2026-08-17 00:00:06.240076:   Battery size sample accepted raw 17.29kWh adjusted 16.1kWh from 20% SoC over 46 minutes
2026-08-17 00:00:06.240338: Charge start 690 soc 68.8 end 677 soc 71.45
2026-08-17 00:00:06.240607: Charging clipped start at 690 with SoC 68%, end at 680 with SoC 71%; SoC change 3%
2026-08-17 00:00:06.241311: Estimated battery size is 16.39kWh from 11 selected samples, 14 accepted samples, 11 rejected samples, median 16.34kWh (assumed charging loss factor 0.9, rejects {'soc_change_too_small': 11})
2026-08-17 00:00:06.259445: 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 00:00:06.291503: Reserve min: 7%, battery_min: 7%
2026-08-17 00:00:06.291746: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:00:06.292237: Inverter 0 SoC: 10.49kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power -4513W, current battery voltage 51.2V, grid power -5305W, load power 309W, PV Power 0W
2026-08-17 00:00:06.300454: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:00:06.300599: Inverter 0 scheduled charge enable is True
2026-08-17 00:00:06.300646: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}]
2026-08-17 00:00:06.300759: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 00:00:06.301242: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:00:06.301385: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:00:06.301469: Inverter 0 scheduled discharge enable is False
2026-08-17 00:00:06.301696: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 00:00:06.301758: Inverter 0 discharge windows currently []
2026-08-17 00:00:06.301839: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:00:06.301991: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:00:06.302031: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:00:06.498232: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:00:06.498465: Plan was last updated on 2026-08-16 23:50:00+01:00 and is now 10.0 minutes old
2026-08-17 00:00:06.498641: Force recompute due to start of day
2026-08-17 00:00:06.498812: Recompute, previous plan is invalid...
2026-08-17 00:00:06.500917: Best charge window [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 100%, 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% ]
2026-08-17 00:00:06.501037: Best export window [  ]
2026-08-17 00:00:06.502358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:00:06.507977: Load divergence over 8.0 hours mean 477.29W, min 262.2W, max 1042.8W, std dev 165.84W, divergence 17.37%
2026-08-17 00:00:06.553903: Calculating data from yesterday for savings calculation
2026-08-17 00:00:06.565986: 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-17 00:00:06.731707: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 223.79p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 00:00:06.802696: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 220.45p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 00:00:06.881816: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 223.79p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 00:00:06.917905: Yesterday: Predbat disabled was £2.24 (adjusted £1.55) vs £3.17 (adjusted £2.5), saving £-0.94 (adjusted £-0.95) with import 22.14kWh, export 0.0kWh, battery_cycle 25.84kWh, start_soc 1.12kWh,  final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 00:00:07.069516: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.69p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 00:00:07.070110: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.52) with import 11.44kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 00:00:07.100256: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:00:07.100413: LoadML is_calculating True
2026-08-17 00:00:07.105683: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 00:00:07.151555: 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 00:00:07.160770: Optimise levels pass started at 2026-08-17 00:00:07
2026-08-17 00:00:07.160923: Optimise all windows, total charge 25 export 1
2026-08-17 00:00:10.302766: >> Region optimisation pass width 960 gives best_metric 159.05p, best_cost 165.86p, best_cycle 34.09kWh, best_import 20.73kWh
2026-08-17 00:00:10.814086: >> Region optimisation pass width 480 gives best_metric 159.05p, best_cost 165.86p, best_cycle 34.09kWh, best_import 20.73kWh
2026-08-17 00:00:11.276222: >> Region optimisation pass width 240 gives best_metric 159.05p, best_cost 165.86p, best_cycle 34.09kWh, best_import 20.73kWh
2026-08-17 00:00:12.945523: >> Region optimisation pass width 120 gives best_metric 159.05p, best_cost 165.86p, best_cycle 34.09kWh, best_import 20.73kWh
2026-08-17 00:00:12.946000: Calculated end_record as 08-18 00:00:00 based on best_price 8.0p, next_charge_start 08-17 00:00:00, max_windows 13
2026-08-17 00:00:12.946170: Optimise levels pass ended at 2026-08-17 00:00:12, duration 5.8 seconds tried 52 combinations
2026-08-17 00:00:12.946340: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 159.05p, best_keep 0.93kWh, best_cycle 34.09kWh, best_carbon 0kg, best_import 20.73kWh
2026-08-17 00:00:12.980408: Starting detailed optimisation end_record 08-18 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, 0, 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 00:00:23.049925: Tweak plan optimisation started metric 15.74p, cost 27.12p
2026-08-17 00:00:24.533438: Tweak optimisation finished metric 15.67p, cost 28.25p, metric_keep 0.03kWh, cycle 13.34kWh, carbon 0kg, import 3.53kWh, changed 8 window(s)
2026-08-17 00:00:24.554647: Swap charge optimisation started metric 15.67p, cost 28.25p, min_improvement_swap 0.1p
2026-08-17 00:00:26.121910: Swap charge optimisation finished metric 15.67p, cost 28.25p
2026-08-17 00:00:26.207264: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 15.08p -> 14.94p, plan now metric 15.53p, cost 27.95p, cycle 13.1kWh, import 3.49kWh
2026-08-17 00:00:26.222026: Raw charge windows [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 0%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 0%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 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% ] reserve 1.12
2026-08-17 00:00:26.222794: Unclipped charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 81%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:00:26.223290: Unfiltered charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:00:26.223874: Filtered charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:00:26.225742: Plan valid is now true after recompute was False
2026-08-17 00:00:26.260238: predict base end_record 08-18 00:00:00, final soc 7.02kWh, metric 116.27p, metric_keep 0kWh, min_soc 7.02kWh @ 08-17 23:55:00, load 11.15kWh, PV 0.0kWh
2026-08-17 00:00:26.515916: Battery has 48.0 hours left - now at 10.49kWh
2026-08-17 00:00:26.600673: predict base10 end_record 08-18 00:00:00, final soc 6.59kWh, metric 117.33p, metric_keep 0kWh, min_soc 6.59kWh @ 08-17 23:55:00, load 11.68kWh, PV 0.0kWh
2026-08-17 00:00:26.722849: predict best10 end_record 08-18 00:00:00, final soc 1.4kWh, metric 75.09p, metric_keep 1.41kWh, min_soc 1.4kWh @ 08-17 23:55:00, load 11.68kWh, PV 0.0kWh
2026-08-17 00:00:26.943067: predict best end_record 08-18 00:00:00, final soc 1.9kWh, metric 74.58p, metric_keep 0.05kWh, min_soc 1.9kWh @ 08-17 23:55:00, load 11.15kWh, PV 0.0kWh
2026-08-17 00:00:26.943501: Saving plan best values to HA entities
2026-08-17 00:00:27.254691: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:00:27.271385: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:00:27.288045: Best charging limit SoC's [16.0, 12.5, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.49kWh, house 0.0kWh, export 0.0kWh, metric 74.58p, metric10 75.09p
2026-08-17 00:00:27.408089: Marginal costs baseline metric (no standing charge): 27.9481
2026-08-17 00:00:27.730763: Marginal energy costs matrix computed: min=2.19 max=29.54
2026-08-17 00:00:27.898706: Rate array import [{'start': 0, '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': 1440, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 0, 'end': 1440, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:00:27.899556: - Your estimated bill for today is £0.75
2026-08-17 00:00:27.899640: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:00:27.899665: - The battery is currently at 66% and is in eco mode for the next 30 minutes.
2026-08-17 00:00:27.899686: - For the next 48 hours there will be no solar generation.
2026-08-17 00:00:27.899706: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 00:00:27.899807: - Your next charge slot will be in 30 minutes where import rates will be cheap (8.0p).
2026-08-17 00:00:27.899845: 
2026-08-17 00:00:27.943348: Plan calculation took 21.44 seconds
2026-08-17 00:00:28.009696: Saved plan to storage
2026-08-17 00:00:28.013506: No high rate period found
2026-08-17 00:00:28.126571: Import threshold used for optimisation was 8.0p
2026-08-17 00:00:28.217265: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0]
2026-08-17 00:00:28.227428: Inverter 0: Type SK Sunsynk
2026-08-17 00:00:28.227729: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:00:28.228645: Reserve min: 7%, battery_min: 7%
2026-08-17 00:00:28.229236: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:00:28.229833: Inverter 0 SoC: 10.49kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power -4513W, current battery voltage 51.2V, grid power -5305W, load power 309W, PV Power 0W
2026-08-17 00:00:28.230105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:00:28.230338: Inverter 0 scheduled charge enable is True
2026-08-17 00:00:28.230423: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}]
2026-08-17 00:00:28.230564: Inverter 0 Charge settings: 08-16 23:30:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 00:00:28.230872: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:00:28.231065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:00:28.231146: Inverter 0 scheduled discharge enable is False
2026-08-17 00:00:28.231339: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 00:00:28.231483: Inverter 0 discharge windows currently []
2026-08-17 00:00:28.231541: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:00:28.231575: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:00:28.231606: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:00:28.335951: Inverter 0 Charge window will be: 2026-08-17 00:30:00+01:00 - 2026-08-17 01:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 00:00:28.336170: Inverter 0 configuring charge window now (now 08-17 00:00:00 target set_window_minutes 30 charge start time 08-17 00:30:00
2026-08-17 00:00:28.336353: IOG action latency: 0.0 seconds from slot start
2026-08-17 00:00:28.336571: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:00:28.336855: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:00:28.337035: Inverter 0 set new demand (idle) start time to 00:00:00 was 05:30:00
2026-08-17 00:00:33.349810: Inverter 0 write_and_poll_value: Wrote 00:00:00 to idle_start_time, successfully now 00:00:00
2026-08-17 00:00:33.350073: Inverter 0 set new demand (idle) end time to 00:30:00 was 23:59:00
2026-08-17 00:00:38.358698: Inverter 0 write_and_poll_value: Wrote 00:30:00 to idle_end_time, successfully now 00:30:00
2026-08-17 00:00:43.370708: Inverter 0 write_and_poll_value: Wrote 00:30:00 to charge_start_time, successfully now 00:30:00
2026-08-17 00:00:47.186549: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0081 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0026 kWh
2026-08-17 00:00:47.186771: ML Predictor: Early stopping at epoch 10
2026-08-17 00:00:47.187855: ML Predictor: Restored best weights from epoch with val_mae=0.0033 kWh val_bias=-0.0006 kWh (-1.3%)
2026-08-17 00:00:47.188038: ML Predictor: Training complete, final val_mae=0.0033 kWh val_bias=-0.0006 kWh (-1.3%)
2026-08-17 00:00:48.384507: Inverter 0 write_and_poll_value: Wrote 01:30:00 to charge_end_time, successfully now 01:30:00
2026-08-17 00:00:48.384666: Inverter 0 Updated start and end charge window to 00:30:00 - 01:30:00 (old 23:30:00 - 05:30:00)
2026-08-17 00:00:48.384705: No export window planned
2026-08-17 00:00:48.384873: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:00:48.384924: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:00:48.385217: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:00:48.385385: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 00:00:48.385450: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 00:00:48.385507: Inverter 0 Current charge limit is 100% and new target is 7%
2026-08-17 00:00:52.639298: ML Predictor: AR rollout over holdout: ar_mae=0.0037 kWh ar_bias=-0.0006 kWh (-1.5%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-17 00:00:52.650468: ML Predictor: Curriculum training complete, final val_mae=0.0033 kWh
2026-08-17 00:00:52.662272: ML Component: Training successful, val_mae=0.0033 kWh
2026-08-17 00:00:52.839547: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 00:00:52.844256: ML Component: Generating predictions load data age 58.0 days, 16813 data points
2026-08-17 00:00:52.993344: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0171 max_dow {0: 0.08776562499813735, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 00:00:53.510490: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-17 00:00:53.510744: 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 00:00:53.619797: 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 00:00:53.726290: 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 00:00:53.831112: 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 00:00:53.937017: 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 00:00:54.032063: 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 00:00:54.138046: 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 00:00:54.242645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.242764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.242808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.243019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.243081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.243210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.243266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:00:54.243377: Inverter 0 count register writes 1
2026-08-17 00:00:54.295808: Total inverter register writes now 846
2026-08-17 00:00:54.353279: Info: Completed run status Demand
2026-08-17 00:00:54.691937: Info: record_status Demand
2026-08-17 00:00:54.700791: Saved current settings to /config/predbat_config.json
2026-08-17 00:00:54.752677: Starting comparison of tariffs
2026-08-17 00:00:54.753192: Compare tariff current starting SoC: 5.46 kWh
2026-08-17 00:00:54.753416: Compare Tariff: Current Tariff (IOG)
2026-08-17 00:00:54.753785: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:00:54.754052: days_previous_auto enabled - will 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 00:00:54.759026: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:00:54.759849: 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 00:00:54.760161: Predbat mode is set to Control charge & discharge
2026-08-17 00:00:54.913947: ML Component: Generated 576 predictions (total 25.97 kWh over 48h)
2026-08-17 00:00:54.996202: ML Component: Prediction cycle completed
2026-08-17 00:00:55.165129: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:00:55.165319: Using load_power data to fill gaps in load_today data
2026-08-17 00:00:55.349074: ML Component: Saved 16813 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 00:00:56.066563: Processing 721 30-minute periods for power integration
2026-08-17 00:00:56.270082: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:00:56.271561: Car charging hold False, threshold 6.0kWh
2026-08-17 00:00:56.273248: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:00:56.289379: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:00:56.289605: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:00:56.291035: Standing charge is set to 46.63p
2026-08-17 00:00:56.397250: 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 00:00:56.397951: 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 00:00:56.398359: 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 00:00:56.398711: 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 00:00:56.399077: 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 00:00:56.399305: 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 00:00:56.399566: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.399730: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.399868: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400081: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400263: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400356: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400431: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400498: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400730: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:00:56.400801: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:00:56.406237: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:00:56.406504: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:00:56.450603: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:00:56.450748: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:00:56.452039: High export rate found rates in range 99p to -99p
2026-08-17 00:00:56.472704: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:00:56.472848: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:00:56.472907: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:00:56.488250: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:00:56.562798: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:00:56.612921: Using existing rate import data
2026-08-17 00:00:56.613175: Using existing rate export data
2026-08-17 00:00:56.620914: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:00:56.622389: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:00:56.626401: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:00:56.626495: Rate thresholds (for charge/export) are import 33.25p (0p), export -0.1p (0p)
2026-08-17 00:00:56.635611: Re-plan car 0 for charging to 30.400000000000002
2026-08-17 00:00:56.637335: Running scenario for tariff: Current Tariff (IOG)
2026-08-17 00:00:56.637539: Recompute is saving previous plan...
2026-08-17 00:00:56.638765: Best charge window [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 100%, 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% ]
2026-08-17 00:00:56.638835: Best export window [  ]
2026-08-17 00:00:56.640373: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:00:56.645093: Load divergence over 8.0 hours mean 477.29W, min 262.2W, max 1042.8W, std dev 165.84W, divergence 17.37%
2026-08-17 00:00:56.660695: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:00:56.660874: LoadML is_calculating False
2026-08-17 00:00:56.661017: Creating pool of 12 processes to match your CPU count
2026-08-17 00:00:56.806632: 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 00:00:56.810985: Optimise levels pass started at 2026-08-17 00:00:56
2026-08-17 00:00:56.811077: Optimise all windows, total charge 25 export 1
2026-08-17 00:00:57.252712: >> Region optimisation pass width 960 gives best_metric 202.25p, best_cost 209.06p, best_cycle 39.27kWh, best_import 26.13kWh
2026-08-17 00:00:57.393677: >> Region optimisation pass width 480 gives best_metric 202.25p, best_cost 209.06p, best_cycle 39.27kWh, best_import 26.13kWh
2026-08-17 00:00:57.715277: >> Region optimisation pass width 240 gives best_metric 202.25p, best_cost 209.06p, best_cycle 39.27kWh, best_import 26.13kWh
2026-08-17 00:00:58.333521: >> Region optimisation pass width 120 gives best_metric 202.25p, best_cost 209.06p, best_cycle 39.27kWh, best_import 26.13kWh
2026-08-17 00:00:58.334068: Calculated end_record as 08-19 00:00:00 based on best_price 8.0p, next_charge_start 08-17 00:00:00, max_windows 25
2026-08-17 00:00:58.334199: Optimise levels pass ended at 2026-08-17 00:00:58, duration 1.5 seconds tried 56 combinations
2026-08-17 00:00:58.334398: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 202.25p, best_keep 0.93kWh, best_cycle 39.27kWh, best_carbon 0kg, best_import 26.13kWh
2026-08-17 00:00:58.360914: 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, 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]kWh and export limits []kWh
2026-08-17 00:01:06.622292: Tweak plan optimisation started metric 201.87p, cost 213.25p
2026-08-17 00:01:07.094410: Tweak optimisation finished metric 201.87p, cost 213.25p, metric_keep 0.26kWh, cycle 38.73kWh, carbon 0kg, import 26.66kWh, changed 8 window(s)
2026-08-17 00:01:07.125213: Swap charge optimisation started metric 201.87p, cost 213.25p, min_improvement_swap 0.1p
2026-08-17 00:01:09.137598: Swap charge optimisation finished metric 201.87p, cost 213.25p
2026-08-17 00:01:09.442489: Raw charge windows [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 91%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 91%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 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 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 100%, 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 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 7% ] reserve 1.12
2026-08-17 00:01:09.442963: Unclipped charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 91%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7% ] reserve 1.12
2026-08-17 00:01:09.443363: Unfiltered charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 91%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7% ] reserve 1.12
2026-08-17 00:01:09.443677: Filtered charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 100%, 17-08 02:00:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 91%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7% ] reserve 1.12
2026-08-17 00:01:09.492211: Previous plan best metric is 210.48 (cost 248.42) and new plan best metric is 201.87 (cost 213.25)
2026-08-17 00:01:09.492728: New plan metric is significantly better from previous plan, using new plan
2026-08-17 00:01:09.492802: Plan valid is now true after recompute was False
2026-08-17 00:01:09.541388: Best charging limit SoC's [16.0, 1.12, 14.5, 16.0, 14.5, 1.12]kWh, export []kWh gives import battery 26.66kWh, house 0.0kWh, export 0.0kWh, metric 213.25p, metric10 219.71p
2026-08-17 00:01:09.562945: Plan calculation took 12.93 seconds
2026-08-17 00:01:09.598718: predict compare end_record 08-18 00:00:00, final soc 8.5kWh, metric 125.14p, metric_keep 0kWh, min_soc 5.85kWh @ 08-17 00:00:00, load 11.15kWh, PV 0.0kWh
2026-08-17 00:01:09.619039: Scenario complete for tariff: Current Tariff (IOG), cost 125.14p, metric 104.68p
2026-08-17 00:01:09.619225: Compare, best tariff: current metric 104.68p
2026-08-17 00:01:10.061737: Compare tariff agile starting SoC: 9.78 kWh
2026-08-17 00:01:10.063067: Compare Tariff: Agile
2026-08-17 00:01:10.063262: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:01:10.063351: days_previous_auto enabled - will 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 00:01:10.063541: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:01:10.064212: 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 00:01:10.064381: Predbat mode is set to Control charge & discharge
2026-08-17 00:01:10.295740: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:01:10.295926: Using load_power data to fill gaps in load_today data
2026-08-17 00:01:11.335735: Processing 721 30-minute periods for power integration
2026-08-17 00:01:11.552895: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:01:11.553891: Car charging hold False, threshold 6.0kWh
2026-08-17 00:01:11.553995: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:01:11.571440: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:01:11.571582: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:01:11.572407: Standing charge is set to 46.63p
2026-08-17 00:01:11.701681: 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 00:01:11.702188: 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 00:01:11.702404: 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 00:01:11.702662: 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 00:01:11.702932: 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 00:01:11.703151: 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 00:01:11.703372: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703479: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703567: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703648: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703728: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703813: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.703888: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.704005: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.704195: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:01:11.704270: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:01:11.709800: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:01:11.710152: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:01:11.759480: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:01:11.759655: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:01:11.760932: High export rate found rates in range 99p to -99p
2026-08-17 00:01:11.783164: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:01:11.784853: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:01:11.785028: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:01:11.811523: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:01:11.892894: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:01:11.942308: 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-17 00:01:12.714470: Using existing rate export data
2026-08-17 00:01:12.741272: Rate min forward looking: now 28.32p at end of forecast 28.32p
2026-08-17 00:01:12.742050: Import rates: min 28.32p, max 50.99p, average 34.36p
2026-08-17 00:01:12.745767: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:01:12.745827: Rate thresholds (for charge/export) are import 50.49p (0p), export -0.1p (0p)
2026-08-17 00:01:12.746940: Compare rate import is different, minute 0 changed from 8.0 to 31.1955
2026-08-17 00:01:12.747053: Re-plan car 0 for charging to 30.400000000000002
2026-08-17 00:01:12.747921: Running scenario for tariff: Agile
2026-08-17 00:01:12.748037: Recompute is saving previous plan...
2026-08-17 00:01:12.750668: Best charge window [ 17-08 00:00:00 - 17-08 00:30:00 @ 31.2p 100%, 17-08 00:30:00 - 17-08 01:00:00 @ 31.55p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 30.66p 100%, 17-08 01:30:00 - 17-08 02:00:00 @ 29.63p 100%, 17-08 02:00:00 - 17-08 02:30:00 @ 29.36p 100%, 17-08 02:30:00 - 17-08 03:00:00 @ 29.43p 100%, 17-08 03:00:00 - 17-08 03:30:00 @ 29.81p 100%, 17-08 03:30:00 - 17-08 04:00:00 @ 29.33p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 31.03p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 29.28p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 33.66p 100%, 17-08 05:30:00 - 17-08 06:00:00 @ 34.03p 100%, 17-08 06:00:00 - 17-08 06:30:00 @ 34.94p 100%, 17-08 06:30:00 - 17-08 07:00:00 @ 35.7p 100%, 17-08 07:00:00 - 17-08 07:30:00 @ 36.42p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 38.44p 100%, 17-08 08:00:00 - 17-08 08:30:00 @ 37.61p 100%, 17-08 08:30:00 - 17-08 09:00:00 @ 37.54p 100%, 17-08 09:00:00 - 17-08 09:30:00 @ 32.13p 100%, 17-08 09:30:00 - 17-08 10:00:00 @ 32.73p 100%, 17-08 10:00:00 - 17-08 10:30:00 @ 34.76p 100%, 17-08 10:30:00 - 17-08 11:00:00 @ 34.48p 100%, 17-08 11:00:00 - 17-08 11:30:00 @ 30.64p 100%, 17-08 11:30:00 - 17-08 12:00:00 @ 30.89p 100%, 17-08 12:00:00 - 17-08 12:30:00 @ 31.12p 100%, 17-08 12:30:00 - 17-08 13:00:00 @ 30.56p 100%, 17-08 13:00:00 - 17-08 13:30:00 @ 30.67p 100%, 17-08 13:30:00 - 17-08 14:00:00 @ 30.45p 100%, 17-08 14:00:00 - 17-08 14:30:00 @ 28.43p 100%, 17-08 14:30:00 - 17-08 15:00:00 @ 28.32p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 29.23p 100%, 17-08 15:30:00 - 17-08 16:00:00 @ 30.45p 100%, 17-08 16:00:00 - 17-08 16:30:00 @ 42.66p 100%, 17-08 16:30:00 - 17-08 17:00:00 @ 41.2p 100%, 17-08 17:00:00 - 17-08 17:30:00 @ 45.39p 100%, 17-08 17:30:00 - 17-08 18:00:00 @ 48.78p 100%, 17-08 19:00:00 - 17-08 19:30:00 @ 35.96p 100%, 17-08 19:30:00 - 17-08 20:00:00 @ 35.06p 100%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.2p 100%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.83p 100%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.33p 100%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.79p 100%, 17-08 22:00:00 - 17-08 22:30:00 @ 31.21p 100%, 17-08 22:30:00 - 17-08 23:00:00 @ 28.6p 100%, 17-08 23:00:00 - 17-08 23:30:00 @ 34.41p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 32.3p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 31.2p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 31.55p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 30.66p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 29.63p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 29.36p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 29.43p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 29.81p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 29.33p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 31.03p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 29.28p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 33.66p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 34.03p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 34.94p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 35.7p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 36.42p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 37.61p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 37.54p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 32.13p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 32.73p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 34.76p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 34.48p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 30.64p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 30.89p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 31.12p 100%, 18-08 12:30:00 - 18-08 13:00:00 @ 30.56p 100%, 18-08 13:00:00 - 18-08 13:30:00 @ 30.67p 100%, 18-08 13:30:00 - 18-08 14:00:00 @ 30.45p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 28.43p 100%, 18-08 14:30:00 - 18-08 15:00:00 @ 28.32p 100%, 18-08 15:00:00 - 18-08 15:30:00 @ 29.23p 100%, 18-08 15:30:00 - 18-08 16:00:00 @ 30.45p 100%, 18-08 16:00:00 - 18-08 16:30:00 @ 42.66p 100%, 18-08 16:30:00 - 18-08 17:00:00 @ 41.2p 100%, 18-08 17:00:00 - 18-08 17:30:00 @ 45.39p 100%, 18-08 17:30:00 - 18-08 18:00:00 @ 48.78p 100%, 18-08 19:00:00 - 18-08 19:30:00 @ 35.96p 100%, 18-08 19:30:00 - 18-08 20:00:00 @ 35.06p 100%, 18-08 20:00:00 - 18-08 20:30:00 @ 36.2p 100%, 18-08 20:30:00 - 18-08 21:00:00 @ 35.83p 100%, 18-08 21:00:00 - 18-08 21:30:00 @ 35.33p 100%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.79p 100%, 18-08 22:00:00 - 18-08 22:30:00 @ 31.21p 100%, 18-08 22:30:00 - 18-08 23:00:00 @ 28.6p 100%, 18-08 23:00:00 - 18-08 23:30:00 @ 34.41p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 32.3p 100% ]
2026-08-17 00:01:12.750740: Best export window [  ]
2026-08-17 00:01:12.751343: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:01:12.753855: Load divergence over 8.0 hours mean 477.29W, min 262.2W, max 1042.8W, std dev 165.84W, divergence 17.37%
2026-08-17 00:01:12.768868: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:01:12.768982: LoadML is_calculating False
2026-08-17 00:01:12.769052: Creating pool of 12 processes to match your CPU count
2026-08-17 00:01:12.857458: 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 00:01:12.859722: Optimise levels pass started at 2026-08-17 00:01:12
2026-08-17 00:01:12.859792: Optimise all windows, total charge 91 export 1
2026-08-17 00:01:14.373525: >> Region optimisation pass width 960 gives best_metric 608.21p, best_cost 651.83p, best_cycle 32.79kWh, best_import 22.02kWh
2026-08-17 00:01:15.015960: >> Region optimisation pass width 480 gives best_metric 608.21p, best_cost 651.83p, best_cycle 32.79kWh, best_import 22.02kWh
2026-08-17 00:01:16.601176: >> Region optimisation pass width 240 gives best_metric 604.35p, best_cost 648.15p, best_cycle 28.65kWh, best_import 21.72kWh
2026-08-17 00:01:19.251240: >> Region optimisation pass width 120 gives best_metric 600.86p, best_cost 644.69p, best_cycle 27.02kWh, best_import 21.61kWh
2026-08-17 00:01:19.251759: Calculated end_record as 08-19 00:00:00 based on best_price 33.66p, next_charge_start 08-17 03:30:00, max_windows 91
2026-08-17 00:01:19.251853: Optimise levels pass ended at 2026-08-17 00:01:19, duration 6.4 seconds tried 505 combinations
2026-08-17 00:01:19.251919: Set best_price_charge_level 36.2p, best_price_export_level 0p, best_price_charge 33.66p, best_cost_export 0p, best_metric 600.86p, best_keep 0kWh, best_cycle 27.02kWh, best_carbon 0kg, best_import 21.61kWh
2026-08-17 00:01:19.288247: Starting detailed optimisation end_record 08-19 00:00:00, best_price_charge 33.66p, best_price_export 0p. lowest_price_charge 28.32p with charge limits [0, 0, 0, 0, 0, 0, 0, 7.75, 7.75, 7.75, 7.75, 0, 0, 0, 0, 0, 0, 0, 1.12, 1.12, 0, 0, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 11.0, 11.0, 11.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 0, 0, 0, 0, 0, 0, 0, 1.12, 1.12, 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, 1.12, 1.12, 1.12, 1.12, 1.12]kWh and export limits []kWh
2026-08-17 00:01:48.412755: Tweak plan optimisation started metric 583.59p, cost 620.19p
2026-08-17 00:01:48.791055: Tweak optimisation finished metric 583.59p, cost 620.19p, metric_keep 0.61kWh, cycle 15.75kWh, carbon 0kg, import 20.53kWh, changed 8 window(s)
2026-08-17 00:01:48.817436: Swap charge optimisation started metric 583.59p, cost 620.19p, min_improvement_swap 0.1p
2026-08-17 00:02:09.864053: Swap charge optimisation finished metric 582.42p, cost 614.51p
2026-08-17 00:02:09.883884: Swap charge optimisation started metric 582.42p, cost 614.51p, min_improvement_swap 0.1p
2026-08-17 00:02:29.425466: Swap charge optimisation finished metric 581.62p, cost 609.12p
2026-08-17 00:02:29.452674: Swap charge optimisation started metric 581.62p, cost 609.12p, min_improvement_swap 0.1p
2026-08-17 00:02:49.465164: Swap charge optimisation finished metric 581.62p, cost 609.12p
2026-08-17 00:02:50.140761: Raw charge windows [ 17-08 00:00:00 - 17-08 00:30:00 @ 31.2p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 31.55p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 30.66p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 29.63p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 29.36p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 29.43p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 29.81p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 29.33p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 31.03p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 29.28p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 33.66p 0%, 17-08 05:30:00 - 17-08 06:00:00 @ 34.03p 0%, 17-08 06:00:00 - 17-08 06:30:00 @ 34.94p 0%, 17-08 06:30:00 - 17-08 07:00:00 @ 35.7p 0%, 17-08 07:00:00 - 17-08 07:30:00 @ 36.42p 0%, 17-08 07:30:00 - 17-08 08:00:00 @ 38.44p 0%, 17-08 08:00:00 - 17-08 08:30:00 @ 37.61p 0%, 17-08 08:30:00 - 17-08 09:00:00 @ 37.54p 0%, 17-08 09:00:00 - 17-08 09:30:00 @ 32.13p 7%, 17-08 09:30:00 - 17-08 10:00:00 @ 32.73p 0%, 17-08 10:00:00 - 17-08 10:30:00 @ 34.76p 0%, 17-08 10:30:00 - 17-08 11:00:00 @ 34.48p 0%, 17-08 11:00:00 - 17-08 11:30:00 @ 30.64p 7%, 17-08 11:30:00 - 17-08 12:00:00 @ 30.89p 7%, 17-08 12:00:00 - 17-08 12:30:00 @ 31.12p 7%, 17-08 12:30:00 - 17-08 13:00:00 @ 30.56p 7%, 17-08 13:00:00 - 17-08 13:30:00 @ 30.67p 7%, 17-08 13:30:00 - 17-08 14:00:00 @ 30.45p 7%, 17-08 14:00:00 - 17-08 14:30:00 @ 28.43p 7%, 17-08 14:30:00 - 17-08 15:00:00 @ 28.32p 100%, 17-08 15:00:00 - 17-08 15:30:00 @ 29.23p 7%, 17-08 15:30:00 - 17-08 16:00:00 @ 30.45p 7%, 17-08 16:00:00 - 17-08 16:30:00 @ 42.66p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 41.2p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 45.39p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 48.78p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 35.96p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 35.06p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 36.2p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 35.83p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 35.33p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.79p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 31.21p 7%, 17-08 22:30:00 - 17-08 23:00:00 @ 28.6p 56%, 17-08 23:00:00 - 17-08 23:30:00 @ 34.41p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 32.3p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 31.2p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 31.55p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 30.66p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 29.63p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 29.36p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 29.43p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 29.81p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 29.33p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 31.03p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 29.28p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 33.66p 7%, 18-08 05:30:00 - 18-08 06:00:00 @ 34.03p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 34.94p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 35.7p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 36.42p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 37.61p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 37.54p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 32.13p 7%, 18-08 09:30:00 - 18-08 10:00:00 @ 32.73p 7%, 18-08 10:00:00 - 18-08 10:30:00 @ 34.76p 7%, 18-08 10:30:00 - 18-08 11:00:00 @ 34.48p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 30.64p 7%, 18-08 11:30:00 - 18-08 12:00:00 @ 30.89p 7%, 18-08 12:00:00 - 18-08 12:30:00 @ 31.12p 7%, 18-08 12:30:00 - 18-08 13:00:00 @ 30.56p 7%, 18-08 13:00:00 - 18-08 13:30:00 @ 30.67p 7%, 18-08 13:30:00 - 18-08 14:00:00 @ 30.45p 7%, 18-08 14:00:00 - 18-08 14:30:00 @ 28.43p 7%, 18-08 14:30:00 - 18-08 15:00:00 @ 28.32p 7%, 18-08 15:00:00 - 18-08 15:30:00 @ 29.23p 7%, 18-08 15:30:00 - 18-08 16:00:00 @ 30.45p 7%, 18-08 16:00:00 - 18-08 16:30:00 @ 42.66p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 41.2p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 45.39p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 48.78p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 35.96p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 35.06p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 36.2p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 35.83p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 35.33p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.79p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 31.21p 7%, 18-08 22:30:00 - 18-08 23:00:00 @ 28.6p 7%, 18-08 23:00:00 - 18-08 23:30:00 @ 34.41p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 32.3p 0% ] reserve 1.12
2026-08-17 00:02:50.141504: Unclipped charge windows [ 17-08 00:00:00 - 17-08 05:00:00 @ 29.77p 7%, 17-08 09:00:00 - 17-08 09:30:00 @ 32.13p 7%, 17-08 11:00:00 - 17-08 14:30:00 @ 29.5p 7%, 17-08 14:30:00 - 17-08 15:00:00 @ 28.32p 100%, 17-08 15:00:00 - 17-08 16:00:00 @ 29.84p 7%, 17-08 22:00:00 - 17-08 22:30:00 @ 31.21p 7%, 17-08 22:30:00 - 17-08 23:00:00 @ 28.6p 56%, 17-08 23:30:00 - 18-08 05:30:00 @ 31.72p 7%, 18-08 09:00:00 - 18-08 10:30:00 @ 33.59p 7%, 18-08 11:00:00 - 18-08 16:00:00 @ 29.76p 7%, 18-08 22:00:00 - 18-08 23:00:00 @ 29.91p 7% ] reserve 1.12
2026-08-17 00:02:50.142423: Unfiltered charge windows [ 17-08 00:00:00 - 17-08 05:00:00 @ 29.77p 7%, 17-08 09:00:00 - 17-08 09:30:00 @ 32.13p 7%, 17-08 11:00:00 - 17-08 14:30:00 @ 29.5p 7%, 17-08 14:30:00 - 17-08 15:00:00 @ 28.32p 100%, 17-08 15:00:00 - 17-08 16:00:00 @ 29.84p 7%, 17-08 22:00:00 - 17-08 22:30:00 @ 31.21p 7%, 17-08 22:30:00 - 17-08 23:00:00 @ 28.6p 56%, 17-08 23:30:00 - 18-08 05:30:00 @ 31.72p 7%, 18-08 09:00:00 - 18-08 10:30:00 @ 33.59p 7%, 18-08 11:00:00 - 18-08 16:00:00 @ 29.76p 7%, 18-08 22:00:00 - 18-08 23:00:00 @ 29.91p 7% ] reserve 1.12
2026-08-17 00:02:50.142879: Filtered charge windows [ 17-08 00:00:00 - 17-08 05:00:00 @ 29.77p 7%, 17-08 09:00:00 - 17-08 09:30:00 @ 32.13p 7%, 17-08 11:00:00 - 17-08 14:30:00 @ 29.5p 7%, 17-08 14:30:00 - 17-08 15:00:00 @ 28.32p 100%, 17-08 15:00:00 - 17-08 16:00:00 @ 29.84p 7%, 17-08 22:00:00 - 17-08 22:30:00 @ 31.21p 7%, 17-08 22:30:00 - 17-08 23:00:00 @ 28.6p 56%, 17-08 23:30:00 - 18-08 05:30:00 @ 31.72p 7%, 18-08 09:00:00 - 18-08 10:30:00 @ 33.59p 7%, 18-08 11:00:00 - 18-08 16:00:00 @ 29.76p 7%, 18-08 22:00:00 - 18-08 23:00:00 @ 29.91p 7% ] reserve 1.12
2026-08-17 00:02:50.184578: Previous plan best metric is 647.86 (cost 688.46) and new plan best metric is 581.62 (cost 609.12)
2026-08-17 00:02:50.184820: New plan metric is significantly better from previous plan, using new plan
2026-08-17 00:02:50.184891: Plan valid is now true after recompute was False
2026-08-17 00:02:50.226408: Best charging limit SoC's [1.12, 1.12, 1.12, 16.0, 1.12, 1.12, 9.0, 1.12, 1.12, 1.12, 1.12]kWh, export []kWh gives import battery 20.26kWh, house 0.0kWh, export 0.0kWh, metric 609.12p, metric10 639.43p
2026-08-17 00:02:50.248157: Plan calculation took 97.50 seconds
2026-08-17 00:02:50.278547: predict compare end_record 08-18 00:00:00, final soc 8.59kWh, metric 313.86p, metric_keep 0kWh, min_soc 7.35kWh @ 08-17 21:55:00, load 11.15kWh, PV 0.0kWh
2026-08-17 00:02:50.294725: Scenario complete for tariff: Agile, cost 313.86p, metric 345.08p
2026-08-17 00:02:50.294847: Compare, best tariff: current metric 104.68p
2026-08-17 00:03:33.954785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:03:33.955081: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:03:33.955161: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:03:33.955307: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:03:33.955374: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:03:33.955397: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:03:33.955415: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:05:00.143237: --------------- PredBat - update at 2026-08-17 00:05:00+01:00 with clock skew 0 minutes, minutes now 5
2026-08-17 00:05:00.144387: Saved current settings to /config/predbat_config.json
2026-08-17 00:05:00.144592: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 00:05:00.144791: 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 00:05:00.145020: 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 00:05:00.179425: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:05:00.179575: days_previous_auto enabled - will 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 00:05:00.179801: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:05:00.180493: 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 00:05:00.180665: Predbat mode is set to Control charge & discharge
2026-08-17 00:05:00.390583: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:05:00.390741: Using load_power data to fill gaps in load_today data
2026-08-17 00:05:01.251850: Processing 721 30-minute periods for power integration
2026-08-17 00:05:01.454966: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:05:01.455401: Car charging hold False, threshold 6.0kWh
2026-08-17 00:05:01.455466: Current data so far today: load 0.03kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:05:01.473683: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:05:01.474431: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:05:01.475215: Standing charge is set to 46.63p
2026-08-17 00:05:01.581067: 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 00:05:01.581339: 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 00:05:01.581536: 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 00:05:01.581728: 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 00:05:01.581953: 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 00:05:01.582176: 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 00:05:01.582364: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582459: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582535: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582617: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582697: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582773: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582850: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.582966: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.583177: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:05:01.583238: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:05:01.588386: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:05:01.588865: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:05:01.634234: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:05:01.634369: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:05:01.635594: High export rate found rates in range 99p to -99p
2026-08-17 00:05:01.657697: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:05:01.657830: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:05:01.657891: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:05:01.673537: Battery level now 10.49kWh, -1hr ago 8.8kWh, at midnight 10.49kWh, battery value change in the last hour 11.6p, change today 0.0p, rate_forward 6.87p
2026-08-17 00:05:01.673932: Last hour: net energy 1.9kWh, import 1.9kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 17.26p, import 17.26p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:05:01.721329: 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-17 00:05:01.721459: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:05:01.791340: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:05:01.813576: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:05:01.813680: Today's predicted so far 0.06kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.06kWh forecast extra.
2026-08-17 00:05:01.813712: Today's actual load so far 0.02kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:05:01.851948: Inverter 0: Type SK Sunsynk
2026-08-17 00:05:01.852062: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:05:01.852261: Reserve min: 7%, battery_min: 7%
2026-08-17 00:05:01.852343: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:05:01.852615: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -55W, load power 460W, PV Power 0W
2026-08-17 00:05:01.852781: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:05:01.852876: Inverter 0 scheduled charge enable is True
2026-08-17 00:05:01.852919: Inverter 0 charge windows currently [{'start': 30, 'end': 90, 'average': 0}, {'start': 1470, 'end': 1530, 'average': 0}]
2026-08-17 00:05:01.853077: Inverter 0 Charge settings: 08-17 00:30:00-08-17 01:30:00, limit 7.0%, power 5.0kW
2026-08-17 00:05:01.853213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:05:01.853250: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:05:01.853288: Inverter 0 scheduled discharge enable is False
2026-08-17 00:05:01.853406: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:05:01.853443: Inverter 0 discharge windows currently []
2026-08-17 00:05:01.853466: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:05:01.853486: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:05:01.853503: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:05:01.920262: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:05:01.920374: Plan was last updated on 2026-08-17 00:00:00+01:00 and is now 5.0 minutes old
2026-08-17 00:05:01.920626: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ]
2026-08-17 00:05:01.920668: Best export window [  ]
2026-08-17 00:05:01.921527: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:05:01.924652: Load divergence over 8.0 hours mean 480.96W, min 271.2W, max 996.6W, std dev 176.2W, divergence 18.32%
2026-08-17 00:05:01.943016: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:05:01.943156: LoadML is_calculating False
2026-08-17 00:05:01.943228: Creating pool of 12 processes to match your CPU count
2026-08-17 00:05:02.073649: predict base end_record 08-19 00:05:00, final soc 1.12kWh, metric 636.99p, metric_keep 356.23kWh, min_soc 1.12kWh @ 08-17 20:00:00, load 27.48kWh, PV 0.0kWh
2026-08-17 00:05:02.219103: Battery has 19.92 hours left - now at 10.72kWh
2026-08-17 00:05:02.267258: predict base10 end_record 08-19 00:05:00, final soc 1.12kWh, metric 675.07p, metric_keep 368.7kWh, min_soc 1.12kWh @ 08-17 19:05:00, load 28.79kWh, PV 0.0kWh
2026-08-17 00:05:02.353335: predict best10 end_record 08-19 00:05:00, final soc 4.69kWh, metric 346.46p, metric_keep 1.5kWh, min_soc 1.43kWh @ 08-17 23:55:00, load 28.79kWh, PV 0.0kWh
2026-08-17 00:05:02.440845: predict best end_record 08-19 00:05:00, final soc 5.68kWh, metric 343.42p, metric_keep 0.02kWh, min_soc 1.95kWh @ 08-17 23:55:00, load 27.48kWh, PV 0.0kWh
2026-08-17 00:05:02.440980: Saving plan best values to HA entities
2026-08-17 00:05:02.671847: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 00:05:02.678607: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 00:05:02.684414: Best charging limit SoC's [16.0, 12.5, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 25.44kWh, house 0.0kWh, export 0.0kWh, metric 343.42p, metric10 346.46p
2026-08-17 00:05:02.762583: Marginal costs baseline metric (no standing charge): 250.1494
2026-08-17 00:05:03.037745: Marginal energy costs matrix computed: min=8.23 max=30.33
2026-08-17 00:05:03.121878: Rate array import [{'start': 5, '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': 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-17 00:05:03.122604: - Your estimated bill for today is £0.73 and tomorrow is £2.24
2026-08-17 00:05:03.122678: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:05:03.122715: - The battery is currently at 67% and is in eco mode for the next 25 minutes.
2026-08-17 00:05:03.122742: - For the next 48 hours there will be no solar generation.
2026-08-17 00:05:03.122768: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 00:05:03.122806: - Your next charge slot will be in 25 minutes where import rates will be cheap (8.0p).
2026-08-17 00:05:03.122836: 
2026-08-17 00:05:03.201769: Plan calculation took 1.28 seconds
2026-08-17 00:05:03.204525: No high rate period found
2026-08-17 00:05:03.256592: Import threshold used for optimisation was 28.6p
2026-08-17 00:05:03.312796: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 25: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:05:03.320847: Inverter 0 Charge window will be: 2026-08-17 00:30:00+01:00 - 2026-08-17 01:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 00:05:03.321041: Inverter 0 configuring charge window now (now 08-17 00:05:00 target set_window_minutes 30 charge start time 08-17 00:30:00
2026-08-17 00:05:03.321201: IOG action latency: 0.0 seconds from slot start
2026-08-17 00:05:03.321382: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:05:03.321628: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:05:03.321718: No export window planned
2026-08-17 00:05:03.321841: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:05:03.321878: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:05:03.322027: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:05:03.322174: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 00:05:03.322237: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 00:05:03.322302: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 00:05:03.322395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322557: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322581: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:05:03.322831: Inverter 0 count register writes 0
2026-08-17 00:05:03.340175: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 00:05:03.346286: Total inverter register writes now 846
2026-08-17 00:05:03.382801: Info: Completed run status Demand
2026-08-17 00:05:03.389677: Info: record_status Demand
2026-08-17 00:05:03.397355: Saved current settings to /config/predbat_config.json
2026-08-17 00:05:03.397652: Compare, best tariff: current metric 104.68p
2026-08-17 00:05:33.516596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:05:33.516898: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:05:33.517022: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:05:33.517214: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:05:33.517288: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:05:33.517310: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:05:33.517329: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:07:33.749358: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:07:33.749635: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:07:33.749680: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:07:33.749816: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:07:33.749855: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:07:33.749877: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:07:33.749895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:09:33.992451: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:09:33.992748: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:09:33.992791: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:09:33.992926: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:09:33.993014: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:09:33.993046: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:09:33.993065: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:09:56.022784: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 00:09:56.979895: Processing 1345 30-minute periods for power integration
2026-08-17 00:09:57.067098: ML Component: Car charging hold False, car energy reported load False
2026-08-17 00:09:57.157749: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:09:57.241014: ML Temperature data points: 48956
2026-08-17 00:09:57.464317: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 00:09:57.499319: ML Component: Data fetch completed, load data age 58.0 days, 16825 data points
2026-08-17 00:09:57.499468: ML Component: No training needed, model age is 0.07 hours
2026-08-17 00:09:57.499527: ML Component: Generating predictions load data age 58.0 days, 16825 data points
2026-08-17 00:09:57.615560: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0217 max_dow {0: 0.08776562499813735, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 00:09:59.764325: ML Component: Generated 576 predictions (total 26.12 kWh over 48h)
2026-08-17 00:09:59.805715: ML Component: Prediction cycle completed
2026-08-17 00:09:59.922776: ML Component: Saved 16825 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 00:10:00.108812: --------------- PredBat - update at 2026-08-17 00:10:00+01:00 with clock skew 0 minutes, minutes now 10
2026-08-17 00:10:00.109980: Saved current settings to /config/predbat_config.json
2026-08-17 00:10:00.110206: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 00:10:00.110301: 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 00:10:00.110377: 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 00:10:00.131155: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:10:00.131478: days_previous_auto enabled - will 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 00:10:00.131665: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:10:00.132244: 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 00:10:00.132373: Predbat mode is set to Control charge & discharge
2026-08-17 00:10:00.350738: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:10:00.351012: Using load_power data to fill gaps in load_today data
2026-08-17 00:10:01.168151: Processing 721 30-minute periods for power integration
2026-08-17 00:10:01.366225: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:10:01.366371: Car charging hold False, threshold 6.0kWh
2026-08-17 00:10:01.366415: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:10:01.383479: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:10:01.383597: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:10:01.384354: Standing charge is set to 46.63p
2026-08-17 00:10:01.475243: 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 00:10:01.475538: 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 00:10:01.475772: 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 00:10:01.476026: 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 00:10:01.476267: 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 00:10:01.476494: 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 00:10:01.476723: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.476857: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477028: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477126: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477242: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477355: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477460: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477566: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477785: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:10:01.477845: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:10:01.482115: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:10:01.482397: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:10:01.518913: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:10:01.519038: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:10:01.520681: High export rate found rates in range 99p to -99p
2026-08-17 00:10:01.542628: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:10:01.542787: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:10:01.542850: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:10:01.556299: Battery level now 10.72kWh, -1hr ago 8.8kWh, at midnight 10.49kWh, battery value change in the last hour 13.2p, change today 1.59p, rate_forward 6.87p
2026-08-17 00:10:01.556651: Last hour: net energy 1.88kWh, import 1.88kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 16.7p, import 16.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:10:01.599970: 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-17 00:10:01.600147: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:10:01.660242: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:10:01.680375: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:10:01.680477: Today's predicted so far 0.12kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.12kWh forecast extra.
2026-08-17 00:10:01.680504: Today's actual load so far 0.03kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:10:01.718963: Inverter 0: Type SK Sunsynk
2026-08-17 00:10:01.719074: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:10:01.719321: Reserve min: 7%, battery_min: 7%
2026-08-17 00:10:01.719417: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:10:01.719754: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 396W, current battery voltage 51.2V, grid power -54W, load power 453W, PV Power 0W
2026-08-17 00:10:01.719977: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:10:01.720103: Inverter 0 scheduled charge enable is True
2026-08-17 00:10:01.720173: Inverter 0 charge windows currently [{'start': 30, 'end': 90, 'average': 0}, {'start': 1470, 'end': 1530, 'average': 0}]
2026-08-17 00:10:01.720322: Inverter 0 Charge settings: 08-17 00:30:00-08-17 01:30:00, limit 7.0%, power 5.0kW
2026-08-17 00:10:01.720502: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:10:01.720547: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:10:01.720596: Inverter 0 scheduled discharge enable is False
2026-08-17 00:10:01.720789: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:10:01.720833: Inverter 0 discharge windows currently []
2026-08-17 00:10:01.720856: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:10:01.720893: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:10:01.721013: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:10:01.785349: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:10:01.785476: Plan was last updated on 2026-08-17 00:00:00+01:00 and is now 10.0 minutes old
2026-08-17 00:10:01.785770: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 100%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 78%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100% ]
2026-08-17 00:10:01.785824: Best export window [  ]
2026-08-17 00:10:01.786646: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:10:01.789846: Load divergence over 8.0 hours mean 475.51W, min 293.4W, max 1030.2W, std dev 172.46W, divergence 18.13%
2026-08-17 00:10:01.808742: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:10:01.808866: LoadML is_calculating False
2026-08-17 00:10:01.808925: Creating pool of 12 processes to match your CPU count
2026-08-17 00:10:01.926926: predict base end_record 08-19 00:10:00, final soc 1.12kWh, metric 635.43p, metric_keep 354.28kWh, min_soc 1.12kWh @ 08-17 20:10:00, load 27.47kWh, PV 0.0kWh
2026-08-17 00:10:02.052905: Battery has 20.0 hours left - now at 10.72kWh
2026-08-17 00:10:02.091724: predict base10 end_record 08-19 00:10:00, final soc 1.12kWh, metric 673.43p, metric_keep 366.75kWh, min_soc 1.12kWh @ 08-17 19:15:00, load 28.78kWh, PV 0.0kWh
2026-08-17 00:10:02.192301: predict best10 end_record 08-19 00:10:00, final soc 4.62kWh, metric 345.91p, metric_keep 1.57kWh, min_soc 1.4kWh @ 08-17 23:55:00, load 28.78kWh, PV 0.0kWh
2026-08-17 00:10:02.277820: predict best end_record 08-19 00:10:00, final soc 5.61kWh, metric 342.97p, metric_keep 0.03kWh, min_soc 1.94kWh @ 08-17 23:55:00, load 27.47kWh, PV 0.0kWh
2026-08-17 00:10:02.277924: Saving plan best values to HA entities
2026-08-17 00:10:02.444909: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:10:02.451552: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:10:02.457147: Best charging limit SoC's [16.0, 12.5, 12.0, 16.0, 16.0]kWh, export []kWh gives import battery 25.38kWh, house 0.0kWh, export 0.0kWh, metric 342.97p, metric10 345.91p
2026-08-17 00:10:02.530745: Marginal costs baseline metric (no standing charge): 249.7017
2026-08-17 00:10:02.779930: Marginal energy costs matrix computed: min=8.13 max=30.3
2026-08-17 00:10:02.857104: Rate array import [{'start': 10, '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': 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-17 00:10:02.857689: - Your estimated bill for today is £0.72 and tomorrow is £2.24
2026-08-17 00:10:02.857729: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:10:02.857747: - The battery is currently at 67% and is in eco mode for the next 20 minutes.
2026-08-17 00:10:02.857761: - For the next 48 hours there will be no solar generation.
2026-08-17 00:10:02.857775: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 00:10:02.857789: - Your next charge slot will be in 20 minutes where import rates will be cheap (8.0p).
2026-08-17 00:10:02.857820: 
2026-08-17 00:10:02.930661: Plan calculation took 1.15 seconds
2026-08-17 00:10:02.934078: No high rate period found
2026-08-17 00:10:02.984981: Import threshold used for optimisation was 28.6p
2026-08-17 00:10:03.036093: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 25: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:10:03.041628: Inverter 0 Charge window will be: 2026-08-17 00:30:00+01:00 - 2026-08-17 01:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 00:10:03.041752: Inverter 0 configuring charge window now (now 08-17 00:10:00 target set_window_minutes 30 charge start time 08-17 00:30:00
2026-08-17 00:10:03.041909: IOG action latency: 0.0 seconds from slot start
2026-08-17 00:10:03.042112: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:10:03.042364: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:10:03.042460: No export window planned
2026-08-17 00:10:03.042580: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:10:03.042617: Adjust idle time, charge 00:30:00-01:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:10:03.042833: Adjust demand (idle) time computed is 00:00:00-00:30:00
2026-08-17 00:10:03.043027: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 00:10:03.043094: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 00:10:03.043156: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 00:10:03.043251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043295: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043362: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:03.043722: Inverter 0 count register writes 0
2026-08-17 00:10:03.059423: 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 00:10:03.059608: Recompute is saving previous plan...
2026-08-17 00:10:03.060631: Best charge window [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 7%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 7%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 7%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 7%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 7%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 7%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 7%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 7%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 7%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 7%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 7%, 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% ]
2026-08-17 00:10:03.060683: Best export window [  ]
2026-08-17 00:10:03.061506: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:10:03.064682: Load divergence over 8.0 hours mean 475.51W, min 293.4W, max 1030.2W, std dev 172.46W, divergence 18.13%
2026-08-17 00:10:03.082707: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:10:03.082817: LoadML is_calculating False
2026-08-17 00:10:03.082886: Creating pool of 12 processes to match your CPU count
2026-08-17 00:10:03.182387: 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 00:10:03.183465: Optimise levels pass started at 2026-08-17 00:10:03
2026-08-17 00:10:03.183554: Optimise all windows, total charge 25 export 1
2026-08-17 00:10:03.604918: >> Region optimisation pass width 960 gives best_metric 204.46p, best_cost 209.88p, best_cycle 33.98kWh, best_import 20.41kWh
2026-08-17 00:10:03.772349: >> Region optimisation pass width 480 gives best_metric 204.46p, best_cost 209.88p, best_cycle 33.98kWh, best_import 20.41kWh
2026-08-17 00:10:04.047118: >> Region optimisation pass width 240 gives best_metric 204.46p, best_cost 209.88p, best_cycle 33.98kWh, best_import 20.41kWh
2026-08-17 00:10:04.683937: >> Region optimisation pass width 120 gives best_metric 204.46p, best_cost 209.88p, best_cycle 33.98kWh, best_import 20.41kWh
2026-08-17 00:10:04.685637: Calculated end_record as 08-18 00:30:00 based on best_price 8.0p, next_charge_start 08-17 00:30:00, max_windows 14
2026-08-17 00:10:04.687159: Optimise levels pass ended at 2026-08-17 00:10:04, duration 1.5 seconds tried 77 combinations
2026-08-17 00:10:04.687277: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 204.46p, best_keep 1.44kWh, best_cycle 33.98kWh, best_carbon 0kg, best_import 20.41kWh
2026-08-17 00:10:04.707159: Starting detailed optimisation end_record 08-18 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, 0, 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 00:10:08.977601: Tweak plan optimisation started metric 62.01p, cost 73.1p
2026-08-17 00:10:09.376249: Tweak optimisation finished metric 61.22p, cost 72.32p, metric_keep 0.16kWh, cycle 9.28kWh, carbon 0kg, import 3.21kWh, changed 8 window(s)
2026-08-17 00:10:09.398168: Swap charge optimisation started metric 61.22p, cost 72.32p, min_improvement_swap 0.1p
2026-08-17 00:10:10.369239: Swap charge optimisation finished metric 61.22p, cost 72.32p
2026-08-17 00:10:10.536717: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 60.58p -> 60.6p, plan now metric 61.27p, cost 72.07p, cycle 9.31kWh, import 3.18kWh
2026-08-17 00:10:10.546230: Raw charge windows [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 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 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% ] reserve 1.12
2026-08-17 00:10:10.546607: Unclipped charge windows [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:10:10.546840: Unfiltered charge windows [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:10:10.547031: Filtered charge windows [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:10:10.584492: Previous plan best metric is 206.22 (cost 233.36) and new plan best metric is 61.22 (cost 72.32)
2026-08-17 00:10:10.584740: New plan metric is significantly better from previous plan, using new plan
2026-08-17 00:10:10.584784: Plan valid is now true after recompute was False
2026-08-17 00:10:10.613511: predict base end_record 08-18 00:30:00, final soc 1.12kWh, metric 159.76p, metric_keep 67.03kWh, min_soc 1.12kWh @ 08-17 20:10:00, load 11.54kWh, PV 0.0kWh
2026-08-17 00:10:10.754301: Battery has 20.0 hours left - now at 10.72kWh
2026-08-17 00:10:10.791309: predict base10 end_record 08-18 00:30:00, final soc 1.12kWh, metric 177.33p, metric_keep 79.5kWh, min_soc 1.12kWh @ 08-17 19:15:00, load 12.09kWh, PV 0.0kWh
2026-08-17 00:10:10.862930: predict best10 end_record 08-18 00:30:00, final soc 1.46kWh, metric 121.57p, metric_keep 1.1kWh, min_soc 1.46kWh @ 08-18 00:25:00, load 12.09kWh, PV 0.0kWh
2026-08-17 00:10:10.942098: predict best end_record 08-18 00:30:00, final soc 1.7kWh, metric 118.71p, metric_keep 0.19kWh, min_soc 1.7kWh @ 08-18 00:25:00, load 11.54kWh, PV 0.0kWh
2026-08-17 00:10:10.942212: Saving plan best values to HA entities
2026-08-17 00:10:11.086959: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:10:11.093608: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:10:11.099144: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.18kWh, house 0.0kWh, export 0.0kWh, metric 118.71p, metric10 121.57p
2026-08-17 00:10:11.176219: Marginal costs baseline metric (no standing charge): 72.0715
2026-08-17 00:10:11.469220: Marginal energy costs matrix computed: min=6.67 max=30.4
2026-08-17 00:10:11.542461: Rate array import [{'start': 10, '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': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 10, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:10:11.542846: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:10:11.542891: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:10:11.542914: - The battery is currently at 67% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 00:10:11.542932: - For the next 48 hours there will be no solar generation.
2026-08-17 00:10:11.542951: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 00:10:11.542969: 
2026-08-17 00:10:11.598329: Plan calculation took 8.54 seconds
2026-08-17 00:10:11.598716: Inverter 0: Type SK Sunsynk
2026-08-17 00:10:11.598756: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:10:11.598950: Reserve min: 7%, battery_min: 7%
2026-08-17 00:10:11.599031: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:10:11.599300: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 392W, current battery voltage 51.2V, grid power -55W, load power 449W, PV Power 0W
2026-08-17 00:10:11.599506: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:10:11.599593: Inverter 0 scheduled charge enable is True
2026-08-17 00:10:11.599630: Inverter 0 charge windows currently [{'start': 30, 'end': 90, 'average': 0}, {'start': 1470, 'end': 1530, 'average': 0}]
2026-08-17 00:10:11.599711: Inverter 0 Charge settings: 08-17 00:30:00-08-17 01:30:00, limit 7.0%, power 5.0kW
2026-08-17 00:10:11.599808: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:10:11.599843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:10:11.599874: Inverter 0 scheduled discharge enable is False
2026-08-17 00:10:11.599978: Inverter 0 idle time is 08-17 00:00:00-08-17 00:30:00
2026-08-17 00:10:11.600043: Inverter 0 discharge windows currently []
2026-08-17 00:10:11.600064: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:10:11.600079: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:10:11.600094: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:10:11.653287: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 67%, target 66%
2026-08-17 00:10:11.653523: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:10:11.653634: Inverter 0 Hold charging as SoC 67% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:10:11.653800: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:10:11.654033: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:10:11.654136: Inverter 0 set new demand (idle) start time to 05:00:00 was 00:00:00
2026-08-17 00:10:16.662256: Inverter 0 write_and_poll_value: Wrote 05:00:00 to idle_start_time, successfully now 05:00:00
2026-08-17 00:10:16.662393: Inverter 0 set new demand (idle) end time to 23:59:00 was 00:30:00
2026-08-17 00:10:21.671396: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-17 00:10:26.680018: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_start_time, successfully now 00:00:00
2026-08-17 00:10:31.688471: Inverter 0 write_and_poll_value: Wrote 05:00:00 to charge_end_time, successfully now 05:00:00
2026-08-17 00:10:31.688655: Inverter 0 Updated start and end charge window to 00:00:00 - 05:00:00 (old 00:30:00 - 01:30:00)
2026-08-17 00:10:31.688728: No export window planned
2026-08-17 00:10:31.689020: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:10:31.689092: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:10:31.689401: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:10:31.689601: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:10:31.689743: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 67% -> 66% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 10.56kWh
2026-08-17 00:10:31.689841: Inverter 0 Current charge limit is 7% and new target is 66%
2026-08-17 00:10:36.730955: Inverter 0 write_and_poll_value: Wrote 66 to charge_limit, successfully now 66.0
2026-08-17 00:10:36.731267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.731558: 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 00:10:36.768414: 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 00:10:36.810408: 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 00:10:36.815322: 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 00:10:36.860266: 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 00:10:36.865672: 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 00:10:36.902705: 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 00:10:36.951796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.951893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.951928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.951955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.951980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.952019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.952054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:10:36.952077: Inverter 0 count register writes 1
2026-08-17 00:10:36.982570: Total inverter register writes now 847
2026-08-17 00:10:37.017833: Info: Completed run status Hold charging
2026-08-17 00:10:37.342862: Info: record_status Hold charging target 67%-66%
2026-08-17 00:10:37.351250: Saved current settings to /config/predbat_config.json
2026-08-17 00:10:37.351630: Compare, best tariff: current metric 104.68p
2026-08-17 00:11:18.490106: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:11:18.490387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:11:18.490435: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:11:18.490602: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:11:18.490660: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:11:18.490682: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:11:18.490700: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:13:18.723394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:13:18.723666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:13:18.723730: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:13:18.723901: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:13:18.723940: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:13:18.723985: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:13:18.724003: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:14:43.377445: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 00:14:43.528814: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 00:15:00.922915: --------------- PredBat - update at 2026-08-17 00:15:00+01:00 with clock skew 0 minutes, minutes now 15
2026-08-17 00:15:00.923790: Saved current settings to /config/predbat_config.json
2026-08-17 00:15:00.923985: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 00:15:00.924120: 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 00:15:00.924239: 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 00:15:00.948505: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:15:00.948615: days_previous_auto enabled - will 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 00:15:00.948755: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:15:00.949219: 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 00:15:00.949344: Predbat mode is set to Control charge & discharge
2026-08-17 00:15:01.137093: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:15:01.137239: Using load_power data to fill gaps in load_today data
2026-08-17 00:15:01.828572: Processing 721 30-minute periods for power integration
2026-08-17 00:15:01.984201: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:15:01.984343: Car charging hold False, threshold 6.0kWh
2026-08-17 00:15:01.984380: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:15:01.998386: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:15:01.998492: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:15:01.999170: Standing charge is set to 46.63p
2026-08-17 00:15:02.080598: 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 00:15:02.081083: 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 00:15:02.081252: 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 00:15:02.081430: 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 00:15:02.081577: 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 00:15:02.081720: 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 00:15:02.081866: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.081942: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082001: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082093: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082151: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082212: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082291: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082350: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082483: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:15:02.082534: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:15:02.086725: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:15:02.087078: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:15:02.122046: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:15:02.122163: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:15:02.123162: High export rate found rates in range 99p to -99p
2026-08-17 00:15:02.140225: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:15:02.140321: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:15:02.140372: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:15:02.153795: Battery level now 10.72kWh, -1hr ago 8.8kWh, at midnight 10.49kWh, battery value change in the last hour 13.2p, change today 1.59p, rate_forward 6.87p
2026-08-17 00:15:02.154105: Last hour: net energy 1.87kWh, import 1.87kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 16.14p, import 16.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:15:02.196137: 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-17 00:15:02.196247: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:15:02.254554: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:15:02.271889: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:15:02.271980: Today's predicted so far 0.19kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.19kWh forecast extra.
2026-08-17 00:15:02.272006: Today's actual load so far 0.03kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:15:02.308718: Inverter 0: Type SK Sunsynk
2026-08-17 00:15:02.308832: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:15:02.309146: Reserve min: 7%, battery_min: 7%
2026-08-17 00:15:02.309251: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:15:02.309633: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 434W, current battery voltage 51.2V, grid power -55W, load power 490W, PV Power 0W
2026-08-17 00:15:02.309834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:15:02.309931: Inverter 0 scheduled charge enable is True
2026-08-17 00:15:02.310004: 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-17 00:15:02.310107: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:15:02.310232: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:15:02.310283: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:15:02.310321: Inverter 0 scheduled discharge enable is False
2026-08-17 00:15:02.310444: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:15:02.310481: Inverter 0 discharge windows currently []
2026-08-17 00:15:02.310504: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:15:02.310527: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:15:02.310544: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:15:02.370751: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:15:02.370867: Plan was last updated on 2026-08-17 00:10:00+01:00 and is now 5.0 minutes old
2026-08-17 00:15:02.371116: Best charge window [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ]
2026-08-17 00:15:02.371856: Best export window [  ]
2026-08-17 00:15:02.372867: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:15:02.376132: Load divergence over 8.0 hours mean 468.63W, min 259.8W, max 1153.2W, std dev 171.19W, divergence 18.26%
2026-08-17 00:15:02.391807: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:15:02.391949: LoadML is_calculating False
2026-08-17 00:15:02.392010: Creating pool of 12 processes to match your CPU count
2026-08-17 00:15:02.519677: predict base end_record 08-18 00:35:00, final soc 4.25kWh, metric 140.49p, metric_keep 0.74kWh, min_soc 1.54kWh @ 08-17 23:55:00, load 11.54kWh, PV 0.0kWh
2026-08-17 00:15:02.647678: Battery has 48.0 hours left - now at 10.72kWh
2026-08-17 00:15:02.686229: predict base10 end_record 08-18 00:35:00, final soc 3.38kWh, metric 137.9p, metric_keep 4.32kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 12.09kWh, PV 0.0kWh
2026-08-17 00:15:02.770823: predict best10 end_record 08-18 00:35:00, final soc 1.82kWh, metric 124.62p, metric_keep 1.1kWh, min_soc 1.5kWh @ 08-18 00:25:00, load 12.09kWh, PV 0.0kWh
2026-08-17 00:15:02.867092: predict best end_record 08-18 00:35:00, final soc 2.13kWh, metric 122.34p, metric_keep 0.15kWh, min_soc 1.74kWh @ 08-18 00:25:00, load 11.54kWh, PV 0.0kWh
2026-08-17 00:15:02.867702: Saving plan best values to HA entities
2026-08-17 00:15:03.087488: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:15:03.094071: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:15:03.100234: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.63kWh, house 0.0kWh, export 0.0kWh, metric 122.34p, metric10 124.62p
2026-08-17 00:15:03.183614: Marginal costs baseline metric (no standing charge): 75.704
2026-08-17 00:15:03.495688: Marginal energy costs matrix computed: min=6.44 max=30.38
2026-08-17 00:15:03.565910: Rate array import [{'start': 15, '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': 1475, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 15, 'end': 1475, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:15:03.566555: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:15:03.566607: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:15:03.566630: - The battery is currently at 67% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 00:15:03.566650: - For the next 48 hours there will be no solar generation.
2026-08-17 00:15:03.566667: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 00:15:03.566684: 
2026-08-17 00:15:03.622634: Plan calculation took 1.25 seconds
2026-08-17 00:15:03.626041: No high rate period found
2026-08-17 00:15:03.678927: Import threshold used for optimisation was 8.0p
2026-08-17 00:15:03.741600: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 25: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:15:03.748640: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:15:03.748773: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 67%, target 66%
2026-08-17 00:15:03.749021: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:15:03.749147: Inverter 0 Hold charging as SoC 67% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:15:03.749452: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:15:03.749729: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:15:03.749861: No export window planned
2026-08-17 00:15:03.749986: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:15:03.750023: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:15:03.750157: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:15:03.750294: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:15:03.750370: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 67% -> 66% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 10.56kWh
2026-08-17 00:15:03.750432: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:15:03.750537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750799: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750835: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750861: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750886: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750917: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750943: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.750971: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:15:03.751216: Inverter 0 count register writes 0
2026-08-17 00:15:03.767835: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 00:15:03.773170: Total inverter register writes now 847
2026-08-17 00:15:03.805318: Info: Completed run status Hold charging
2026-08-17 00:15:03.812433: Info: record_status Hold charging target 67%-66%
2026-08-17 00:15:03.819668: Saved current settings to /config/predbat_config.json
2026-08-17 00:15:03.820084: Compare, best tariff: current metric 104.68p
2026-08-17 00:15:33.929177: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:15:33.929533: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:15:33.929590: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:15:33.929742: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:15:33.929788: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:15:33.929811: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:15:33.929829: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:15:36.891052: Info: HAHistory: Pruning history data started.
2026-08-17 00:15:36.894096: Info: HAHistory: Pruning history data completed.
2026-08-17 00:17:34.165836: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:17:34.166141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:17:34.166188: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:17:34.166332: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:17:34.166372: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:17:34.166394: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:17:34.166412: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:19:48.428828: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:19:48.429296: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:19:48.429355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:19:48.429593: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:19:48.429641: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:19:48.429674: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:19:48.429717: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:20:00.531942: --------------- PredBat - update at 2026-08-17 00:20:00+01:00 with clock skew 0 minutes, minutes now 20
2026-08-17 00:20:00.532727: Saved current settings to /config/predbat_config.json
2026-08-17 00:20:00.532856: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 00:20:00.533033: 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 00:20:00.533142: 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 00:20:00.554521: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:20:00.554653: days_previous_auto enabled - will 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 00:20:00.554919: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:20:00.555501: 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 00:20:00.555641: Predbat mode is set to Control charge & discharge
2026-08-17 00:20:00.784879: Found 21602 load_today datapoints going back 27 days
2026-08-17 00:20:00.785161: Using load_power data to fill gaps in load_today data
2026-08-17 00:20:01.720613: Processing 721 30-minute periods for power integration
2026-08-17 00:20:01.914699: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:20:01.914862: Car charging hold False, threshold 6.0kWh
2026-08-17 00:20:01.914923: Current data so far today: load 0.15kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:20:01.932088: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:20:01.932199: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:20:01.932938: Standing charge is set to 46.63p
2026-08-17 00:20:02.033189: 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 00:20:02.033455: 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 00:20:02.033689: 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 00:20:02.033879: 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 00:20:02.034089: 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 00:20:02.034274: 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 00:20:02.034462: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034556: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034638: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034716: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034786: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034868: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.034960: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.035038: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.035206: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:20:02.035267: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:20:02.040446: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:20:02.040965: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:20:02.084676: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:20:02.084809: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:20:02.086158: High export rate found rates in range 99p to -99p
2026-08-17 00:20:02.107894: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:20:02.108148: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:20:02.108203: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:20:02.120739: Battery level now 10.72kWh, -1hr ago 8.76kWh, at midnight 10.49kWh, battery value change in the last hour 13.47p, change today 1.59p, rate_forward 6.87p
2026-08-17 00:20:02.121149: Last hour: net energy 1.85kWh, import 1.85kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 15.57p, import 15.57p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:20:02.203420: 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-17 00:20:02.203562: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:20:02.284421: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:20:02.308111: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:20:02.308229: Today's predicted so far 0.26kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.26kWh forecast extra.
2026-08-17 00:20:02.308262: Today's actual load so far 0.12kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:20:02.349280: Inverter 0: Type SK Sunsynk
2026-08-17 00:20:02.349378: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:20:02.349575: Reserve min: 7%, battery_min: 7%
2026-08-17 00:20:02.349656: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:20:02.349961: Inverter 0 SoC: 10.59kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 0W, current battery voltage 51.2V, grid power -488W, load power 488W, PV Power 0W
2026-08-17 00:20:02.350127: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:20:02.350215: Inverter 0 scheduled charge enable is True
2026-08-17 00:20:02.350264: 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-17 00:20:02.350353: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:20:02.350474: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:20:02.350509: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:20:02.350546: Inverter 0 scheduled discharge enable is False
2026-08-17 00:20:02.350662: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:20:02.350698: Inverter 0 discharge windows currently []
2026-08-17 00:20:02.350720: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:20:02.350739: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:20:02.350762: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:20:02.438550: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:20:02.438658: Plan was last updated on 2026-08-17 00:10:00+01:00 and is now 10.0 minutes old
2026-08-17 00:20:02.438986: Best charge window [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ]
2026-08-17 00:20:02.439061: Best export window [  ]
2026-08-17 00:20:02.439856: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:20:02.443149: Load divergence over 8.0 hours mean 464.64W, min 260.4W, max 1047.6W, std dev 168.25W, divergence 18.11%
2026-08-17 00:20:02.461752: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:20:02.461882: LoadML is_calculating False
2026-08-17 00:20:02.462063: Creating pool of 12 processes to match your CPU count
2026-08-17 00:20:02.603559: predict base end_record 08-18 00:40:00, final soc 4.5kWh, metric 143.86p, metric_keep 1.44kWh, min_soc 1.39kWh @ 08-17 23:55:00, load 11.71kWh, PV 0.0kWh
2026-08-17 00:20:02.741611: Battery has 48.0 hours left - now at 10.59kWh
2026-08-17 00:20:02.789266: predict base10 end_record 08-18 00:40:00, final soc 3.71kWh, metric 141.8p, metric_keep 5.92kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.26kWh, PV 0.0kWh
2026-08-17 00:20:02.872647: predict best10 end_record 08-18 00:40:00, final soc 2.17kWh, metric 128.86p, metric_keep 1.06kWh, min_soc 1.53kWh @ 08-18 00:25:00, load 12.26kWh, PV 0.0kWh
2026-08-17 00:20:02.962092: predict best end_record 08-18 00:40:00, final soc 2.55kWh, metric 127.15p, metric_keep 0.13kWh, min_soc 1.77kWh @ 08-18 00:25:00, load 11.71kWh, PV 0.0kWh
2026-08-17 00:20:02.962189: Saving plan best values to HA entities
2026-08-17 00:20:03.133581: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:20:03.140539: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:20:03.147141: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.24kWh, house 0.0kWh, export 0.0kWh, metric 127.15p, metric10 128.86p
2026-08-17 00:20:03.229470: Marginal costs baseline metric (no standing charge): 80.5194
2026-08-17 00:20:03.525862: Marginal energy costs matrix computed: min=6.51 max=30.37
2026-08-17 00:20:03.605546: Rate array import [{'start': 20, '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': 1480, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 20, 'end': 1480, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:20:03.606004: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:20:03.606059: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:20:03.606082: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 00:20:03.606102: - For the next 48 hours there will be no solar generation.
2026-08-17 00:20:03.606120: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 00:20:03.606140: 
2026-08-17 00:20:03.658793: Plan calculation took 1.22 seconds
2026-08-17 00:20:03.662097: No high rate period found
2026-08-17 00:20:03.715809: Import threshold used for optimisation was 8.0p
2026-08-17 00:20:03.778891: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 25: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:20:03.786122: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:20:03.786248: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:20:03.786446: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:20:03.786552: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:20:03.786727: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:20:03.787026: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:20:03.787157: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-17 00:20:08.793660: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-17 00:20:13.839152: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-17 00:20:13.839317: No export window planned
2026-08-17 00:20:13.839519: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:20:13.839593: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:20:13.839841: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:20:13.839999: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:20:13.840079: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is -0.03kWh and this battery needs to add -0.03kWh to get to 10.56kWh
2026-08-17 00:20:13.840160: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:20:13.840286: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840410: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840558: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840628: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840656: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840687: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840713: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840742: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840772: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840920: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.840994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.841029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.841054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:13.841108: Inverter 0 count register writes 1
2026-08-17 00:20:13.861745: 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 00:20:13.861990: Recompute is saving previous plan...
2026-08-17 00:20:13.863057: Best charge window [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66% ]
2026-08-17 00:20:13.863113: Best export window [  ]
2026-08-17 00:20:13.863945: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:20:13.867327: Load divergence over 8.0 hours mean 464.64W, min 260.4W, max 1047.6W, std dev 168.25W, divergence 18.11%
2026-08-17 00:20:13.885054: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:20:13.885183: LoadML is_calculating False
2026-08-17 00:20:13.885259: Creating pool of 12 processes to match your CPU count
2026-08-17 00:20:13.988212: 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 00:20:13.989222: Optimise levels pass started at 2026-08-17 00:20:13
2026-08-17 00:20:13.989292: Optimise all windows, total charge 25 export 1
2026-08-17 00:20:14.395274: >> Region optimisation pass width 960 gives best_metric 208.6p, best_cost 234.2p, best_cycle 36.12kWh, best_import 23.45kWh
2026-08-17 00:20:14.568124: >> Region optimisation pass width 480 gives best_metric 208.6p, best_cost 234.2p, best_cycle 36.12kWh, best_import 23.45kWh
2026-08-17 00:20:14.886072: >> Region optimisation pass width 240 gives best_metric 208.6p, best_cost 234.2p, best_cycle 36.12kWh, best_import 23.45kWh
2026-08-17 00:20:15.487508: >> Region optimisation pass width 120 gives best_metric 208.6p, best_cost 234.2p, best_cycle 36.12kWh, best_import 23.45kWh
2026-08-17 00:20:15.488000: Calculated end_record as 08-18 00:30:00 based on best_price 8.0p, next_charge_start 08-17 00:30:00, max_windows 14
2026-08-17 00:20:15.488085: Optimise levels pass ended at 2026-08-17 00:20:15, duration 1.5 seconds tried 78 combinations
2026-08-17 00:20:15.488164: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 208.6p, best_keep 0.11kWh, best_cycle 36.12kWh, best_carbon 0kg, best_import 23.45kWh
2026-08-17 00:20:15.508685: Starting detailed optimisation end_record 08-18 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, 0, 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 00:20:18.811023: Tweak plan optimisation started metric 62.26p, cost 75.88p
2026-08-17 00:20:19.095978: Tweak optimisation finished metric 62.26p, cost 75.88p, metric_keep 0kWh, cycle 11.07kWh, carbon 0kg, import 3.66kWh, changed 8 window(s)
2026-08-17 00:20:19.115745: Swap charge optimisation started metric 62.26p, cost 75.88p, min_improvement_swap 0.1p
2026-08-17 00:20:20.240446: Swap charge optimisation finished metric 62.26p, cost 75.88p
2026-08-17 00:20:20.352432: Pruned 1 dead plan slot(s) in 8 trial(s), nominal metric 61.55p -> 61.55p, plan now metric 62.26p, cost 75.88p, cycle 11.07kWh, import 3.66kWh
2026-08-17 00:20:20.363925: Raw charge windows [ 17-08 00:00:00 - 17-08 00:30:00 @ 8.0p 66%, 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 00:20:20.364346: Unclipped charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:20:20.364594: Unfiltered charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:20:20.364805: Filtered charge windows [ 17-08 00:00:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:20:20.405605: Previous plan best metric is 60.98 (cost 72.62) and new plan best metric is 62.26 (cost 75.88)
2026-08-17 00:20:20.406048: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 00:20:20.406192: Plan valid is now true after recompute was False
2026-08-17 00:20:20.444603: predict base end_record 08-18 00:30:00, final soc 3.72kWh, metric 135.75p, metric_keep 1.44kWh, min_soc 1.39kWh @ 08-17 23:55:00, load 11.53kWh, PV 0.0kWh
2026-08-17 00:20:20.568220: Battery has 48.0 hours left - now at 10.59kWh
2026-08-17 00:20:20.618369: predict base10 end_record 08-18 00:30:00, final soc 3.06kWh, metric 134.72p, metric_keep 5.92kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.07kWh, PV 0.0kWh
2026-08-17 00:20:20.720716: predict best10 end_record 08-18 00:30:00, final soc 1.53kWh, metric 121.78p, metric_keep 1.01kWh, min_soc 1.53kWh @ 08-18 00:25:00, load 12.07kWh, PV 0.0kWh
2026-08-17 00:20:20.811622: predict best end_record 08-18 00:30:00, final soc 1.77kWh, metric 119.04p, metric_keep 0.13kWh, min_soc 1.77kWh @ 08-18 00:25:00, load 11.53kWh, PV 0.0kWh
2026-08-17 00:20:20.811721: Saving plan best values to HA entities
2026-08-17 00:20:21.068605: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:20:21.080415: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:20:21.087612: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.22kWh, house 0.0kWh, export 0.0kWh, metric 119.04p, metric10 121.78p
2026-08-17 00:20:21.161169: Marginal costs baseline metric (no standing charge): 72.4039
2026-08-17 00:20:21.479023: Marginal energy costs matrix computed: min=6.51 max=30.37
2026-08-17 00:20:21.582320: Rate array import [{'start': 20, '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': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 20, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:20:21.582754: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:20:21.582800: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:20:21.582822: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 00:20:21.582841: - For the next 48 hours there will be no solar generation.
2026-08-17 00:20:21.582858: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 00:20:21.582877: 
2026-08-17 00:20:21.636849: Plan calculation took 7.77 seconds
2026-08-17 00:20:21.637243: Inverter 0: Type SK Sunsynk
2026-08-17 00:20:21.637295: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:20:21.637521: Reserve min: 7%, battery_min: 7%
2026-08-17 00:20:21.637602: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:20:21.637928: Inverter 0 SoC: 10.59kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power 0W, current battery voltage 51.2V, grid power -488W, load power 488W, PV Power 0W
2026-08-17 00:20:21.638188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:20:21.638291: Inverter 0 scheduled charge enable is True
2026-08-17 00:20:21.638344: 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-17 00:20:21.638467: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:20:21.638591: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:20:21.638631: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:20:21.638669: Inverter 0 scheduled discharge enable is False
2026-08-17 00:20:21.638792: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:20:21.638830: Inverter 0 discharge windows currently []
2026-08-17 00:20:21.638853: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:20:21.638874: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:20:21.638892: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:20:21.693537: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:20:21.693686: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:20:21.693824: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:20:21.693905: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:20:21.694075: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:20:21.694276: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:20:21.694388: No export window planned
2026-08-17 00:20:21.694525: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:20:21.694562: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:20:21.694702: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:20:21.694791: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:20:21.694852: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is -0.03kWh and this battery needs to add -0.03kWh to get to 10.56kWh
2026-08-17 00:20:21.694904: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:20:21.695034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695259: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695336: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695413: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695472: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695569: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695609: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695678: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.695973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.696060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.696126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.696177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:20:21.696220: Inverter 0 count register writes 0
2026-08-17 00:20:21.721862: Total inverter register writes now 848
2026-08-17 00:20:21.758403: Info: Completed run status Hold charging
2026-08-17 00:20:21.764823: Info: record_status Hold charging target 66%-66%
2026-08-17 00:20:21.771967: Saved current settings to /config/predbat_config.json
2026-08-17 00:20:21.772298: Compare, best tariff: current metric 104.68p
2026-08-17 00:21:03.910592: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:21:03.911031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:21:03.911111: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:21:03.911370: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:21:03.911435: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:21:03.911476: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:21:03.911513: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:23:04.150982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:23:04.151305: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:23:04.151365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:23:04.151551: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:23:04.151618: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:23:04.151668: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:23:04.151712: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:25:00.380052: --------------- PredBat - update at 2026-08-17 00:25:00+01:00 with clock skew 0 minutes, minutes now 25
2026-08-17 00:25:00.380980: Saved current settings to /config/predbat_config.json
2026-08-17 00:25:00.381143: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 00:25:00.381288: 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 00:25:00.381430: 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 00:25:00.404125: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:25:00.404266: days_previous_auto enabled - will 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 00:25:00.404491: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:25:00.405117: 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 00:25:00.405253: Predbat mode is set to Control charge & discharge
2026-08-17 00:25:00.574972: Found 21602 load_today datapoints going back 27 days
2026-08-17 00:25:00.575135: Using load_power data to fill gaps in load_today data
2026-08-17 00:25:01.259343: Processing 721 30-minute periods for power integration
2026-08-17 00:25:01.420446: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:25:01.420563: Car charging hold False, threshold 6.0kWh
2026-08-17 00:25:01.420602: Current data so far today: load 0.2kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:25:01.434867: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:25:01.434957: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:25:01.435618: Standing charge is set to 46.63p
2026-08-17 00:25:01.526646: 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 00:25:01.526941: 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 00:25:01.527266: 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 00:25:01.527838: 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 00:25:01.528012: 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 00:25:01.528162: 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 00:25:01.528330: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528420: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528485: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528543: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528597: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528659: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528714: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528791: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.528923: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:25:01.529005: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:25:01.533258: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:25:01.533572: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:25:01.567597: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:25:01.567722: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:25:01.568776: High export rate found rates in range 99p to -99p
2026-08-17 00:25:01.588339: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:25:01.588483: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:25:01.588537: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:25:01.602118: Battery level now 10.59kWh, -1hr ago 8.76kWh, at midnight 10.49kWh, battery value change in the last hour 12.59p, change today 0.71p, rate_forward 6.87p
2026-08-17 00:25:01.602444: Last hour: net energy 1.83kWh, import 1.83kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 15.01p, import 15.01p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:25:01.645660: 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-17 00:25:01.645772: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:25:01.713368: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:25:01.731051: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:25:01.731181: Today's predicted so far 0.34kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.34kWh forecast extra.
2026-08-17 00:25:01.731217: Today's actual load so far 0.17kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:25:01.794858: Inverter 0: Type SK Sunsynk
2026-08-17 00:25:01.795993: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:25:01.797136: Reserve min: 7%, battery_min: 7%
2026-08-17 00:25:01.797271: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:25:01.797617: Inverter 0 SoC: 10.59kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -503W, load power 503W, PV Power 0W
2026-08-17 00:25:01.797831: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:25:01.797988: Inverter 0 scheduled charge enable is True
2026-08-17 00:25:01.798100: 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-17 00:25:01.798254: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:25:01.798557: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:25:01.798604: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:25:01.798652: Inverter 0 scheduled discharge enable is False
2026-08-17 00:25:01.798845: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:25:01.799490: Inverter 0 discharge windows currently []
2026-08-17 00:25:01.799764: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:25:01.800610: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:25:01.800671: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:25:01.884345: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:25:01.884457: Plan was last updated on 2026-08-17 00:20:00+01:00 and is now 5.0 minutes old
2026-08-17 00:25:01.884750: Best charge window [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ]
2026-08-17 00:25:01.884799: Best export window [  ]
2026-08-17 00:25:01.885616: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:25:01.888115: Load divergence over 8.0 hours mean 459.36W, min 260.4W, max 1060.8W, std dev 166.47W, divergence 18.12%
2026-08-17 00:25:01.908693: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:25:01.908827: LoadML is_calculating False
2026-08-17 00:25:01.908884: Creating pool of 12 processes to match your CPU count
2026-08-17 00:25:02.045809: predict base end_record 08-18 00:35:00, final soc 4.09kWh, metric 139.05p, metric_keep 1.47kWh, min_soc 1.37kWh @ 08-17 23:55:00, load 11.59kWh, PV 0.0kWh
2026-08-17 00:25:02.193177: Battery has 48.0 hours left - now at 10.59kWh
2026-08-17 00:25:02.266554: predict base10 end_record 08-18 00:35:00, final soc 3.38kWh, metric 137.61p, metric_keep 5.92kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.13kWh, PV 0.0kWh
2026-08-17 00:25:02.378775: predict best10 end_record 08-18 00:35:00, final soc 1.88kWh, metric 124.89p, metric_keep 1.06kWh, min_soc 1.56kWh @ 08-18 00:25:00, load 12.13kWh, PV 0.0kWh
2026-08-17 00:25:02.463502: predict best end_record 08-18 00:35:00, final soc 2.18kWh, metric 122.64p, metric_keep 0.13kWh, min_soc 1.79kWh @ 08-18 00:25:00, load 11.59kWh, PV 0.0kWh
2026-08-17 00:25:02.463612: Saving plan best values to HA entities
2026-08-17 00:25:02.673930: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:25:02.679229: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:25:02.684555: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.67kWh, house 0.0kWh, export 0.0kWh, metric 122.64p, metric10 124.89p
2026-08-17 00:25:02.749741: Marginal costs baseline metric (no standing charge): 76.0101
2026-08-17 00:25:02.978446: Marginal energy costs matrix computed: min=6.65 max=30.39
2026-08-17 00:25:03.040851: Rate array import [{'start': 25, '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': 1475, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 25, 'end': 1475, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:25:03.041259: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:25:03.041303: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:25:03.041339: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 00:25:03.041355: - For the next 48 hours there will be no solar generation.
2026-08-17 00:25:03.041370: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 00:25:03.041388: 
2026-08-17 00:25:03.089399: Plan calculation took 1.20 seconds
2026-08-17 00:25:03.092574: No high rate period found
2026-08-17 00:25:03.183919: Import threshold used for optimisation was 8.0p
2026-08-17 00:25:03.236755: Low import rate windows [0: 08-17 00:00:00 - 08-17 00:30:00 @ 8.0, 1: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 2: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 3: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 4: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 5: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 6: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 7: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 8: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 9: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 10: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 11: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 25: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:25:03.242138: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:25:03.242241: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:25:03.242389: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:25:03.242470: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:25:03.242592: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:25:03.242806: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:25:03.242932: No export window planned
2026-08-17 00:25:03.243064: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:25:03.243136: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:25:03.243294: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:25:03.243411: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:25:03.243497: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is -0.03kWh and this battery needs to add -0.03kWh to get to 10.56kWh
2026-08-17 00:25:03.243579: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:25:03.243730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.243774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.243806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.243865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.243918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.243978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244022: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244087: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244132: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244170: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244267: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244332: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244387: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:25:03.244790: Inverter 0 count register writes 0
2026-08-17 00:25:03.262706: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 00:25:03.268748: Total inverter register writes now 848
2026-08-17 00:25:03.301945: Info: Completed run status Hold charging
2026-08-17 00:25:03.309293: Info: record_status Hold charging target 66%-66%
2026-08-17 00:25:03.317105: Saved current settings to /config/predbat_config.json
2026-08-17 00:25:03.317430: Compare, best tariff: current metric 104.68p
2026-08-17 00:25:33.427740: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:25:33.428153: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:25:33.428228: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:25:33.428478: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:25:33.428536: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:25:33.428616: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:25:33.428659: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:27:33.662084: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:27:33.662356: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:27:33.662393: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:27:33.662697: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:27:33.662762: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:27:33.662788: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:27:33.662806: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:29:33.913410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:29:33.913787: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:29:33.913886: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:29:33.914104: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:29:33.914164: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:29:33.914200: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:29:33.914219: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:30:00.021398: --------------- PredBat - update at 2026-08-17 00:30:00+01:00 with clock skew 0 minutes, minutes now 30
2026-08-17 00:30:00.022252: Saved current settings to /config/predbat_config.json
2026-08-17 00:30:00.022390: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 00:30:00.022482: 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 00:30:00.022618: 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 00:30:00.058259: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:30:00.058445: days_previous_auto enabled - will 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 00:30:00.058666: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:30:00.059198: 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 00:30:00.059319: Predbat mode is set to Control charge & discharge
2026-08-17 00:30:00.314716: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:30:00.314959: Using load_power data to fill gaps in load_today data
2026-08-17 00:30:01.282507: Processing 721 30-minute periods for power integration
2026-08-17 00:30:01.470892: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:30:01.471077: Car charging hold False, threshold 6.0kWh
2026-08-17 00:30:01.471136: Current data so far today: load 0.25kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:30:01.488663: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:30:01.488811: Cars: SoC: [31.644000000000002]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:30:01.489488: Standing charge is set to 46.63p
2026-08-17 00:30:01.582814: 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 00:30:01.583055: 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 00:30:01.583227: 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 00:30:01.583391: 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 00:30:01.583546: 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 00:30:01.583715: 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 00:30:01.583873: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.583953: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584022: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584089: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584153: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584220: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584285: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584347: Octopus: Intelligent slot at 08-17 01:00:00-08-17 05:00:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584513: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:30:01.584566: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:30:01.589113: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:30:01.589440: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:30:01.627346: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:30:01.627483: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:30:01.628672: High export rate found rates in range 99p to -99p
2026-08-17 00:30:01.646748: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:30:01.647648: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:30:01.650254: Car 0 charging plan is: [{'start': 60, 'end': 300, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:30:01.674952: Battery level now 10.59kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour 13.42p, change today 0.71p, rate_forward 6.87p
2026-08-17 00:30:01.675433: Last hour: net energy 1.92kWh, import 1.92kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 15.33p, import 15.33p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:30:01.761835: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 47.43p, import 0.8p, export 0.0p, carbon 0.0kg
2026-08-17 00:30:01.761974: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:30:01.850134: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:30:01.874618: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:30:01.876021: Today's predicted so far 0.48kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.48kWh forecast extra.
2026-08-17 00:30:01.877325: Today's actual load so far 0.23kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:30:01.939348: Inverter 0: Type SK Sunsynk
2026-08-17 00:30:01.939460: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:30:01.939668: Reserve min: 7%, battery_min: 7%
2026-08-17 00:30:01.939755: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:30:01.940054: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -509W, load power 509W, PV Power 0W
2026-08-17 00:30:01.940220: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:30:01.940312: Inverter 0 scheduled charge enable is True
2026-08-17 00:30:01.940369: 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-17 00:30:01.940504: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:30:01.940662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:30:01.940740: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:30:01.940847: Inverter 0 scheduled discharge enable is False
2026-08-17 00:30:01.941297: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:30:01.941398: Inverter 0 discharge windows currently []
2026-08-17 00:30:01.941469: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:30:01.941692: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:30:01.941754: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:30:02.037429: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:30:02.037666: Plan was last updated on 2026-08-17 00:20:00+01:00 and is now 10.0 minutes old
2026-08-17 00:30:02.037970: Best charge window [ 17-08 00:00:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ]
2026-08-17 00:30:02.038026: Best export window [  ]
2026-08-17 00:30:02.038847: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:30:02.042189: Load divergence over 8.0 hours mean 454.89W, min 262.2W, max 1042.8W, std dev 159.83W, divergence 17.57%
2026-08-17 00:30:02.067361: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:30:02.067595: LoadML is_calculating False
2026-08-17 00:30:02.067751: Creating pool of 12 processes to match your CPU count
2026-08-17 00:30:02.300000: predict base end_record 08-18 00:40:00, final soc 4.5kWh, metric 144.04p, metric_keep 1.62kWh, min_soc 1.39kWh @ 08-17 23:55:00, load 11.7kWh, PV 0.0kWh
2026-08-17 00:30:02.474076: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:30:02.524378: predict base10 end_record 08-18 00:40:00, final soc 3.71kWh, metric 141.92p, metric_keep 6.39kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.24kWh, PV 0.0kWh
2026-08-17 00:30:02.616619: predict best10 end_record 08-18 00:40:00, final soc 2.11kWh, metric 128.53p, metric_keep 1.2kWh, min_soc 1.46kWh @ 08-18 00:25:00, load 12.24kWh, PV 0.0kWh
2026-08-17 00:30:02.701063: predict best end_record 08-18 00:40:00, final soc 2.48kWh, metric 126.84p, metric_keep 0.22kWh, min_soc 1.7kWh @ 08-18 00:25:00, load 11.7kWh, PV 0.0kWh
2026-08-17 00:30:02.701161: Saving plan best values to HA entities
2026-08-17 00:30:02.905736: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:30:02.912388: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:30:02.918093: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.1kWh, house 0.0kWh, export 0.0kWh, metric 126.84p, metric10 128.53p
2026-08-17 00:30:02.987133: Marginal costs baseline metric (no standing charge): 80.2079
2026-08-17 00:30:03.225409: Marginal energy costs matrix computed: min=6.75 max=30.39
2026-08-17 00:30:03.283098: Rate array import [{'start': 30, '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': 1480, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 30, 'end': 1480, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:30:03.283555: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:30:03.283623: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:30:03.283658: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 00:30:03.283676: - For the next 48 hours there will be no solar generation.
2026-08-17 00:30:03.283691: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 00:30:03.283704: 
2026-08-17 00:30:03.336406: Plan calculation took 1.30 seconds
2026-08-17 00:30:03.339049: No high rate period found
2026-08-17 00:30:03.399905: Import threshold used for optimisation was 8.0p
2026-08-17 00:30:03.457768: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0]
2026-08-17 00:30:03.464941: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:30:03.465104: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:30:03.465278: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:30:03.465381: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:30:03.465515: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:30:03.465747: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:30:03.465859: No export window planned
2026-08-17 00:30:03.465956: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:30:03.465986: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:30:03.466102: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:30:03.466177: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:30:03.466254: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:30:03.466311: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:30:03.466407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466609: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466638: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466659: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466705: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466733: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466754: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466782: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:03.466985: Inverter 0 count register writes 0
2026-08-17 00:30:03.483526: 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 00:30:03.483746: Recompute is saving previous plan...
2026-08-17 00:30:03.484579: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66% ]
2026-08-17 00:30:03.484646: Best export window [  ]
2026-08-17 00:30:03.485319: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:30:03.488415: Load divergence over 8.0 hours mean 454.89W, min 262.2W, max 1042.8W, std dev 159.83W, divergence 17.57%
2026-08-17 00:30:03.513172: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:30:03.513304: LoadML is_calculating False
2026-08-17 00:30:03.513373: Creating pool of 12 processes to match your CPU count
2026-08-17 00:30:03.600606: 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 00:30:03.601682: Optimise levels pass started at 2026-08-17 00:30:03
2026-08-17 00:30:03.601783: Optimise all windows, total charge 25 export 1
2026-08-17 00:30:04.269913: >> Region optimisation pass width 960 gives best_metric 207.59p, best_cost 216.36p, best_cycle 35.31kWh, best_import 21.12kWh
2026-08-17 00:30:04.431655: >> Region optimisation pass width 480 gives best_metric 207.59p, best_cost 216.36p, best_cycle 35.31kWh, best_import 21.12kWh
2026-08-17 00:30:04.744010: >> Region optimisation pass width 240 gives best_metric 207.59p, best_cost 216.36p, best_cycle 35.31kWh, best_import 21.12kWh
2026-08-17 00:30:05.335446: >> Region optimisation pass width 120 gives best_metric 207.59p, best_cost 216.36p, best_cycle 35.31kWh, best_import 21.12kWh
2026-08-17 00:30:05.335730: Calculated end_record as 08-18 00:30:00 based on best_price 8.0p, next_charge_start 08-17 00:30:00, max_windows 13
2026-08-17 00:30:05.335822: Optimise levels pass ended at 2026-08-17 00:30:05, duration 1.7 seconds tried 77 combinations
2026-08-17 00:30:05.335900: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 207.59p, best_keep 0.41kWh, best_cycle 35.31kWh, best_carbon 0kg, best_import 21.12kWh
2026-08-17 00:30:05.357778: Starting detailed optimisation end_record 08-18 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, 0, 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 00:30:08.847288: Tweak plan optimisation started metric 62.15p, cost 75.0p
2026-08-17 00:30:09.198567: Tweak optimisation finished metric 62.15p, cost 75.0p, metric_keep 0.18kWh, cycle 10.16kWh, carbon 0kg, import 3.45kWh, changed 8 window(s)
2026-08-17 00:30:09.220458: Swap charge optimisation started metric 62.15p, cost 75.0p, min_improvement_swap 0.1p
2026-08-17 00:30:10.250947: Swap charge optimisation finished metric 62.15p, cost 75.0p
2026-08-17 00:30:10.363807: Raw charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 59%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 59%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 59%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 00:30:10.364464: Unclipped charge windows [ 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 59%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:30:10.364972: Unfiltered charge windows [ 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 59%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:30:10.365331: Filtered charge windows [ 17-08 00:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 05:00:00 @ 8.0p 59%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:30:10.407881: Previous plan best metric is 61.33 (cost 72.55) and new plan best metric is 62.15 (cost 75.0)
2026-08-17 00:30:10.408134: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 00:30:10.408307: Plan valid is now true after recompute was False
2026-08-17 00:30:10.442113: predict base end_record 08-18 00:30:00, final soc 3.72kWh, metric 136.05p, metric_keep 1.62kWh, min_soc 1.39kWh @ 08-17 23:55:00, load 11.53kWh, PV 0.0kWh
2026-08-17 00:30:10.706031: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:30:10.756274: predict base10 end_record 08-18 00:30:00, final soc 3.06kWh, metric 134.98p, metric_keep 6.39kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.07kWh, PV 0.0kWh
2026-08-17 00:30:10.847981: predict best10 end_record 08-18 00:30:00, final soc 1.46kWh, metric 121.58p, metric_keep 1.13kWh, min_soc 1.46kWh @ 08-18 00:25:00, load 12.07kWh, PV 0.0kWh
2026-08-17 00:30:10.936294: predict best end_record 08-18 00:30:00, final soc 1.7kWh, metric 118.85p, metric_keep 0.22kWh, min_soc 1.7kWh @ 08-18 00:25:00, load 11.53kWh, PV 0.0kWh
2026-08-17 00:30:10.936402: Saving plan best values to HA entities
2026-08-17 00:30:11.102932: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:30:11.109007: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:30:11.114858: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.1kWh, house 0.0kWh, export 0.0kWh, metric 118.85p, metric10 121.58p
2026-08-17 00:30:11.194896: Marginal costs baseline metric (no standing charge): 72.214
2026-08-17 00:30:11.492780: Marginal energy costs matrix computed: min=6.75 max=30.39
2026-08-17 00:30:11.592024: Rate array import [{'start': 30, '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': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 30, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:30:11.593255: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:30:11.593363: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:30:11.593409: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 00:30:11.593646: - For the next 48 hours there will be no solar generation.
2026-08-17 00:30:11.593691: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 00:30:11.593727: 
2026-08-17 00:30:11.657001: Plan calculation took 8.17 seconds
2026-08-17 00:30:11.657328: Inverter 0: Type SK Sunsynk
2026-08-17 00:30:11.657388: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:30:11.657638: Reserve min: 7%, battery_min: 7%
2026-08-17 00:30:11.657728: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:30:11.658079: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -512W, load power 512W, PV Power 0W
2026-08-17 00:30:11.659260: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:30:11.660791: Inverter 0 scheduled charge enable is True
2026-08-17 00:30:11.660853: 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-17 00:30:11.661043: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:30:11.661206: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:30:11.661440: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:30:11.661566: Inverter 0 scheduled discharge enable is False
2026-08-17 00:30:11.661866: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:30:11.661940: Inverter 0 discharge windows currently []
2026-08-17 00:30:11.662000: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:30:11.662039: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:30:11.662073: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:30:11.722436: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:00:00
2026-08-17 00:30:11.722565: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:30:11.722720: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:30:11.722808: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:30:11.722950: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:30:11.723152: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:30:11.723275: No export window planned
2026-08-17 00:30:11.723398: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:30:11.723434: Adjust idle time, charge 00:00:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 00:30:11.723576: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 00:30:11.723682: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:30:11.723749: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:30:11.723802: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:30:11.723914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.723955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.723982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724136: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724187: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724221: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724247: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724278: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724327: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724359: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:30:11.724626: Inverter 0 count register writes 0
2026-08-17 00:30:11.748000: Total inverter register writes now 848
2026-08-17 00:30:11.783461: Info: Completed run status Hold charging
2026-08-17 00:30:11.790936: Info: record_status Hold charging target 66%-66%
2026-08-17 00:30:11.799028: Saved current settings to /config/predbat_config.json
2026-08-17 00:30:11.799433: Compare, best tariff: current metric 104.68p
2026-08-17 00:30:48.923834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:30:48.924112: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:30:48.924150: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:30:48.924284: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:30:48.924324: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:30:48.924345: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:30:48.924363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:32:49.227811: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:32:49.228087: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:32:49.228161: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:32:49.228337: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:32:49.228405: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:32:49.228427: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:32:49.228743: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:35:00.531362: --------------- PredBat - update at 2026-08-17 00:35:00+01:00 with clock skew 0 minutes, minutes now 35
2026-08-17 00:35:00.532176: Saved current settings to /config/predbat_config.json
2026-08-17 00:35:00.532345: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 00:35:00.532488: 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 00:35:00.532586: 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 00:35:00.553262: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:35:00.553403: days_previous_auto enabled - will 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 00:35:00.553638: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:35:00.554248: 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 00:35:00.554429: Predbat mode is set to Control charge & discharge
2026-08-17 00:35:00.721467: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:35:00.721651: Using load_power data to fill gaps in load_today data
2026-08-17 00:35:01.525297: Processing 721 30-minute periods for power integration
2026-08-17 00:35:01.682422: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:35:01.682554: Car charging hold False, threshold 6.0kWh
2026-08-17 00:35:01.682596: Current data so far today: load 0.3kWh, import 0.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:35:01.696142: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:35:01.696248: Cars: SoC: [32.23]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:35:01.696899: Standing charge is set to 46.63p
2026-08-17 00:35:01.792613: 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 00:35:01.792904: 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 00:35:01.793170: 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 00:35:01.793364: 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 00:35:01.793546: 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 00:35:01.793719: 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 00:35:01.793916: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794009: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794091: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794162: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794240: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794341: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794420: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794491: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794662: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:35:01.794732: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:35:01.799876: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:35:01.800235: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:35:01.843743: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:35:01.843888: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:35:01.845205: High export rate found rates in range 99p to -99p
2026-08-17 00:35:01.867882: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:35:01.868279: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:35:01.868354: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:35:01.883616: Battery level now 10.56kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour 13.2p, change today 0.49p, rate_forward 6.87p
2026-08-17 00:35:01.884105: Last hour: net energy 1.9kWh, import 1.9kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 15.2p, import 15.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:35:01.944015: Today's energy total net 0.1kWh, import 0.1kWh, export 0.0kWh, cost 47.43p, import 0.8p, export 0.0p, carbon 0.0kg
2026-08-17 00:35:01.944148: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:35:02.016551: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:35:02.037719: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:35:02.037839: Today's predicted so far 0.6kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.6kWh forecast extra.
2026-08-17 00:35:02.037873: Today's actual load so far 0.29kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:35:02.080389: 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-17T01:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, 'source': 'SMART'}]]
2026-08-17 00:35:02.081067: Sensor changes require a replan, will recompute the plan
2026-08-17 00:35:02.081254: Inverter 0: Type SK Sunsynk
2026-08-17 00:35:02.081295: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:35:02.081472: Reserve min: 7%, battery_min: 7%
2026-08-17 00:35:02.081541: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:35:02.081819: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -512W, load power 513W, PV Power 0W
2026-08-17 00:35:02.081982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:35:02.082071: Inverter 0 scheduled charge enable is True
2026-08-17 00:35:02.082119: 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-17 00:35:02.082241: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:35:02.082421: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:35:02.082467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:35:02.082516: Inverter 0 scheduled discharge enable is False
2026-08-17 00:35:02.082704: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:35:02.082747: Inverter 0 discharge windows currently []
2026-08-17 00:35:02.082774: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:35:02.082837: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:35:02.082866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:35:02.151004: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:35:02.151089: Will recompute the plan as it is invalid
2026-08-17 00:35:02.151231: Recompute is saving previous plan...
2026-08-17 00:35:02.152315: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66% ]
2026-08-17 00:35:02.152399: Best export window [  ]
2026-08-17 00:35:02.153415: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:35:02.156804: Load divergence over 8.0 hours mean 451.41W, min 271.2W, max 996.6W, std dev 162.12W, divergence 17.96%
2026-08-17 00:35:02.175619: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:35:02.175747: LoadML is_calculating False
2026-08-17 00:35:02.175860: Creating pool of 12 processes to match your CPU count
2026-08-17 00:35:02.279817: 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 00:35:02.280756: Optimise levels pass started at 2026-08-17 00:35:02
2026-08-17 00:35:02.280839: Optimise all windows, total charge 25 export 1
2026-08-17 00:35:02.935492: >> Region optimisation pass width 960 gives best_metric 207.96p, best_cost 216.14p, best_cycle 35.38kWh, best_import 21.09kWh
2026-08-17 00:35:03.123528: >> Region optimisation pass width 480 gives best_metric 207.96p, best_cost 216.14p, best_cycle 35.38kWh, best_import 21.09kWh
2026-08-17 00:35:03.484971: >> Region optimisation pass width 240 gives best_metric 207.96p, best_cost 216.14p, best_cycle 35.38kWh, best_import 21.09kWh
2026-08-17 00:35:04.135619: >> Region optimisation pass width 120 gives best_metric 207.96p, best_cost 216.14p, best_cycle 35.38kWh, best_import 21.09kWh
2026-08-17 00:35:04.136047: Calculated end_record as 08-18 01:00:00 based on best_price 8.0p, next_charge_start 08-17 01:00:00, max_windows 14
2026-08-17 00:35:04.136137: Optimise levels pass ended at 2026-08-17 00:35:04, duration 1.9 seconds tried 78 combinations
2026-08-17 00:35:04.136244: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 207.96p, best_keep 0.5kWh, best_cycle 35.38kWh, best_carbon 0kg, best_import 21.09kWh
2026-08-17 00:35:04.158524: Starting detailed optimisation end_record 08-18 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, 0, 15.25, 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 00:35:08.529200: Tweak plan optimisation started metric 65.82p, cost 80.01p
2026-08-17 00:35:08.861240: Tweak optimisation finished metric 65.82p, cost 80.01p, metric_keep 0kWh, cycle 10.02kWh, carbon 0kg, import 4.07kWh, changed 8 window(s)
2026-08-17 00:35:08.883672: Swap charge optimisation started metric 65.82p, cost 80.01p, min_improvement_swap 0.1p
2026-08-17 00:35:09.536927: Swap charge optimisation finished metric 65.82p, cost 80.01p
2026-08-17 00:35:09.633324: Raw charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 00:35:09.633925: Unclipped charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:35:09.634161: Unfiltered charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:35:09.634329: Filtered charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:35:09.666650: Previous plan best metric is 69.02 (cost 95.98) and new plan best metric is 65.82 (cost 80.01)
2026-08-17 00:35:09.666906: New plan metric is significantly better from previous plan, using new plan
2026-08-17 00:35:09.666946: Plan valid is now true after recompute was False
2026-08-17 00:35:09.699023: predict base end_record 08-18 01:00:00, final soc 6.09kWh, metric 160.08p, metric_keep 1.57kWh, min_soc 1.43kWh @ 08-17 23:55:00, load 12.05kWh, PV 0.0kWh
2026-08-17 00:35:09.824288: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:35:09.872030: predict base10 end_record 08-18 01:00:00, final soc 5.0kWh, metric 155.59p, metric_keep 6.4kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 12.61kWh, PV 0.0kWh
2026-08-17 00:35:10.008060: predict best10 end_record 08-18 01:00:00, final soc 2.0kWh, metric 130.2p, metric_keep 0.29kWh, min_soc 1.72kWh @ 08-17 23:55:00, load 12.61kWh, PV 0.0kWh
2026-08-17 00:35:10.120292: predict best end_record 08-18 01:00:00, final soc 2.17kWh, metric 126.65p, metric_keep 0kWh, min_soc 2.17kWh @ 08-17 23:55:00, load 12.05kWh, PV 0.0kWh
2026-08-17 00:35:10.120400: Saving plan best values to HA entities
2026-08-17 00:35:10.334885: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:35:10.340525: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:35:10.346518: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.07kWh, house 0.0kWh, export 0.0kWh, metric 126.65p, metric10 130.2p
2026-08-17 00:35:10.438233: Marginal costs baseline metric (no standing charge): 80.0128
2026-08-17 00:35:10.732602: Marginal energy costs matrix computed: min=7.75 max=29.54
2026-08-17 00:35:10.801575: Rate array import [{'start': 35, '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': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 35, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:35:10.801999: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:35:10.802067: - Import rates are cheap (8.0p) for the next 4  hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:35:10.802091: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 00:35:10.802110: - For the next 48 hours there will be no solar generation.
2026-08-17 00:35:10.802127: - You will reach a minimum of 14% battery in 23 hours.
2026-08-17 00:35:10.802146: - Your car is currently charging.
2026-08-17 00:35:10.802164: 
2026-08-17 00:35:10.855727: Plan calculation took 8.70 seconds
2026-08-17 00:35:10.860774: Saved plan to storage
2026-08-17 00:35:10.864280: No high rate period found
2026-08-17 00:35:10.919735: Import threshold used for optimisation was 8.0p
2026-08-17 00:35:10.992804: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 25: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 00:35:11.002403: Inverter 0: Type SK Sunsynk
2026-08-17 00:35:11.002507: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:35:11.002750: Reserve min: 7%, battery_min: 7%
2026-08-17 00:35:11.002868: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:35:11.003292: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -516W, load power 516W, PV Power 0W
2026-08-17 00:35:11.003549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:35:11.003654: Inverter 0 scheduled charge enable is True
2026-08-17 00:35:11.003709: 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-17 00:35:11.003835: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:00:00, limit 66.0%, power 5.0kW
2026-08-17 00:35:11.003975: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:35:11.004038: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:35:11.004088: Inverter 0 scheduled discharge enable is False
2026-08-17 00:35:11.004239: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 00:35:11.004279: Inverter 0 discharge windows currently []
2026-08-17 00:35:11.004302: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:35:11.004322: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:35:11.004340: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:35:11.071453: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:35:11.071616: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:35:11.071831: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:35:11.071936: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:35:11.072106: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:35:11.072372: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:35:11.072472: Inverter 0 set new demand (idle) start time to 04:30:00 was 05:00:00
2026-08-17 00:35:16.080986: Inverter 0 write_and_poll_value: Wrote 04:30:00 to idle_start_time, successfully now 04:30:00
2026-08-17 00:35:21.091606: Inverter 0 write_and_poll_value: Wrote 04:30:00 to charge_end_time, successfully now 04:30:00
2026-08-17 00:35:21.091726: Inverter 0 Updated start and end charge window to 00:00:00 - 04:30:00 (old 00:00:00 - 05:00:00)
2026-08-17 00:35:21.091827: No export window planned
2026-08-17 00:35:21.091993: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:35:21.092027: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:35:21.092199: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:35:21.092286: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:35:21.092345: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:35:21.092391: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:35:21.092485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092605: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092625: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.092669: 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 00:35:21.197716: 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 00:35:21.298216: 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 00:35:21.401988: 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 00:35:21.483401: 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 00:35:21.587544: 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 00:35:21.691358: 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 00:35:21.708751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.708875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.708916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.709000: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.709104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.709175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.709216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:35:21.709268: Inverter 0 count register writes 0
2026-08-17 00:35:21.737265: Total inverter register writes now 848
2026-08-17 00:35:21.776572: Info: Completed run status Hold charging
2026-08-17 00:35:21.783430: Info: record_status Hold charging target 66%-66%
2026-08-17 00:35:21.791206: Saved current settings to /config/predbat_config.json
2026-08-17 00:35:21.791684: Compare, best tariff: current metric 104.68p
2026-08-17 00:36:03.920101: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:36:03.920390: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:36:03.920463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:36:03.920611: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:36:03.920651: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:36:03.920672: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:36:03.920691: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:38:04.182851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:38:04.183261: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:38:04.183313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:38:04.183459: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:38:04.183499: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:38:04.183521: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:38:04.183539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:40:00.401781: --------------- PredBat - update at 2026-08-17 00:40:00+01:00 with clock skew 0 minutes, minutes now 40
2026-08-17 00:40:00.402563: Saved current settings to /config/predbat_config.json
2026-08-17 00:40:00.402705: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 00:40:00.402806: 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 00:40:00.402883: 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 00:40:00.422133: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:40:00.422257: days_previous_auto enabled - will 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 00:40:00.422448: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:40:00.422983: 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 00:40:00.423104: Predbat mode is set to Control charge & discharge
2026-08-17 00:40:00.615634: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:40:00.616037: Using load_power data to fill gaps in load_today data
2026-08-17 00:40:01.378796: Processing 721 30-minute periods for power integration
2026-08-17 00:40:01.662788: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 00:40:01.668194: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:40:01.679956: Car charging hold False, threshold 6.0kWh
2026-08-17 00:40:01.680076: Current data so far today: load 0.35kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:40:01.728422: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:40:01.741413: Cars: SoC: [32.816]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:40:01.747533: Standing charge is set to 46.63p
2026-08-17 00:40:02.203195: 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 00:40:02.208693: 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 00:40:02.209037: 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 00:40:02.209317: 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 00:40:02.209571: 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 00:40:02.209835: 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 00:40:02.210204: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.210356: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.210491: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.210629: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.210758: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.210889: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.211029: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.211151: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.216618: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:40:02.226973: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:40:02.242516: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:40:02.248030: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:40:02.356315: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:40:02.364864: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:40:02.371342: High export rate found rates in range 99p to -99p
2026-08-17 00:40:02.425859: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:40:02.431238: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:40:02.436514: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:40:02.583059: Battery level now 10.56kWh, -1hr ago 9.09kWh, at midnight 10.49kWh, battery value change in the last hour 10.12p, change today 0.49p, rate_forward 6.87p
2026-08-17 00:40:02.604075: Last hour: net energy 1.55kWh, import 1.55kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 12.4p, import 12.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:40:02.990819: Processing 1345 30-minute periods for power integration
2026-08-17 00:40:03.090970: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 48.23p, import 1.6p, export 0.0p, carbon 0.0kg
2026-08-17 00:40:03.094904: ML Component: Car charging hold False, car energy reported load False
2026-08-17 00:40:03.095140: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:40:03.252052: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:40:03.272532: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:40:03.319196: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:40:03.319788: Today's predicted so far 0.65kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.65kWh forecast extra.
2026-08-17 00:40:03.335364: Today's actual load so far 0.32kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-17 00:40:03.378965: ML Temperature data points: 48921
2026-08-17 00:40:03.664061: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 00:40:03.705602: ML Component: Data fetch completed, load data age 58.0 days, 16832 data points
2026-08-17 00:40:03.707018: ML Component: No training needed, model age is 0.65 hours
2026-08-17 00:40:03.709761: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-17 00:40:03.713819: Inverter 0: Type SK Sunsynk
2026-08-17 00:40:03.714204: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:40:03.714389: Reserve min: 7%, battery_min: 7%
2026-08-17 00:40:03.715508: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:40:03.715749: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -515W, load power 515W, PV Power 0W
2026-08-17 00:40:03.715884: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:40:03.715990: Inverter 0 scheduled charge enable is True
2026-08-17 00:40:03.716036: 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-17 00:40:03.716150: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:40:03.716283: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:40:03.716316: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:40:03.716347: Inverter 0 scheduled discharge enable is False
2026-08-17 00:40:03.716497: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:40:03.716644: Inverter 0 discharge windows currently []
2026-08-17 00:40:03.716676: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:40:03.716693: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:40:03.716706: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:40:03.783854: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:40:03.783974: Plan was last updated on 2026-08-17 00:35:00+01:00 and is now 5.0 minutes old
2026-08-17 00:40:03.784259: Best charge window [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ]
2026-08-17 00:40:03.784311: Best export window [  ]
2026-08-17 00:40:03.785040: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:40:03.787699: Load divergence over 8.0 hours mean 446.73W, min 292.2W, max 1030.2W, std dev 159.06W, divergence 17.8%
2026-08-17 00:40:03.803330: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:40:03.803473: LoadML is_calculating False
2026-08-17 00:40:03.803533: Creating pool of 12 processes to match your CPU count
2026-08-17 00:40:03.918667: predict base end_record 08-18 01:05:00, final soc 6.24kWh, metric 162.58p, metric_keep 3.64kWh, min_soc 1.2kWh @ 08-17 23:55:00, load 12.12kWh, PV 0.0kWh
2026-08-17 00:40:04.045007: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:40:04.084105: predict base10 end_record 08-18 01:05:00, final soc 5.32kWh, metric 159.27p, metric_keep 9.99kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.68kWh, PV 0.0kWh
2026-08-17 00:40:04.154141: predict best10 end_record 08-18 01:05:00, final soc 2.32kWh, metric 133.91p, metric_keep 0.33kWh, min_soc 1.69kWh @ 08-17 23:55:00, load 12.68kWh, PV 0.0kWh
2026-08-17 00:40:04.240867: predict best end_record 08-18 01:05:00, final soc 2.53kWh, metric 130.65p, metric_keep 0kWh, min_soc 2.14kWh @ 08-17 23:55:00, load 12.12kWh, PV 0.0kWh
2026-08-17 00:40:04.240992: Saving plan best values to HA entities
2026-08-17 00:40:04.405373: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:40:04.410785: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:40:04.416293: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.47kWh, house 0.0kWh, export 0.0kWh, metric 130.65p, metric10 133.91p
2026-08-17 00:40:04.497238: Marginal costs baseline metric (no standing charge): 84.0205
2026-08-17 00:40:04.761091: Marginal energy costs matrix computed: min=7.98 max=29.58
2026-08-17 00:40:04.856272: Rate array import [{'start': 40, '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': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 40, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:40:04.856790: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:40:04.856866: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:40:04.856892: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 00:40:04.856911: - For the next 48 hours there will be no solar generation.
2026-08-17 00:40:04.856928: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:40:04.856995: - Your car is currently charging.
2026-08-17 00:40:04.857020: 
2026-08-17 00:40:04.911556: Plan calculation took 1.13 seconds
2026-08-17 00:40:04.914912: No high rate period found
2026-08-17 00:40:05.017588: Import threshold used for optimisation was 8.0p
2026-08-17 00:40:05.075551: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 25: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 00:40:05.081517: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:40:05.081638: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:40:05.081815: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:40:05.081906: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:40:05.082067: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:40:05.082306: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:40:05.082428: No export window planned
2026-08-17 00:40:05.082549: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:40:05.082585: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:40:05.082730: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:40:05.082817: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:40:05.082880: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:40:05.082954: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:40:05.083078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083324: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083354: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083388: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083418: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083449: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083474: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083504: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:40:05.083767: Inverter 0 count register writes 0
2026-08-17 00:40:05.099836: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 00:40:05.105591: Total inverter register writes now 848
2026-08-17 00:40:05.140533: Info: Completed run status Hold charging
2026-08-17 00:40:05.147936: Info: record_status Hold charging target 66%-66%
2026-08-17 00:40:05.155463: Saved current settings to /config/predbat_config.json
2026-08-17 00:40:05.155877: Compare, best tariff: current metric 104.68p
2026-08-17 00:40:05.735176: ML Component: Generating predictions load data age 58.0 days, 16832 data points
2026-08-17 00:40:05.886781: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0517 max_dow {0: 0.08920937499813736, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-17 00:40:09.052362: ML Component: Generated 576 predictions (total 26.00 kWh over 48h)
2026-08-17 00:40:09.087216: ML Component: Prediction cycle completed
2026-08-17 00:40:09.182509: ML Component: Saved 16832 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 00:40:49.290649: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:40:49.290889: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:40:49.290928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:40:49.291122: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:40:49.291162: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:40:49.291180: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:40:49.291195: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:43:03.530094: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:43:03.530383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:43:03.530426: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:43:03.530604: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:43:03.530643: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:43:03.530680: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:43:03.530704: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:45:00.757452: --------------- PredBat - update at 2026-08-17 00:45:00+01:00 with clock skew 0 minutes, minutes now 45
2026-08-17 00:45:00.758294: Saved current settings to /config/predbat_config.json
2026-08-17 00:45:00.758427: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 00:45:00.758516: 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 00:45:00.758637: 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 00:45:00.780259: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:45:00.780403: days_previous_auto enabled - will 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 00:45:00.780579: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:45:00.781253: 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 00:45:00.781400: Predbat mode is set to Control charge & discharge
2026-08-17 00:45:01.000115: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:45:01.000274: Using load_power data to fill gaps in load_today data
2026-08-17 00:45:01.884032: Processing 721 30-minute periods for power integration
2026-08-17 00:45:02.076503: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:45:02.076675: Car charging hold False, threshold 6.0kWh
2026-08-17 00:45:02.076723: Current data so far today: load 0.4kWh, import 0.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:45:02.093588: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:45:02.094224: Cars: SoC: [33.402]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:45:02.095015: Standing charge is set to 46.63p
2026-08-17 00:45:02.194811: 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 00:45:02.195468: 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 00:45:02.195756: 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 00:45:02.196046: 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 00:45:02.196353: 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 00:45:02.196632: 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 00:45:02.196898: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197113: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197289: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197467: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197651: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197807: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.197970: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.198152: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.198385: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:45:02.198478: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:45:02.203669: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:45:02.204069: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:45:02.246740: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:45:02.246874: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:45:02.248090: High export rate found rates in range 99p to -99p
2026-08-17 00:45:02.270443: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:45:02.270593: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:45:02.270653: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:45:02.283154: Battery level now 10.56kWh, -1hr ago 9.09kWh, at midnight 10.49kWh, battery value change in the last hour 10.12p, change today 0.49p, rate_forward 6.87p
2026-08-17 00:45:02.283511: 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-17 00:45:02.329155: Today's energy total net 0.2kWh, import 0.2kWh, export 0.0kWh, cost 48.23p, import 1.6p, export 0.0p, carbon 0.0kg
2026-08-17 00:45:02.329310: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:45:02.406046: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:45:02.427993: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:45:02.429130: Today's predicted so far 0.69kWh with 0.0kWh car/iBoost excluded, 0.0kWh import ignored, and 0.69kWh forecast extra.
2026-08-17 00:45:02.429199: Today's actual load so far 0.36kWh with 0.0kWh car/iBoost excluded, and 0.0kWh import ignored.
2026-08-17 00:45:02.482328: Inverter 0: Type SK Sunsynk
2026-08-17 00:45:02.482441: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:45:02.482726: Reserve min: 7%, battery_min: 7%
2026-08-17 00:45:02.482847: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:45:02.483278: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -508W, load power 508W, PV Power 0W
2026-08-17 00:45:02.483475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:45:02.483599: Inverter 0 scheduled charge enable is True
2026-08-17 00:45:02.483660: 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-17 00:45:02.483759: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:45:02.483894: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:45:02.483930: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:45:02.483996: Inverter 0 scheduled discharge enable is False
2026-08-17 00:45:02.484175: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:45:02.484217: Inverter 0 discharge windows currently []
2026-08-17 00:45:02.484241: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:45:02.484263: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:45:02.484281: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:45:02.548407: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:45:02.548518: Plan was last updated on 2026-08-17 00:35:00+01:00 and is now 10.0 minutes old
2026-08-17 00:45:02.548777: Best charge window [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ]
2026-08-17 00:45:02.548821: Best export window [  ]
2026-08-17 00:45:02.549588: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:45:02.552784: Load divergence over 8.0 hours mean 441.91W, min 259.8W, max 1153.2W, std dev 158.92W, divergence 17.98%
2026-08-17 00:45:02.571640: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:45:02.571912: LoadML is_calculating False
2026-08-17 00:45:02.572694: Creating pool of 12 processes to match your CPU count
2026-08-17 00:45:02.704279: predict base end_record 08-18 01:10:00, final soc 6.6kWh, metric 165.81p, metric_keep 3.68kWh, min_soc 1.17kWh @ 08-17 23:55:00, load 12.18kWh, PV 0.0kWh
2026-08-17 00:45:02.843892: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:45:02.892773: predict base10 end_record 08-18 01:10:00, final soc 5.65kWh, metric 162.16p, metric_keep 9.96kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.74kWh, PV 0.0kWh
2026-08-17 00:45:02.983830: predict best10 end_record 08-18 01:10:00, final soc 2.65kWh, metric 136.84p, metric_keep 0.36kWh, min_soc 1.66kWh @ 08-17 23:55:00, load 12.74kWh, PV 0.0kWh
2026-08-17 00:45:03.083587: predict best end_record 08-18 01:10:00, final soc 2.89kWh, metric 133.89p, metric_keep 0kWh, min_soc 2.11kWh @ 08-17 23:55:00, load 12.18kWh, PV 0.0kWh
2026-08-17 00:45:03.085544: Saving plan best values to HA entities
2026-08-17 00:45:03.345775: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:45:03.352918: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:45:03.360021: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.88kWh, house 0.0kWh, export 0.0kWh, metric 133.89p, metric10 136.84p
2026-08-17 00:45:03.440489: Marginal costs baseline metric (no standing charge): 87.2514
2026-08-17 00:45:03.738188: Marginal energy costs matrix computed: min=8.0 max=29.6
2026-08-17 00:45:03.846231: Rate array import [{'start': 45, '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': 1510, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 45, 'end': 1510, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:45:03.847418: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:45:03.847913: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:45:03.847976: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 00:45:03.848014: - For the next 48 hours there will be no solar generation.
2026-08-17 00:45:03.848049: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:45:03.848069: - Your car is currently charging.
2026-08-17 00:45:03.848127: 
2026-08-17 00:45:03.900759: Plan calculation took 1.35 seconds
2026-08-17 00:45:03.903985: No high rate period found
2026-08-17 00:45:03.960984: Import threshold used for optimisation was 8.0p
2026-08-17 00:45:04.014963: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 25: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 00:45:04.021056: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:45:04.021202: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:45:04.021366: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:45:04.021455: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:45:04.021608: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:45:04.021906: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:45:04.022055: No export window planned
2026-08-17 00:45:04.022237: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:45:04.022296: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:45:04.022480: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:45:04.022575: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:45:04.022635: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:45:04.022702: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:45:04.022814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022909: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.022988: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023036: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023071: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023117: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023143: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023174: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023201: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023229: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:04.023486: Inverter 0 count register writes 0
2026-08-17 00:45:04.040709: 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 00:45:04.040903: Recompute is saving previous plan...
2026-08-17 00:45:04.041948: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66% ]
2026-08-17 00:45:04.042026: Best export window [  ]
2026-08-17 00:45:04.042820: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:45:04.046212: Load divergence over 8.0 hours mean 441.91W, min 259.8W, max 1153.2W, std dev 158.92W, divergence 17.98%
2026-08-17 00:45:04.063828: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:45:04.063928: LoadML is_calculating False
2026-08-17 00:45:04.063998: Creating pool of 12 processes to match your CPU count
2026-08-17 00:45:04.169304: 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 00:45:04.179618: Optimise levels pass started at 2026-08-17 00:45:04
2026-08-17 00:45:04.179703: Optimise all windows, total charge 25 export 1
2026-08-17 00:45:04.864070: >> Region optimisation pass width 960 gives best_metric 209.23p, best_cost 217.81p, best_cycle 35.84kWh, best_import 21.2kWh
2026-08-17 00:45:05.044686: >> Region optimisation pass width 480 gives best_metric 209.23p, best_cost 217.81p, best_cycle 35.84kWh, best_import 21.2kWh
2026-08-17 00:45:05.362409: >> Region optimisation pass width 240 gives best_metric 209.23p, best_cost 217.81p, best_cycle 35.84kWh, best_import 21.2kWh
2026-08-17 00:45:05.992765: >> Region optimisation pass width 120 gives best_metric 209.23p, best_cost 217.81p, best_cycle 35.84kWh, best_import 21.2kWh
2026-08-17 00:45:05.993065: Calculated end_record as 08-18 01:00:00 based on best_price 8.0p, next_charge_start 08-17 01:00:00, max_windows 14
2026-08-17 00:45:05.993349: Optimise levels pass ended at 2026-08-17 00:45:05, duration 1.8 seconds tried 78 combinations
2026-08-17 00:45:05.993518: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 209.23p, best_keep 0.45kWh, best_cycle 35.84kWh, best_carbon 0kg, best_import 21.2kWh
2026-08-17 00:45:06.018057: Starting detailed optimisation end_record 08-18 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, 0, 15.5, 15.5, 15.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 00:45:10.281719: Tweak plan optimisation started metric 65.65p, cost 78.74p
2026-08-17 00:45:10.595569: Tweak optimisation finished metric 64.87p, cost 77.96p, metric_keep 0kWh, cycle 9.17kWh, carbon 0kg, import 3.72kWh, changed 8 window(s)
2026-08-17 00:45:10.618336: Swap charge optimisation started metric 64.87p, cost 77.96p, min_improvement_swap 0.1p
2026-08-17 00:45:11.445113: Swap charge optimisation finished metric 64.87p, cost 77.96p
2026-08-17 00:45:11.572227: Raw charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 00:45:11.572789: Unclipped charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:45:11.573252: Unfiltered charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:45:11.573599: Filtered charge windows [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:45:11.613175: Previous plan best metric is 65.47 (cost 79.25) and new plan best metric is 64.87 (cost 77.96)
2026-08-17 00:45:11.613441: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 00:45:11.613636: Plan valid is now true after recompute was False
2026-08-17 00:45:11.644839: predict base end_record 08-18 01:00:00, final soc 5.83kWh, metric 157.81p, metric_keep 3.68kWh, min_soc 1.17kWh @ 08-17 23:55:00, load 12.01kWh, PV 0.0kWh
2026-08-17 00:45:11.761096: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:45:11.805698: predict base10 end_record 08-18 01:00:00, final soc 5.0kWh, metric 155.2p, metric_keep 9.96kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.57kWh, PV 0.0kWh
2026-08-17 00:45:11.883367: predict best10 end_record 08-18 01:00:00, final soc 2.0kWh, metric 129.88p, metric_keep 0.36kWh, min_soc 1.66kWh @ 08-17 23:55:00, load 12.57kWh, PV 0.0kWh
2026-08-17 00:45:11.969370: predict best end_record 08-18 01:00:00, final soc 2.11kWh, metric 125.89p, metric_keep 0kWh, min_soc 2.11kWh @ 08-17 23:55:00, load 12.01kWh, PV 0.0kWh
2026-08-17 00:45:11.969472: Saving plan best values to HA entities
2026-08-17 00:45:12.138271: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:45:12.144031: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:45:12.150039: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.88kWh, house 0.0kWh, export 0.0kWh, metric 125.89p, metric10 129.88p
2026-08-17 00:45:12.221257: Marginal costs baseline metric (no standing charge): 79.2536
2026-08-17 00:45:12.514908: Marginal energy costs matrix computed: min=8.0 max=29.6
2026-08-17 00:45:12.578903: Rate array import [{'start': 45, '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': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 45, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:45:12.579311: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 00:45:12.579357: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:45:12.579379: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 00:45:12.579398: - For the next 48 hours there will be no solar generation.
2026-08-17 00:45:12.579416: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:45:12.579433: - Your car is currently charging.
2026-08-17 00:45:12.579450: 
2026-08-17 00:45:12.630706: Plan calculation took 8.59 seconds
2026-08-17 00:45:12.631056: Inverter 0: Type SK Sunsynk
2026-08-17 00:45:12.631124: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:45:12.631388: Reserve min: 7%, battery_min: 7%
2026-08-17 00:45:12.631502: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:45:12.631904: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -506W, load power 506W, PV Power 0W
2026-08-17 00:45:12.632389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:45:12.632542: Inverter 0 scheduled charge enable is True
2026-08-17 00:45:12.632597: 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-17 00:45:12.632695: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:45:12.632825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:45:12.632865: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:45:12.632903: Inverter 0 scheduled discharge enable is False
2026-08-17 00:45:12.633101: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:45:12.633147: Inverter 0 discharge windows currently []
2026-08-17 00:45:12.633171: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:45:12.633195: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:45:12.633212: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:45:12.695368: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:45:12.695501: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:45:12.695690: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:45:12.695819: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:45:12.696002: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:45:12.696287: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:45:12.696460: No export window planned
2026-08-17 00:45:12.696635: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:45:12.696693: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:45:12.696905: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:45:12.697094: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:45:12.697212: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:45:12.697305: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:45:12.697473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697871: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697942: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.697986: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698035: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698106: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698169: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698218: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:45:12.698844: Inverter 0 count register writes 0
2026-08-17 00:45:12.724071: Total inverter register writes now 848
2026-08-17 00:45:12.760335: Info: Completed run status Hold charging
2026-08-17 00:45:12.766918: Info: record_status Hold charging target 66%-66%
2026-08-17 00:45:12.774267: Saved current settings to /config/predbat_config.json
2026-08-17 00:45:12.774678: Compare, best tariff: current metric 104.68p
2026-08-17 00:45:48.912274: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:45:48.912550: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:45:48.912600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:45:48.912738: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:45:48.912778: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:45:48.912798: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:45:48.912816: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:47:49.164912: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:47:49.165320: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:47:49.165368: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:47:49.165512: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:47:49.165553: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:47:49.165574: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:47:49.165600: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:50:00.433304: --------------- PredBat - update at 2026-08-17 00:50:00+01:00 with clock skew 0 minutes, minutes now 50
2026-08-17 00:50:00.434123: Saved current settings to /config/predbat_config.json
2026-08-17 00:50:00.434273: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 00:50:00.434382: 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 00:50:00.434553: 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 00:50:00.459075: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:50:00.459245: days_previous_auto enabled - will 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 00:50:00.459499: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:50:00.460253: 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 00:50:00.460421: Predbat mode is set to Control charge & discharge
2026-08-17 00:50:00.698583: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:50:00.698840: Using load_power data to fill gaps in load_today data
2026-08-17 00:50:01.696633: Processing 721 30-minute periods for power integration
2026-08-17 00:50:01.918377: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:50:01.918527: Car charging hold False, threshold 6.0kWh
2026-08-17 00:50:01.918575: Current data so far today: load 0.3kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:50:01.935889: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:50:01.936027: Cars: SoC: [33.988]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:50:01.936873: Standing charge is set to 46.63p
2026-08-17 00:50:02.043082: 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 00:50:02.043432: 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 00:50:02.043689: 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 00:50:02.043930: 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 00:50:02.044179: 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 00:50:02.044432: 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 00:50:02.044691: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.044830: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.044993: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045093: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045255: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045371: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045508: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045654: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.045939: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:50:02.046011: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:50:02.052316: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:50:02.052834: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:50:02.100469: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:50:02.100621: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:50:02.101931: High export rate found rates in range 99p to -99p
2026-08-17 00:50:02.126973: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:50:02.127117: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:50:02.127179: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:50:02.139941: Battery level now 10.56kWh, -1hr ago 9.44kWh, at midnight 10.49kWh, battery value change in the last hour 7.7p, change today 0.49p, rate_forward 6.87p
2026-08-17 00:50:02.140491: Last hour: net energy 0.75kWh, import 0.75kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 6.0p, import 6.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:50:02.191150: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 49.03p, import 2.4p, export 0.0p, carbon 0.0kg
2026-08-17 00:50:02.191339: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:50:02.261433: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:50:02.283557: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:50:02.284286: Today's predicted so far 0.76kWh with 0.0kWh car/iBoost excluded, 0.1kWh import ignored, and 0.76kWh forecast extra.
2026-08-17 00:50:02.284338: Today's actual load so far 0.28kWh with 0.0kWh car/iBoost excluded, and 0.1kWh import ignored.
2026-08-17 00:50:02.323138: Inverter 0: Type SK Sunsynk
2026-08-17 00:50:02.323248: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:50:02.323434: Reserve min: 7%, battery_min: 7%
2026-08-17 00:50:02.323504: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:50:02.323780: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -508W, load power 508W, PV Power 0W
2026-08-17 00:50:02.323943: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:50:02.324030: Inverter 0 scheduled charge enable is True
2026-08-17 00:50:02.324076: 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-17 00:50:02.324209: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:50:02.324344: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:50:02.324381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:50:02.324418: Inverter 0 scheduled discharge enable is False
2026-08-17 00:50:02.324537: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:50:02.324573: Inverter 0 discharge windows currently []
2026-08-17 00:50:02.324596: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:50:02.324619: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:50:02.324637: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:50:02.386606: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:50:02.386715: Plan was last updated on 2026-08-17 00:45:00+01:00 and is now 5.0 minutes old
2026-08-17 00:50:02.386983: Best charge window [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ]
2026-08-17 00:50:02.387026: Best export window [  ]
2026-08-17 00:50:02.387858: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:50:02.391044: Load divergence over 8.0 hours mean 435.54W, min 260.4W, max 1039.2W, std dev 144.97W, divergence 16.64%
2026-08-17 00:50:02.409990: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:50:02.410133: LoadML is_calculating False
2026-08-17 00:50:02.410218: Creating pool of 12 processes to match your CPU count
2026-08-17 00:50:02.551922: predict base end_record 08-18 01:05:00, final soc 6.2kWh, metric 161.91p, metric_keep 3.65kWh, min_soc 1.16kWh @ 08-17 23:55:00, load 11.92kWh, PV 0.0kWh
2026-08-17 00:50:02.727133: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:50:02.790635: predict base10 end_record 08-18 01:05:00, final soc 5.32kWh, metric 158.85p, metric_keep 9.9kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.47kWh, PV 0.0kWh
2026-08-17 00:50:02.904394: predict best10 end_record 08-18 01:05:00, final soc 2.32kWh, metric 133.54p, metric_keep 0.37kWh, min_soc 1.65kWh @ 08-17 23:55:00, load 12.47kWh, PV 0.0kWh
2026-08-17 00:50:02.990170: predict best end_record 08-18 01:05:00, final soc 2.48kWh, metric 129.98p, metric_keep 0kWh, min_soc 2.1kWh @ 08-17 23:55:00, load 11.92kWh, PV 0.0kWh
2026-08-17 00:50:02.990606: Saving plan best values to HA entities
2026-08-17 00:50:03.189553: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:50:03.195419: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:50:03.201809: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.29kWh, house 0.0kWh, export 0.0kWh, metric 129.98p, metric10 133.54p
2026-08-17 00:50:03.279605: Marginal costs baseline metric (no standing charge): 83.3493
2026-08-17 00:50:03.576838: Marginal energy costs matrix computed: min=8.0 max=29.6
2026-08-17 00:50:03.645178: Rate array import [{'start': 50, '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': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 50, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:50:03.645726: - Your estimated bill for today is £0.72 and tomorrow is £2.23
2026-08-17 00:50:03.645791: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:50:03.645834: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 00:50:03.645869: - For the next 48 hours there will be no solar generation.
2026-08-17 00:50:03.645904: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:50:03.645950: - Your car is currently charging.
2026-08-17 00:50:03.645986: 
2026-08-17 00:50:03.701266: Plan calculation took 1.31 seconds
2026-08-17 00:50:03.704431: No high rate period found
2026-08-17 00:50:03.757330: Import threshold used for optimisation was 8.0p
2026-08-17 00:50:03.811091: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 25: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 00:50:03.817761: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:50:03.817885: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:50:03.818069: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:50:03.818218: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:50:03.818391: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:50:03.818661: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:50:03.818794: No export window planned
2026-08-17 00:50:03.818914: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:50:03.818953: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:50:03.819094: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:50:03.819208: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:50:03.819288: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:50:03.819378: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:50:03.819505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819749: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819789: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819815: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819842: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819868: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819892: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819927: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.819990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:50:03.820287: Inverter 0 count register writes 0
2026-08-17 00:50:03.847782: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 00:50:03.857842: Total inverter register writes now 848
2026-08-17 00:50:03.925342: Info: Completed run status Hold charging
2026-08-17 00:50:03.939114: Info: record_status Hold charging target 66%-66%
2026-08-17 00:50:03.958397: Saved current settings to /config/predbat_config.json
2026-08-17 00:50:03.958772: Compare, best tariff: current metric 104.68p
2026-08-17 00:50:34.096065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:50:34.096367: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:50:34.096420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:50:34.096618: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:50:34.096701: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:50:34.096725: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:50:34.096744: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:52:34.330030: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:52:34.330352: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:52:34.330399: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:52:34.330555: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:52:34.330624: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:52:34.330645: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:52:34.330663: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:54:48.574674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:54:48.575030: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:54:48.575107: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:54:48.575397: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:54:48.575474: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:54:48.575504: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:54:48.575538: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:55:00.666787: --------------- PredBat - update at 2026-08-17 00:55:00+01:00 with clock skew 0 minutes, minutes now 55
2026-08-17 00:55:00.667542: Saved current settings to /config/predbat_config.json
2026-08-17 00:55:00.667662: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 00:55:00.667786: 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 00:55:00.667886: 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 00:55:00.689914: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 00:55:00.690039: days_previous_auto enabled - will 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 00:55:00.690213: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 00:55:00.690780: 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 00:55:00.690928: Predbat mode is set to Control charge & discharge
2026-08-17 00:55:00.899133: Found 21602 load_today datapoints going back 28 days
2026-08-17 00:55:00.899295: Using load_power data to fill gaps in load_today data
2026-08-17 00:55:01.770129: Processing 721 30-minute periods for power integration
2026-08-17 00:55:01.956210: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 00:55:01.956368: Car charging hold False, threshold 6.0kWh
2026-08-17 00:55:01.956422: Current data so far today: load 0.3kWh, import 0.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 00:55:01.975840: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 00:55:01.975950: Cars: SoC: [34.574]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 00:55:01.976697: Standing charge is set to 46.63p
2026-08-17 00:55:02.084458: 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 00:55:02.084725: 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 00:55:02.085247: 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 00:55:02.085485: 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 00:55:02.085688: 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 00:55:02.085869: 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 00:55:02.086051: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086145: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086222: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086317: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086396: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086479: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086547: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086609: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086770: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 00:55:02.086830: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 00:55:02.092113: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 00:55:02.092597: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 00:55:02.138948: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 00:55:02.139072: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 00:55:02.140238: High export rate found rates in range 99p to -99p
2026-08-17 00:55:02.163419: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 00:55:02.163559: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 00:55:02.163634: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 00:55:02.179610: Battery level now 10.56kWh, -1hr ago 9.78kWh, at midnight 10.49kWh, battery value change in the last hour 5.33p, change today 0.49p, rate_forward 6.87p
2026-08-17 00:55:02.179960: Last hour: net energy 0.3kWh, import 0.3kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 2.4p, import 2.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 00:55:02.241408: Today's energy total net 0.3kWh, import 0.3kWh, export 0.0kWh, cost 49.03p, import 2.4p, export 0.0p, carbon 0.0kg
2026-08-17 00:55:02.241533: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 00:55:02.318091: Using weighted-bucket historical load forecast over 14 days
2026-08-17 00:55:02.344552: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 00:55:02.344653: Today's predicted so far 0.81kWh with 0.0kWh car/iBoost excluded, 0.12kWh import ignored, and 0.81kWh forecast extra.
2026-08-17 00:55:02.344686: Today's actual load so far 0.28kWh with 0.0kWh car/iBoost excluded, and 0.12kWh import ignored.
2026-08-17 00:55:02.389011: Inverter 0: Type SK Sunsynk
2026-08-17 00:55:02.389116: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:55:02.389395: Reserve min: 7%, battery_min: 7%
2026-08-17 00:55:02.389502: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:55:02.389861: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -492W, load power 492W, PV Power 0W
2026-08-17 00:55:02.390079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:55:02.390203: Inverter 0 scheduled charge enable is True
2026-08-17 00:55:02.390270: 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-17 00:55:02.390437: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:55:02.390615: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:55:02.390671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:55:02.390740: Inverter 0 scheduled discharge enable is False
2026-08-17 00:55:02.390940: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:55:02.390995: Inverter 0 discharge windows currently []
2026-08-17 00:55:02.391040: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:55:02.391085: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:55:02.391120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:55:02.463456: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 00:55:02.463576: Plan was last updated on 2026-08-17 00:45:00+01:00 and is now 10.0 minutes old
2026-08-17 00:55:02.463899: Best charge window [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ]
2026-08-17 00:55:02.463972: Best export window [  ]
2026-08-17 00:55:02.464857: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:55:02.468064: Load divergence over 8.0 hours mean 428.18W, min 260.4W, max 845.4W, std dev 129.2W, divergence 15.09%
2026-08-17 00:55:02.490536: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:55:02.490683: LoadML is_calculating False
2026-08-17 00:55:02.490781: Creating pool of 12 processes to match your CPU count
2026-08-17 00:55:02.639932: predict base end_record 08-18 01:10:00, final soc 6.56kWh, metric 165.19p, metric_keep 3.77kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 11.94kWh, PV 0.0kWh
2026-08-17 00:55:02.785573: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:55:02.833926: predict base10 end_record 08-18 01:10:00, final soc 5.65kWh, metric 161.78p, metric_keep 10.06kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.49kWh, PV 0.0kWh
2026-08-17 00:55:02.925535: predict best10 end_record 08-18 01:10:00, final soc 2.65kWh, metric 136.51p, metric_keep 0.4kWh, min_soc 1.62kWh @ 08-17 23:55:00, load 12.49kWh, PV 0.0kWh
2026-08-17 00:55:03.017449: predict best end_record 08-18 01:10:00, final soc 2.84kWh, metric 133.27p, metric_keep 0kWh, min_soc 2.07kWh @ 08-17 23:55:00, load 11.94kWh, PV 0.0kWh
2026-08-17 00:55:03.017545: Saving plan best values to HA entities
2026-08-17 00:55:03.220161: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:55:03.226348: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:55:03.232635: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.7kWh, house 0.0kWh, export 0.0kWh, metric 133.27p, metric10 136.51p
2026-08-17 00:55:03.313135: Marginal costs baseline metric (no standing charge): 86.633
2026-08-17 00:55:03.614151: Marginal energy costs matrix computed: min=8.0 max=29.66
2026-08-17 00:55:03.676939: Rate array import [{'start': 55, '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': 1510, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 55, 'end': 1510, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:55:03.677359: - Your estimated bill for today is £0.71 and tomorrow is £2.23
2026-08-17 00:55:03.677399: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:55:03.677418: - The battery is currently at 66% and is charging to 66% for the next 3 hours.
2026-08-17 00:55:03.677433: - For the next 48 hours there will be no solar generation.
2026-08-17 00:55:03.677447: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:55:03.677461: - Your car is currently charging.
2026-08-17 00:55:03.677478: 
2026-08-17 00:55:03.728468: Plan calculation took 1.26 seconds
2026-08-17 00:55:03.731048: No high rate period found
2026-08-17 00:55:03.779086: Import threshold used for optimisation was 8.0p
2026-08-17 00:55:03.855063: Low import rate windows [0: 08-17 00:30:00 - 08-17 01:00:00 @ 8.0, 1: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 2: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 3: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 4: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 5: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 6: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 7: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 8: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 9: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 10: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 24: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 25: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 00:55:03.861407: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:55:03.861528: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:55:03.861725: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:55:03.861819: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:55:03.861968: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:55:03.862214: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:55:03.862361: No export window planned
2026-08-17 00:55:03.862485: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:55:03.862522: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:55:03.862659: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:55:03.862746: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:55:03.862809: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:55:03.862875: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:55:03.862974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863204: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863238: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863270: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863296: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863419: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863491: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863559: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:03.863867: Inverter 0 count register writes 0
2026-08-17 00:55:03.880715: 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 00:55:03.880902: Recompute is saving previous plan...
2026-08-17 00:55:03.881996: Best charge window [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 66%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66% ]
2026-08-17 00:55:03.882055: Best export window [  ]
2026-08-17 00:55:03.882887: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 00:55:03.886253: Load divergence over 8.0 hours mean 428.18W, min 260.4W, max 845.4W, std dev 129.2W, divergence 15.09%
2026-08-17 00:55:03.903786: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 00:55:03.903909: LoadML is_calculating False
2026-08-17 00:55:03.903980: Creating pool of 12 processes to match your CPU count
2026-08-17 00:55:04.009641: 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 00:55:04.010717: Optimise levels pass started at 2026-08-17 00:55:04
2026-08-17 00:55:04.010781: Optimise all windows, total charge 25 export 1
2026-08-17 00:55:04.822790: >> Region optimisation pass width 960 gives best_metric 210.57p, best_cost 219.69p, best_cycle 36.28kWh, best_import 21.33kWh
2026-08-17 00:55:05.065237: >> Region optimisation pass width 480 gives best_metric 210.57p, best_cost 219.69p, best_cycle 36.28kWh, best_import 21.33kWh
2026-08-17 00:55:05.489705: >> Region optimisation pass width 240 gives best_metric 210.57p, best_cost 219.69p, best_cycle 36.28kWh, best_import 21.33kWh
2026-08-17 00:55:06.331959: >> Region optimisation pass width 120 gives best_metric 210.57p, best_cost 219.69p, best_cycle 36.28kWh, best_import 21.33kWh
2026-08-17 00:55:06.332285: Calculated end_record as 08-18 01:00:00 based on best_price 8.0p, next_charge_start 08-17 01:00:00, max_windows 14
2026-08-17 00:55:06.332393: Optimise levels pass ended at 2026-08-17 00:55:06, duration 2.3 seconds tried 78 combinations
2026-08-17 00:55:06.332470: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 210.57p, best_keep 0.34kWh, best_cycle 36.28kWh, best_carbon 0kg, best_import 21.33kWh
2026-08-17 00:55:06.353321: Starting detailed optimisation end_record 08-18 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, 0, 15.75, 15.75, 15.75, 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 00:55:10.615333: Tweak plan optimisation started metric 65.39p, cost 78.41p
2026-08-17 00:55:10.964932: Tweak optimisation finished metric 64.9p, cost 77.91p, metric_keep 0.01kWh, cycle 9.77kWh, carbon 0kg, import 3.61kWh, changed 8 window(s)
2026-08-17 00:55:10.986274: Swap charge optimisation started metric 64.9p, cost 77.91p, min_improvement_swap 0.1p
2026-08-17 00:55:11.766082: Swap charge optimisation finished metric 64.9p, cost 77.91p
2026-08-17 00:55:11.881041: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 64.18p -> 64.19p, plan now metric 64.92p, cost 77.92p, cycle 9.78kWh, import 3.61kWh
2026-08-17 00:55:11.890109: Raw charge windows [ 17-08 00:30:00 - 17-08 01:00:00 @ 8.0p 0%, 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 63%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 00:55:11.890474: Unclipped charge windows [ 17-08 01:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:55:11.890732: Unfiltered charge windows [ 17-08 01:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:55:11.890941: Filtered charge windows [ 17-08 01:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 00:55:11.923701: Previous plan best metric is 65.16 (cost 78.66) and new plan best metric is 64.9 (cost 77.91)
2026-08-17 00:55:11.923976: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 00:55:11.924205: Plan valid is now true after recompute was False
2026-08-17 00:55:11.954088: predict base end_record 08-18 01:00:00, final soc 5.78kWh, metric 157.22p, metric_keep 3.77kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 11.78kWh, PV 0.0kWh
2026-08-17 00:55:12.075980: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 00:55:12.118977: predict base10 end_record 08-18 01:00:00, final soc 5.0kWh, metric 154.86p, metric_keep 10.06kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.32kWh, PV 0.0kWh
2026-08-17 00:55:12.195993: predict best10 end_record 08-18 01:00:00, final soc 2.0kWh, metric 129.59p, metric_keep 0.4kWh, min_soc 1.62kWh @ 08-17 23:55:00, load 12.32kWh, PV 0.0kWh
2026-08-17 00:55:12.270935: predict best end_record 08-18 01:00:00, final soc 2.07kWh, metric 125.3p, metric_keep 0kWh, min_soc 2.07kWh @ 08-17 23:55:00, load 11.78kWh, PV 0.0kWh
2026-08-17 00:55:12.271017: Saving plan best values to HA entities
2026-08-17 00:55:12.440761: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 00:55:12.447039: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 00:55:12.453290: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.7kWh, house 0.0kWh, export 0.0kWh, metric 125.3p, metric10 129.59p
2026-08-17 00:55:12.521049: Marginal costs baseline metric (no standing charge): 78.664
2026-08-17 00:55:12.752658: Marginal energy costs matrix computed: min=8.0 max=29.66
2026-08-17 00:55:12.813053: Rate array import [{'start': 55, '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': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 55, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 00:55:12.813555: - Your estimated bill for today is £0.71 and tomorrow is £2.23
2026-08-17 00:55:12.813632: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 00:55:12.813655: - The battery is currently at 66% and is charging to 66% for the next 3 hours.
2026-08-17 00:55:12.813673: - For the next 48 hours there will be no solar generation.
2026-08-17 00:55:12.813690: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 00:55:12.813707: - Your car is currently charging.
2026-08-17 00:55:12.813725: 
2026-08-17 00:55:12.866793: Plan calculation took 8.99 seconds
2026-08-17 00:55:12.867162: Inverter 0: Type SK Sunsynk
2026-08-17 00:55:12.867211: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 00:55:12.867487: Reserve min: 7%, battery_min: 7%
2026-08-17 00:55:12.867572: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 00:55:12.867926: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -495W, load power 495W, PV Power 0W
2026-08-17 00:55:12.868248: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:55:12.868382: Inverter 0 scheduled charge enable is True
2026-08-17 00:55:12.868438: 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-17 00:55:12.868543: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 00:55:12.868669: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:55:12.868709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:55:12.868747: Inverter 0 scheduled discharge enable is False
2026-08-17 00:55:12.868871: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:55:12.868909: Inverter 0 discharge windows currently []
2026-08-17 00:55:12.868933: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:55:12.868976: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:55:12.869010: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:55:12.924112: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 00:55:12.924242: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 00:55:12.924411: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 00:55:12.924510: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 00:55:12.924653: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:55:12.924871: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:55:12.925017: No export window planned
2026-08-17 00:55:12.925144: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 00:55:12.925181: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 00:55:12.925339: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 00:55:12.925432: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 00:55:12.925497: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 00:55:12.925548: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 00:55:12.925657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925882: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.925950: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926012: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926041: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926077: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926103: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926137: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 00:55:12.926407: Inverter 0 count register writes 0
2026-08-17 00:55:12.948594: Total inverter register writes now 848
2026-08-17 00:55:12.982030: Info: Completed run status Hold charging
2026-08-17 00:55:12.988594: Info: record_status Hold charging target 66%-66%
2026-08-17 00:55:12.995720: Saved current settings to /config/predbat_config.json
2026-08-17 00:55:12.996051: Compare, best tariff: current metric 104.68p
2026-08-17 00:55:49.109202: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:55:49.109501: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:55:49.109547: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:55:49.109681: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:55:49.109719: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:55:49.109765: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:55:49.109783: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 00:57:49.334648: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 00:57:49.334919: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 00:57:49.334956: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 00:57:49.335150: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 00:57:49.335191: Note: Inverter does not support discharge freeze - disabled
2026-08-17 00:57:49.335212: Note: Inverter does not support charge freeze - disabled
2026-08-17 00:57:49.335230: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:00:00.570716: --------------- PredBat - update at 2026-08-17 01:00:00+01:00 with clock skew 0 minutes, minutes now 60
2026-08-17 01:00:00.571544: Saved current settings to /config/predbat_config.json
2026-08-17 01:00:00.571776: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 01:00:00.571928: 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 01:00:00.572065: 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 01:00:00.597592: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:00:00.597738: days_previous_auto enabled - will 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 01:00:00.597891: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:00:00.598368: 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 01:00:00.598488: Predbat mode is set to Control charge & discharge
2026-08-17 01:00:00.850233: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:00:00.850472: Using load_power data to fill gaps in load_today data
2026-08-17 01:00:01.804373: Processing 721 30-minute periods for power integration
2026-08-17 01:00:02.009079: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:00:02.009225: Car charging hold False, threshold 6.0kWh
2026-08-17 01:00:02.009275: Current data so far today: load 0.43kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:00:02.026020: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:00:02.026134: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:00:02.026927: Standing charge is set to 46.63p
2026-08-17 01:00:02.153531: 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 01:00:02.154595: 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 01:00:02.154960: 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 01:00:02.155256: 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 01:00:02.155570: 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 01:00:02.155892: 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 01:00:02.156107: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.156216: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.156373: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.156552: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.156715: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.156879: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 8.0, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.157113: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.157263: Octopus: Intelligent slot at 08-17 00:30:00-08-17 04:30:00, assumed price 33.75, amount 29.6, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.157594: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:00:02.157693: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:00:02.164644: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:00:02.165081: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:00:02.207977: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:00:02.208113: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:00:02.209337: High export rate found rates in range 99p to -99p
2026-08-17 01:00:02.231087: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:00:02.231694: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:00:02.231773: Car 0 charging plan is: [{'start': 30, 'end': 270, 'kwh': 29.6, 'average': 8.0, 'cost': 236.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8, 'average': 8.0, 'cost': 6.4, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:00:02.245462: Battery level now 10.56kWh, -1hr ago 10.49kWh, at midnight 10.49kWh, battery value change in the last hour 0.49p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:00:02.245817: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:00:02.326740: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 49.83p, import 3.2p, export 0.0p, carbon 0.0kg
2026-08-17 01:00:02.326921: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:00:02.409585: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:00:02.432716: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:00:02.432829: Today's predicted so far 0.96kWh with 0.0kWh car/iBoost excluded, 0.1kWh import ignored, and 0.96kWh forecast extra.
2026-08-17 01:00:02.432863: Today's actual load so far 0.42kWh with 0.0kWh car/iBoost excluded, and 0.1kWh import ignored.
2026-08-17 01:00:02.473760: Inverter 0: Type SK Sunsynk
2026-08-17 01:00:02.473851: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:00:02.474036: Reserve min: 7%, battery_min: 7%
2026-08-17 01:00:02.474105: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:00:02.474364: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -503W, load power 501W, PV Power 0W
2026-08-17 01:00:02.474539: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:00:02.474628: Inverter 0 scheduled charge enable is True
2026-08-17 01:00:02.474677: 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-17 01:00:02.474769: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:00:02.474885: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:00:02.474922: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:00:02.474981: Inverter 0 scheduled discharge enable is False
2026-08-17 01:00:02.475105: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:00:02.475142: Inverter 0 discharge windows currently []
2026-08-17 01:00:02.475165: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:00:02.475183: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:00:02.475200: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:00:02.547340: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:00:02.547492: Plan was last updated on 2026-08-17 00:55:00+01:00 and is now 5.0 minutes old
2026-08-17 01:00:02.547850: Best charge window [ 17-08 00:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:00:00 @ 8.0p 100% ]
2026-08-17 01:00:02.547909: Best export window [  ]
2026-08-17 01:00:02.549208: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:00:02.552436: Load divergence over 8.0 hours mean 427.92W, min 262.2W, max 898.8W, std dev 128.05W, divergence 14.96%
2026-08-17 01:00:02.571868: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:00:02.572036: LoadML is_calculating False
2026-08-17 01:00:02.572116: Creating pool of 12 processes to match your CPU count
2026-08-17 01:00:02.701170: predict base end_record 08-18 01:05:00, final soc 6.23kWh, metric 162.17p, metric_keep 3.6kWh, min_soc 1.19kWh @ 08-17 23:55:00, load 11.95kWh, PV 0.0kWh
2026-08-17 01:00:02.862401: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:00:02.915234: predict base10 end_record 08-18 01:05:00, final soc 5.32kWh, metric 158.82p, metric_keep 9.94kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.5kWh, PV 0.0kWh
2026-08-17 01:00:03.005244: predict best10 end_record 08-18 01:05:00, final soc 2.32kWh, metric 133.48p, metric_keep 0.32kWh, min_soc 1.68kWh @ 08-17 23:55:00, load 12.5kWh, PV 0.0kWh
2026-08-17 01:00:03.107502: predict best end_record 08-18 01:05:00, final soc 2.52kWh, metric 130.24p, metric_keep 0kWh, min_soc 2.13kWh @ 08-17 23:55:00, load 11.95kWh, PV 0.0kWh
2026-08-17 01:00:03.107598: Saving plan best values to HA entities
2026-08-17 01:00:03.297906: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:00:03.304830: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:00:03.312729: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.22kWh, house 0.0kWh, export 0.0kWh, metric 130.24p, metric10 133.48p
2026-08-17 01:00:03.399724: Marginal costs baseline metric (no standing charge): 83.6077
2026-08-17 01:00:03.696639: Marginal energy costs matrix computed: min=8.0 max=29.58
2026-08-17 01:00:03.773575: Rate array import [{'start': 60, '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': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 60, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:00:03.774056: - Your estimated bill for today is £0.72 and tomorrow is £2.22
2026-08-17 01:00:03.774105: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:00:03.774127: - The battery is currently at 66% and is charging to 66% for the next 3 hours.
2026-08-17 01:00:03.774145: - For the next 48 hours there will be no solar generation.
2026-08-17 01:00:03.774187: - You will reach a minimum of 13% battery in 22 hours.
2026-08-17 01:00:03.774206: - Your car is currently charging.
2026-08-17 01:00:03.774223: 
2026-08-17 01:00:03.829814: Plan calculation took 1.28 seconds
2026-08-17 01:00:03.836717: No high rate period found
2026-08-17 01:00:03.891994: Import threshold used for optimisation was 8.0p
2026-08-17 01:00:03.983621: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0]
2026-08-17 01:00:03.992686: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 00:30:00
2026-08-17 01:00:03.992872: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:00:03.993156: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:00:03.993266: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:00:03.993445: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:00:03.993759: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 01:00:03.993913: No export window planned
2026-08-17 01:00:03.994045: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:00:03.994076: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:00:03.994223: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 01:00:03.994318: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:00:03.994378: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:00:03.994466: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:00:03.994584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994871: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994897: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994924: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994956: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.994982: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995018: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:00:03.995280: Inverter 0 count register writes 0
2026-08-17 01:00:04.022934: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:00:04.031794: Total inverter register writes now 848
2026-08-17 01:00:04.087635: Info: Completed run status Hold charging
2026-08-17 01:00:04.099394: Info: record_status Hold charging target 66%-66%
2026-08-17 01:00:04.108991: Saved current settings to /config/predbat_config.json
2026-08-17 01:00:04.109384: Compare, best tariff: current metric 104.68p
2026-08-17 01:00:34.246548: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:00:34.246831: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:00:34.246874: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:00:34.247034: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:00:34.247079: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:00:34.247102: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:00:34.247120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:02:48.481355: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:02:48.481659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:02:48.481736: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:02:48.481957: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:02:48.482004: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:02:48.482054: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:02:48.482071: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:04:48.719275: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:04:48.719590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:04:48.719628: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:04:48.719778: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:04:48.719858: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:04:48.719880: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:04:48.719898: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:05:00.819363: --------------- PredBat - update at 2026-08-17 01:05:00+01:00 with clock skew 0 minutes, minutes now 65
2026-08-17 01:05:00.820210: Saved current settings to /config/predbat_config.json
2026-08-17 01:05:01.124089: 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 01:05:01.124234: 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 01:05:01.146156: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:05:01.146304: days_previous_auto enabled - will 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 01:05:01.146478: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:05:01.147010: 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 01:05:01.147137: Predbat mode is set to Control charge & discharge
2026-08-17 01:05:01.371153: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:05:01.371327: Using load_power data to fill gaps in load_today data
2026-08-17 01:05:02.201809: Processing 721 30-minute periods for power integration
2026-08-17 01:05:02.379038: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:05:02.379177: Car charging hold False, threshold 6.0kWh
2026-08-17 01:05:02.379217: Current data so far today: load 0.45kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:05:02.392762: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:05:02.392853: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:05:02.393538: Standing charge is set to 46.63p
2026-08-17 01:05:02.494053: 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 01:05:02.494402: 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 01:05:02.494752: 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 01:05:02.495027: 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 01:05:02.495316: 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 01:05:02.495601: 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 01:05:02.495875: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496168: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496308: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496444: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496602: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496758: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.496884: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.497040: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.497314: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:05:02.497393: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:05:02.502956: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:05:02.503441: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:05:02.546917: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:05:02.547044: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:05:02.548293: High export rate found rates in range 99p to -99p
2026-08-17 01:05:02.572219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:05:02.572359: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:05:02.572444: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:05:02.588171: Battery level now 10.56kWh, -1hr ago 10.72kWh, at midnight 10.49kWh, battery value change in the last hour -1.1p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:05:02.588571: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:05:02.636857: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 49.83p, import 3.2p, export 0.0p, carbon 0.0kg
2026-08-17 01:05:02.637022: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:05:02.711743: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:05:02.735631: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:05:02.736022: Today's predicted so far 1.08kWh with 0.0kWh car/iBoost excluded, 0.08kWh import ignored, and 1.08kWh forecast extra.
2026-08-17 01:05:02.736070: Today's actual load so far 0.46kWh with 0.0kWh car/iBoost excluded, and 0.08kWh import ignored.
2026-08-17 01:05:02.775956: 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-17T04:30:00+01:00', 'charge_in_kwh': -29.6, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8, '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.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.7665, 'source': 'SMART'}]]
2026-08-17 01:05:02.776579: Sensor changes require a replan, will recompute the plan
2026-08-17 01:05:02.776764: Inverter 0: Type SK Sunsynk
2026-08-17 01:05:02.776814: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:05:02.777063: Reserve min: 7%, battery_min: 7%
2026-08-17 01:05:02.777153: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:05:02.777420: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -504W, load power 504W, PV Power 0W
2026-08-17 01:05:02.777613: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:05:02.777708: Inverter 0 scheduled charge enable is True
2026-08-17 01:05:02.777751: 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-17 01:05:02.777839: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:05:02.777995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:05:02.778037: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:05:02.778077: Inverter 0 scheduled discharge enable is False
2026-08-17 01:05:02.778201: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:05:02.778239: Inverter 0 discharge windows currently []
2026-08-17 01:05:02.778262: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:05:02.778280: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:05:02.778299: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:05:02.841745: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:05:02.841830: Will recompute the plan as it is invalid
2026-08-17 01:05:02.841971: Recompute is saving previous plan...
2026-08-17 01:05:02.843033: Best charge window [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66% ]
2026-08-17 01:05:02.843092: Best export window [  ]
2026-08-17 01:05:02.843908: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:05:02.847423: Load divergence over 8.0 hours mean 428.97W, min 271.2W, max 996.6W, std dev 139.22W, divergence 16.23%
2026-08-17 01:05:02.863248: Calculating data from yesterday for savings calculation
2026-08-17 01:05:02.872855: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1505, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 01:05:02.911384: predict yesterday end_record 08-18 00:00:00, final soc 9.96kWh, metric 223.81p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-17 00:00:00, load 11.46kWh, PV 0.0kWh
2026-08-17 01:05:02.924435: predict yesterday10 end_record 08-18 00:00:00, final soc 9.57kWh, metric 220.48p, metric_keep 0.0kWh, min_soc 1.44kWh @ 08-17 00:00:00, load 11.46kWh, PV 0.0kWh
2026-08-17 01:05:02.943206: predict yesterday end_record 08-18 00:00:00, final soc 9.96kWh, metric 223.81p, metric_keep 0.0kWh, min_soc 1.51kWh @ 08-17 00:00:00, load 11.46kWh, PV 0.0kWh
2026-08-17 01:05:02.962975: Yesterday: Predbat disabled was £2.24 (adjusted £1.55) vs £3.17 (adjusted £2.5), saving £-0.94 (adjusted £-0.95) with import 22.15kWh, export 0.0kWh, battery_cycle 25.86kWh, start_soc 1.12kWh,  final_soc 9.96kWh and battery_value 68.45kWh
2026-08-17 01:05:03.021775: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 302.56p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.46kWh, PV 0.0kWh
2026-08-17 01:05:03.021931: Yesterday: No Battery/PV system cost predicted was £3.03 (adjusted £3.03) vs £3.17 (adjusted £2.5), saving £-0.15 (adjusted £0.52) with import 11.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 01:05:03.031841: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:05:03.031961: LoadML is_calculating False
2026-08-17 01:05:03.032029: Creating pool of 12 processes to match your CPU count
2026-08-17 01:05:03.132758: 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 01:05:03.135258: Optimise levels pass started at 2026-08-17 01:05:03
2026-08-17 01:05:03.135341: Optimise all windows, total charge 25 export 1
2026-08-17 01:05:03.825862: >> Region optimisation pass width 960 gives best_metric 212.33p, best_cost 222.22p, best_cycle 36.68kWh, best_import 21.55kWh
2026-08-17 01:05:03.997790: >> Region optimisation pass width 480 gives best_metric 212.33p, best_cost 222.22p, best_cycle 36.68kWh, best_import 21.55kWh
2026-08-17 01:05:04.295174: >> Region optimisation pass width 240 gives best_metric 212.33p, best_cost 222.22p, best_cycle 36.68kWh, best_import 21.55kWh
2026-08-17 01:05:04.955813: >> Region optimisation pass width 120 gives best_metric 212.33p, best_cost 222.22p, best_cycle 36.68kWh, best_import 21.55kWh
2026-08-17 01:05:04.956356: Calculated end_record as 08-18 01:30:00 based on best_price 8.0p, next_charge_start 08-17 01:30:00, max_windows 14
2026-08-17 01:05:04.956622: Optimise levels pass ended at 2026-08-17 01:05:04, duration 1.8 seconds tried 59 combinations
2026-08-17 01:05:04.956737: 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 0.22kWh, best_cycle 36.68kWh, best_carbon 0kg, best_import 21.55kWh
2026-08-17 01:05:04.979821: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 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 01:05:09.891274: Tweak plan optimisation started metric 69.24p, cost 82.98p
2026-08-17 01:05:10.215205: Tweak optimisation finished metric 68.65p, cost 82.04p, metric_keep 0kWh, cycle 9.13kWh, carbon 0kg, import 4.03kWh, changed 8 window(s)
2026-08-17 01:05:10.238341: Swap charge optimisation started metric 68.65p, cost 82.04p, min_improvement_swap 0.1p
2026-08-17 01:05:10.671983: Swap charge optimisation finished metric 68.65p, cost 82.04p
2026-08-17 01:05:10.788809: Raw charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:05:10.789236: Unclipped charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:05:10.789486: Unfiltered charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:05:10.789683: Filtered charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:05:10.821562: Previous plan best metric is 73.16 (cost 103.45) and new plan best metric is 68.65 (cost 82.04)
2026-08-17 01:05:10.821782: New plan metric is significantly better from previous plan, using new plan
2026-08-17 01:05:10.821825: Plan valid is now true after recompute was False
2026-08-17 01:05:10.847634: predict base end_record 08-18 01:30:00, final soc 8.21kWh, metric 182.01p, metric_keep 3.54kWh, min_soc 1.23kWh @ 08-17 23:55:00, load 12.33kWh, PV 0.0kWh
2026-08-17 01:05:10.961815: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:05:11.002636: predict base10 end_record 08-18 01:30:00, final soc 6.94kWh, metric 175.74p, metric_keep 9.91kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 12.9kWh, PV 0.0kWh
2026-08-17 01:05:11.075874: predict best10 end_record 08-18 01:30:00, final soc 2.0kWh, metric 133.22p, metric_keep 0.5kWh, min_soc 1.63kWh @ 08-17 23:55:00, load 12.9kWh, PV 0.0kWh
2026-08-17 01:05:11.164633: predict best end_record 08-18 01:30:00, final soc 2.05kWh, metric 128.67p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:55:00, load 12.33kWh, PV 0.0kWh
2026-08-17 01:05:11.164722: Saving plan best values to HA entities
2026-08-17 01:05:11.319318: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:05:11.324557: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:05:11.329995: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.03kWh, house 0.0kWh, export 0.0kWh, metric 128.67p, metric10 133.22p
2026-08-17 01:05:11.401581: Marginal costs baseline metric (no standing charge): 82.0364
2026-08-17 01:05:11.631360: Marginal energy costs matrix computed: min=8.0 max=29.98
2026-08-17 01:05:11.697715: Rate array import [{'start': 65, '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': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 65, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:05:11.698105: - Your estimated bill for today is £0.70 and tomorrow is £2.23
2026-08-17 01:05:11.698150: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:05:11.698170: - The battery is currently at 66% and is charging to 66% for the next 3  hours.
2026-08-17 01:05:11.698189: - For the next 48 hours there will be no solar generation.
2026-08-17 01:05:11.698218: - You will reach a minimum of 13% battery in 22 hours.
2026-08-17 01:05:11.698244: 
2026-08-17 01:05:11.746088: Plan calculation took 8.90 seconds
2026-08-17 01:05:11.751440: Saved plan to storage
2026-08-17 01:05:11.754795: No high rate period found
2026-08-17 01:05:11.806152: Import threshold used for optimisation was 8.0p
2026-08-17 01:05:11.855593: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 25: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:05:11.862873: Inverter 0: Type SK Sunsynk
2026-08-17 01:05:11.862964: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:05:11.863210: Reserve min: 7%, battery_min: 7%
2026-08-17 01:05:11.863289: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:05:11.863637: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -504W, load power 504W, PV Power 0W
2026-08-17 01:05:11.863870: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:05:11.863974: Inverter 0 scheduled charge enable is True
2026-08-17 01:05:11.864025: 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-17 01:05:11.864121: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:05:11.864245: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:05:11.864280: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:05:11.864321: Inverter 0 scheduled discharge enable is False
2026-08-17 01:05:11.864446: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:05:11.864484: Inverter 0 discharge windows currently []
2026-08-17 01:05:11.864518: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:05:11.864563: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:05:11.864596: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:05:11.916035: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:05:11.916164: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:05:11.916298: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:05:11.916381: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:05:11.916499: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:05:11.916707: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:05:11.916784: Inverter 0 set new demand (idle) start time to 05:30:00 was 04:30:00
2026-08-17 01:05:16.923003: Inverter 0 write_and_poll_value: Wrote 05:30:00 to idle_start_time, successfully now 05:30:00
2026-08-17 01:05:21.932513: Inverter 0 write_and_poll_value: Wrote 05:30:00 to charge_end_time, successfully now 05:30:00
2026-08-17 01:05:21.932675: Inverter 0 Updated start and end charge window to 00:00:00 - 05:30:00 (old 00:00:00 - 04:30:00)
2026-08-17 01:05:21.932814: No export window planned
2026-08-17 01:05:21.933064: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:05:21.933137: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:05:21.933347: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:05:21.933481: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:05:21.933573: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:05:21.933658: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:05:21.933783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.933957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:21.934010: 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 01:05:21.943078: 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 01:05:21.997039: 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 01:05:22.100873: 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 01:05:22.142981: 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 01:05:22.246909: 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 01:05:22.351236: 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 01:05:22.455397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:05:22.455692: Inverter 0 count register writes 0
2026-08-17 01:05:22.479682: Total inverter register writes now 848
2026-08-17 01:05:22.516567: Info: Completed run status Hold charging
2026-08-17 01:05:22.523005: Info: record_status Hold charging target 66%-66%
2026-08-17 01:05:22.529739: Saved current settings to /config/predbat_config.json
2026-08-17 01:05:22.530061: Compare, best tariff: current metric 104.68p
2026-08-17 01:06:03.656034: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:06:03.656363: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:06:03.656425: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:06:03.656656: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:06:03.656732: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:06:03.656754: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:06:03.656772: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:08:03.895150: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:08:03.895433: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:08:03.895486: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:08:03.895689: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:08:03.895747: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:08:03.895768: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:08:03.895786: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:10:00.108805: --------------- PredBat - update at 2026-08-17 01:10:00+01:00 with clock skew 0 minutes, minutes now 70
2026-08-17 01:10:00.110032: Saved current settings to /config/predbat_config.json
2026-08-17 01:10:00.110270: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 01:10:00.110463: 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 01:10:00.110618: 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 01:10:00.132835: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:10:00.132993: days_previous_auto enabled - will 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 01:10:00.133172: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:10:00.133711: 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 01:10:00.133836: Predbat mode is set to Control charge & discharge
2026-08-17 01:10:00.338870: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:10:00.339028: Using load_power data to fill gaps in load_today data
2026-08-17 01:10:01.064755: Processing 721 30-minute periods for power integration
2026-08-17 01:10:01.250106: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:10:01.250264: Car charging hold False, threshold 6.0kWh
2026-08-17 01:10:01.250315: Current data so far today: load 0.55kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:10:01.267787: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:10:01.267911: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:10:01.268716: Standing charge is set to 46.63p
2026-08-17 01:10:01.399213: 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 01:10:01.399487: 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 01:10:01.399772: 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 01:10:01.399959: 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 01:10:01.400167: 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 01:10:01.400366: 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 01:10:01.400589: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.400782: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.400871: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.400978: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401066: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401150: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401225: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401297: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401461: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:10:01.401521: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:10:01.406556: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:10:01.406936: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:10:01.450182: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:10:01.450455: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:10:01.451771: High export rate found rates in range 99p to -99p
2026-08-17 01:10:01.475721: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:10:01.475896: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:10:01.475989: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:10:01.492089: Battery level now 10.56kWh, -1hr ago 10.72kWh, at midnight 10.49kWh, battery value change in the last hour -1.1p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:10:01.492400: Last hour: net energy 0.38kWh, import 0.38kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.0p, import 3.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:10:01.550818: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 49.83p, import 3.2p, export 0.0p, carbon 0.0kg
2026-08-17 01:10:01.550947: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:10:01.618341: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:10:01.636089: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:10:01.636206: Today's predicted so far 1.13kWh with 0.0kWh car/iBoost excluded, 0.04kWh import ignored, and 1.13kWh forecast extra.
2026-08-17 01:10:01.636260: Today's actual load so far 0.53kWh with 0.0kWh car/iBoost excluded, and 0.04kWh import ignored.
2026-08-17 01:10:01.676715: Inverter 0: Type SK Sunsynk
2026-08-17 01:10:01.676801: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:10:01.676979: Reserve min: 7%, battery_min: 7%
2026-08-17 01:10:01.677041: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:10:01.677266: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -516W, load power 510W, PV Power 0W
2026-08-17 01:10:01.677402: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:10:01.677476: Inverter 0 scheduled charge enable is True
2026-08-17 01:10:01.677512: 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 01:10:01.677597: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:10:01.677720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:10:01.677753: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:10:01.677783: Inverter 0 scheduled discharge enable is False
2026-08-17 01:10:01.677883: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:10:01.677913: Inverter 0 discharge windows currently []
2026-08-17 01:10:01.677932: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:10:01.677947: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:10:01.677964: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:10:01.742028: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:10:01.742138: Plan was last updated on 2026-08-17 01:05:00+01:00 and is now 5.0 minutes old
2026-08-17 01:10:01.742385: Best charge window [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ]
2026-08-17 01:10:01.742428: Best export window [  ]
2026-08-17 01:10:01.743302: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:10:01.746456: Load divergence over 8.0 hours mean 426.28W, min 292.2W, max 930.6W, std dev 129.83W, divergence 15.23%
2026-08-17 01:10:01.765038: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:10:01.765178: LoadML is_calculating False
2026-08-17 01:10:01.765256: Creating pool of 12 processes to match your CPU count
2026-08-17 01:10:01.900326: predict base end_record 08-18 01:35:00, final soc 8.95kWh, metric 187.98p, metric_keep 0.64kWh, min_soc 1.58kWh @ 08-17 23:55:00, load 12.43kWh, PV 0.0kWh
2026-08-17 01:10:02.057162: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:10:02.100398: predict base10 end_record 08-18 01:35:00, final soc 7.3kWh, metric 178.77p, metric_keep 3.99kWh, min_soc 1.15kWh @ 08-17 23:55:00, load 13.0kWh, PV 0.0kWh
2026-08-17 01:10:02.179689: predict best10 end_record 08-18 01:35:00, final soc 2.32kWh, metric 136.05p, metric_keep 0.58kWh, min_soc 1.59kWh @ 08-17 23:55:00, load 13.0kWh, PV 0.0kWh
2026-08-17 01:10:02.254958: predict best end_record 08-18 01:35:00, final soc 2.41kWh, metric 131.76p, metric_keep 0kWh, min_soc 2.02kWh @ 08-17 23:55:00, load 12.43kWh, PV 0.0kWh
2026-08-17 01:10:02.255043: Saving plan best values to HA entities
2026-08-17 01:10:02.412260: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:10:02.417818: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:10:02.423113: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.41kWh, house 0.0kWh, export 0.0kWh, metric 131.76p, metric10 136.05p
2026-08-17 01:10:02.491978: Marginal costs baseline metric (no standing charge): 85.1266
2026-08-17 01:10:02.739359: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 01:10:02.802781: Rate array import [{'start': 70, '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': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 70, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:10:02.803186: - Your estimated bill for today is £0.69 and tomorrow is £2.23
2026-08-17 01:10:02.803231: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:10:02.803253: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 01:10:02.803271: - For the next 48 hours there will be no solar generation.
2026-08-17 01:10:02.803288: - You will reach a minimum of 13% battery in 22 hours.
2026-08-17 01:10:02.803305: 
2026-08-17 01:10:02.851260: Plan calculation took 1.11 seconds
2026-08-17 01:10:02.853972: No high rate period found
2026-08-17 01:10:02.899990: Import threshold used for optimisation was 8.0p
2026-08-17 01:10:02.943596: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 25: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:10:02.948935: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:10:02.949068: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:10:02.949227: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:10:02.949351: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:10:02.949534: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:10:02.949761: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:10:02.949889: No export window planned
2026-08-17 01:10:02.949995: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:10:02.950026: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:10:02.950140: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:10:02.950238: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:10:02.950315: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:10:02.950378: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:10:02.950468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950694: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950716: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950736: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950756: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950780: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950804: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.950981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:10:02.951005: Inverter 0 count register writes 0
2026-08-17 01:10:02.965867: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:10:02.970944: Total inverter register writes now 848
2026-08-17 01:10:03.029476: Info: Completed run status Hold charging
2026-08-17 01:10:03.035817: Info: record_status Hold charging target 66%-66%
2026-08-17 01:10:03.042673: Saved current settings to /config/predbat_config.json
2026-08-17 01:10:03.043007: Compare, best tariff: current metric 104.68p
2026-08-17 01:10:10.830190: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 01:10:11.923000: Processing 1345 30-minute periods for power integration
2026-08-17 01:10:12.006887: ML Component: Car charging hold False, car energy reported load False
2026-08-17 01:10:12.089609: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:10:12.173399: ML Temperature data points: 48891
2026-08-17 01:10:12.425196: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 01:10:12.467369: ML Component: Data fetch completed, load data age 58.0 days, 16838 data points
2026-08-17 01:10:12.467727: ML Component: No training needed, model age is 1.15 hours
2026-08-17 01:10:12.467868: ML Component: Generating predictions load data age 58.0 days, 16838 data points
2026-08-17 01:10:12.618286: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0378 max_dow {0: 0.08345277777612209, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-17 01:10:15.978007: ML Component: Generated 576 predictions (total 26.20 kWh over 48h)
2026-08-17 01:10:16.011025: ML Component: Prediction cycle completed
2026-08-17 01:10:16.131849: ML Component: Saved 16838 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 01:10:33.645216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:10:33.645828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:10:33.645892: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:10:33.646047: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:10:33.646093: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:10:33.646115: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:10:33.646137: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:12:33.866621: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:12:33.867022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:12:33.867106: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:12:33.867330: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:12:33.867403: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:12:33.867425: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:12:33.867447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:14:34.088269: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:14:34.088549: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:14:34.088592: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:14:34.088793: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:14:34.088864: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:14:34.088886: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:14:34.088903: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:14:47.465583: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 01:14:47.617362: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 01:15:00.204044: --------------- PredBat - update at 2026-08-17 01:15:00+01:00 with clock skew 0 minutes, minutes now 75
2026-08-17 01:15:00.205266: Saved current settings to /config/predbat_config.json
2026-08-17 01:15:00.205481: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 01:15:00.205618: 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 01:15:00.205719: 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 01:15:00.234092: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:15:00.234248: days_previous_auto enabled - will 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 01:15:00.234401: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:15:00.234850: 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 01:15:00.234951: Predbat mode is set to Control charge & discharge
2026-08-17 01:15:00.438249: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:15:00.438411: Using load_power data to fill gaps in load_today data
2026-08-17 01:15:01.266650: Processing 721 30-minute periods for power integration
2026-08-17 01:15:01.470198: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:15:01.470481: Car charging hold False, threshold 6.0kWh
2026-08-17 01:15:01.471021: Current data so far today: load 0.6kWh, import 0.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:15:01.488753: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:15:01.489450: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:15:01.490322: Standing charge is set to 46.63p
2026-08-17 01:15:01.606907: 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 01:15:01.607178: 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 01:15:01.607359: 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 01:15:01.607544: 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 01:15:01.607717: 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 01:15:01.607913: 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 01:15:01.608085: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608254: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608343: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608456: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608528: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608603: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608680: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608779: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.608989: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:15:01.609054: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:15:01.614066: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:15:01.614351: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:15:01.657031: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:15:01.657181: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:15:01.658366: High export rate found rates in range 99p to -99p
2026-08-17 01:15:01.681919: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:15:01.682075: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:15:01.682137: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:15:01.698637: Battery level now 10.56kWh, -1hr ago 10.72kWh, at midnight 10.49kWh, battery value change in the last hour -1.1p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:15:01.699013: Last hour: net energy 0.35kWh, import 0.35kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.8p, import 2.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:15:01.762275: Today's energy total net 0.4kWh, import 0.4kWh, export 0.0kWh, cost 49.83p, import 3.2p, export 0.0p, carbon 0.0kg
2026-08-17 01:15:01.762411: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:15:01.840834: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:15:01.862807: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:15:01.862922: Today's predicted so far 1.17kWh with 0.0kWh car/iBoost excluded, 0.05kWh import ignored, and 1.17kWh forecast extra.
2026-08-17 01:15:01.862956: Today's actual load so far 0.57kWh with 0.0kWh car/iBoost excluded, and 0.05kWh import ignored.
2026-08-17 01:15:01.902860: Inverter 0: Type SK Sunsynk
2026-08-17 01:15:01.902960: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:15:01.903152: Reserve min: 7%, battery_min: 7%
2026-08-17 01:15:01.903228: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:15:01.903503: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -512W, load power 512W, PV Power 0W
2026-08-17 01:15:01.903665: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:15:01.903770: Inverter 0 scheduled charge enable is True
2026-08-17 01:15:01.903824: 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 01:15:01.903940: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:15:01.904071: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:15:01.904108: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:15:01.904146: Inverter 0 scheduled discharge enable is False
2026-08-17 01:15:01.904274: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:15:01.904311: Inverter 0 discharge windows currently []
2026-08-17 01:15:01.904334: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:15:01.904354: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:15:01.904376: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:15:01.975585: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:15:01.975701: Plan was last updated on 2026-08-17 01:05:00+01:00 and is now 10.0 minutes old
2026-08-17 01:15:01.976008: Best charge window [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ]
2026-08-17 01:15:01.976058: Best export window [  ]
2026-08-17 01:15:01.976915: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:15:01.980060: Load divergence over 8.0 hours mean 421.76W, min 259.8W, max 859.8W, std dev 118.8W, divergence 14.08%
2026-08-17 01:15:01.998742: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:15:01.998873: LoadML is_calculating False
2026-08-17 01:15:01.998950: Creating pool of 12 processes to match your CPU count
2026-08-17 01:15:02.135605: predict base end_record 08-18 01:40:00, final soc 9.31kWh, metric 191.04p, metric_keep 0.67kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 12.47kWh, PV 0.0kWh
2026-08-17 01:15:02.276298: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:15:02.317541: predict base10 end_record 08-18 01:40:00, final soc 7.59kWh, metric 181.26p, metric_keep 3.99kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 13.04kWh, PV 0.0kWh
2026-08-17 01:15:02.390919: predict best10 end_record 08-18 01:40:00, final soc 2.65kWh, metric 138.78p, metric_keep 0.6kWh, min_soc 1.57kWh @ 08-17 23:55:00, load 13.04kWh, PV 0.0kWh
2026-08-17 01:15:02.476196: predict best end_record 08-18 01:40:00, final soc 2.78kWh, metric 134.87p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-17 23:55:00, load 12.47kWh, PV 0.0kWh
2026-08-17 01:15:02.476289: Saving plan best values to HA entities
2026-08-17 01:15:02.662089: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:15:02.669048: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:15:02.675599: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.8kWh, house 0.0kWh, export 0.0kWh, metric 134.87p, metric10 138.78p
2026-08-17 01:15:02.755054: Marginal costs baseline metric (no standing charge): 88.2386
2026-08-17 01:15:03.054787: Marginal energy costs matrix computed: min=8.0 max=30.05
2026-08-17 01:15:03.121496: Rate array import [{'start': 75, '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': 1540, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 75, 'end': 1540, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:15:03.121900: - Your estimated bill for today is £0.69 and tomorrow is £2.23
2026-08-17 01:15:03.121940: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:15:03.121959: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 01:15:03.121975: - For the next 48 hours there will be no solar generation.
2026-08-17 01:15:03.121989: - You will reach a minimum of 12% battery in 22 hours.
2026-08-17 01:15:03.122003: 
2026-08-17 01:15:03.174505: Plan calculation took 1.20 seconds
2026-08-17 01:15:03.177847: No high rate period found
2026-08-17 01:15:03.229909: Import threshold used for optimisation was 8.0p
2026-08-17 01:15:03.283309: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 25: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:15:03.289624: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:15:03.289770: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:15:03.289950: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:15:03.290037: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:15:03.290208: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:15:03.290518: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:15:03.290653: No export window planned
2026-08-17 01:15:03.290794: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:15:03.290834: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:15:03.290998: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:15:03.291088: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:15:03.291152: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:15:03.291224: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:15:03.291361: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291649: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291696: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291724: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291778: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291815: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291841: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291866: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.291993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.292017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.292042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.292065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.292090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:03.292110: Inverter 0 count register writes 0
2026-08-17 01:15:03.312289: 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 01:15:03.312524: Recompute is saving previous plan...
2026-08-17 01:15:03.313868: Best charge window [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66% ]
2026-08-17 01:15:03.313958: Best export window [  ]
2026-08-17 01:15:03.314888: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:15:03.318251: Load divergence over 8.0 hours mean 421.76W, min 259.8W, max 859.8W, std dev 118.8W, divergence 14.08%
2026-08-17 01:15:03.336476: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:15:03.336613: LoadML is_calculating False
2026-08-17 01:15:03.336716: Creating pool of 12 processes to match your CPU count
2026-08-17 01:15:03.427696: 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 01:15:03.428666: Optimise levels pass started at 2026-08-17 01:15:03
2026-08-17 01:15:03.428723: Optimise all windows, total charge 25 export 1
2026-08-17 01:15:04.075421: >> Region optimisation pass width 960 gives best_metric 212.78p, best_cost 220.92p, best_cycle 36.89kWh, best_import 21.39kWh
2026-08-17 01:15:04.245589: >> Region optimisation pass width 480 gives best_metric 212.78p, best_cost 220.92p, best_cycle 36.89kWh, best_import 21.39kWh
2026-08-17 01:15:04.529633: >> Region optimisation pass width 240 gives best_metric 212.78p, best_cost 220.92p, best_cycle 36.89kWh, best_import 21.39kWh
2026-08-17 01:15:05.176405: >> Region optimisation pass width 120 gives best_metric 212.78p, best_cost 220.92p, best_cycle 36.89kWh, best_import 21.39kWh
2026-08-17 01:15:05.176682: Calculated end_record as 08-18 01:30:00 based on best_price 8.0p, next_charge_start 08-17 01:30:00, max_windows 14
2026-08-17 01:15:05.176815: Optimise levels pass ended at 2026-08-17 01:15:05, duration 1.7 seconds tried 59 combinations
2026-08-17 01:15:05.176881: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 212.78p, best_keep 0.55kWh, best_cycle 36.89kWh, best_carbon 0kg, best_import 21.39kWh
2026-08-17 01:15:05.198923: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 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 01:15:09.691129: Tweak plan optimisation started metric 68.25p, cost 81.4p
2026-08-17 01:15:10.023365: Tweak optimisation finished metric 68.02p, cost 81.17p, metric_keep 0kWh, cycle 10.17kWh, carbon 0kg, import 3.92kWh, changed 8 window(s)
2026-08-17 01:15:10.048021: Swap charge optimisation started metric 68.02p, cost 81.17p, min_improvement_swap 0.1p
2026-08-17 01:15:10.547503: Swap charge optimisation finished metric 68.02p, cost 81.17p
2026-08-17 01:15:10.686978: Pruned 2 dead plan slot(s) in 13 trial(s), nominal metric 67.31p -> 67.31p, plan now metric 68.05p, cost 81.17p, cycle 10.17kWh, import 3.92kWh
2026-08-17 01:15:10.696746: Raw charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 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 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:15:10.697153: Unclipped charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:15:10.697407: Unfiltered charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:15:10.697605: Filtered charge windows [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:15:10.733410: Previous plan best metric is 67.48 (cost 80.48) and new plan best metric is 68.02 (cost 81.17)
2026-08-17 01:15:10.733765: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 01:15:10.733933: Plan valid is now true after recompute was False
2026-08-17 01:15:10.761928: predict base end_record 08-18 01:30:00, final soc 8.54kWh, metric 183.28p, metric_keep 0.67kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 12.34kWh, PV 0.0kWh
2026-08-17 01:15:10.902100: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:15:10.948462: predict base10 end_record 08-18 01:30:00, final soc 6.95kWh, metric 174.56p, metric_keep 3.99kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 12.9kWh, PV 0.0kWh
2026-08-17 01:15:11.031852: predict best10 end_record 08-18 01:30:00, final soc 2.0kWh, metric 132.07p, metric_keep 0.6kWh, min_soc 1.57kWh @ 08-17 23:55:00, load 12.9kWh, PV 0.0kWh
2026-08-17 01:15:11.112314: predict best end_record 08-18 01:30:00, final soc 2.0kWh, metric 127.11p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-17 23:55:00, load 12.34kWh, PV 0.0kWh
2026-08-17 01:15:11.112410: Saving plan best values to HA entities
2026-08-17 01:15:11.270010: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:15:11.275226: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:15:11.280691: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.83kWh, house 0.0kWh, export 0.0kWh, metric 127.11p, metric10 132.07p
2026-08-17 01:15:11.351907: Marginal costs baseline metric (no standing charge): 80.48
2026-08-17 01:15:11.583990: Marginal energy costs matrix computed: min=8.0 max=30.05
2026-08-17 01:15:11.641455: Rate array import [{'start': 75, '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': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 75, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:15:11.641877: - Your estimated bill for today is £0.69 and tomorrow is £2.23
2026-08-17 01:15:11.641932: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:15:11.641990: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 01:15:11.642025: - For the next 48 hours there will be no solar generation.
2026-08-17 01:15:11.642055: - You will reach a minimum of 12% battery in 22 hours.
2026-08-17 01:15:11.642089: 
2026-08-17 01:15:11.686133: Plan calculation took 8.37 seconds
2026-08-17 01:15:11.686449: Inverter 0: Type SK Sunsynk
2026-08-17 01:15:11.686495: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:15:11.686710: Reserve min: 7%, battery_min: 7%
2026-08-17 01:15:11.686791: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:15:11.687104: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -512W, load power 512W, PV Power 0W
2026-08-17 01:15:11.687317: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:15:11.687412: Inverter 0 scheduled charge enable is True
2026-08-17 01:15:11.687491: 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 01:15:11.687652: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:15:11.687815: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:15:11.687855: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:15:11.687891: Inverter 0 scheduled discharge enable is False
2026-08-17 01:15:11.688002: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:15:11.688035: Inverter 0 discharge windows currently []
2026-08-17 01:15:11.688055: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:15:11.688071: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:15:11.688089: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:15:11.734314: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:15:11.734422: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:15:11.734543: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:15:11.734622: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:15:11.734747: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:15:11.734912: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:15:11.735007: No export window planned
2026-08-17 01:15:11.735110: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:15:11.735140: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:15:11.735256: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:15:11.735330: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:15:11.735390: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:15:11.735447: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:15:11.735538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735789: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735842: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735872: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735901: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735927: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735953: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.735973: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:15:11.736226: Inverter 0 count register writes 0
2026-08-17 01:15:11.755319: Total inverter register writes now 848
2026-08-17 01:15:11.784616: Info: Completed run status Hold charging
2026-08-17 01:15:11.791168: Info: record_status Hold charging target 66%-66%
2026-08-17 01:15:11.797377: Saved current settings to /config/predbat_config.json
2026-08-17 01:15:11.797649: Compare, best tariff: current metric 104.68p
2026-08-17 01:15:45.975113: Info: HAHistory: Pruning history data started.
2026-08-17 01:15:45.978072: Info: HAHistory: Pruning history data completed.
2026-08-17 01:15:48.908244: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:15:48.908519: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:15:48.908563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:15:48.908727: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:15:48.908783: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:15:48.908852: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:15:48.908872: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:17:49.136282: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:17:49.136582: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:17:49.136618: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:17:49.136735: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:17:49.136770: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:17:49.136803: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:17:49.136821: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:20:00.383450: --------------- PredBat - update at 2026-08-17 01:20:00+01:00 with clock skew 0 minutes, minutes now 80
2026-08-17 01:20:00.384271: Saved current settings to /config/predbat_config.json
2026-08-17 01:20:00.384401: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 01:20:00.384480: 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 01:20:00.384615: 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 01:20:00.404436: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:20:00.404568: days_previous_auto enabled - will 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 01:20:00.404766: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:20:00.405340: 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 01:20:00.405467: Predbat mode is set to Control charge & discharge
2026-08-17 01:20:00.620266: Found 21602 load_today datapoints going back 27 days
2026-08-17 01:20:00.620447: Using load_power data to fill gaps in load_today data
2026-08-17 01:20:01.536722: Processing 721 30-minute periods for power integration
2026-08-17 01:20:01.730091: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:20:01.730234: Car charging hold False, threshold 6.0kWh
2026-08-17 01:20:01.730281: Current data so far today: load 0.65kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:20:01.746558: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:20:01.746666: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:20:01.747477: Standing charge is set to 46.63p
2026-08-17 01:20:01.843803: 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 01:20:01.844108: 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 01:20:01.844327: 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 01:20:01.844536: 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 01:20:01.844734: 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 01:20:01.844992: 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 01:20:01.845218: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845452: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845613: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845716: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845779: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845865: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845931: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.845991: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.846146: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:20:01.846197: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:20:01.850621: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:20:01.850949: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:20:01.885606: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:20:01.885716: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:20:01.886820: High export rate found rates in range 99p to -99p
2026-08-17 01:20:01.905219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:20:01.905367: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:20:01.905422: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:20:01.918508: Battery level now 10.56kWh, -1hr ago 10.59kWh, at midnight 10.49kWh, battery value change in the last hour -0.22p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:20:01.918798: Last hour: net energy 0.43kWh, import 0.43kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.4p, import 3.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:20:01.976662: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 50.63p, import 4.0p, export 0.0p, carbon 0.0kg
2026-08-17 01:20:01.976781: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:20:02.046617: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:20:02.077943: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:20:02.078336: Today's predicted so far 1.23kWh with 0.0kWh car/iBoost excluded, 0.07kWh import ignored, and 1.23kWh forecast extra.
2026-08-17 01:20:02.078416: Today's actual load so far 0.61kWh with 0.0kWh car/iBoost excluded, and 0.07kWh import ignored.
2026-08-17 01:20:02.118669: Inverter 0: Type SK Sunsynk
2026-08-17 01:20:02.118765: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:20:02.118986: Reserve min: 7%, battery_min: 7%
2026-08-17 01:20:02.119061: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:20:02.119327: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -564W, load power 557W, PV Power 0W
2026-08-17 01:20:02.119491: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:20:02.119573: Inverter 0 scheduled charge enable is True
2026-08-17 01:20:02.119627: 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 01:20:02.119720: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:20:02.119856: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:20:02.119894: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:20:02.119932: Inverter 0 scheduled discharge enable is False
2026-08-17 01:20:02.120059: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:20:02.120096: Inverter 0 discharge windows currently []
2026-08-17 01:20:02.120118: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:20:02.120142: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:20:02.120160: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:20:02.190153: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:20:02.190268: Plan was last updated on 2026-08-17 01:15:00+01:00 and is now 5.0 minutes old
2026-08-17 01:20:02.190618: Best charge window [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ]
2026-08-17 01:20:02.190672: Best export window [  ]
2026-08-17 01:20:02.191585: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:20:02.194914: Load divergence over 8.0 hours mean 420.42W, min 260.4W, max 851.4W, std dev 116.87W, divergence 13.9%
2026-08-17 01:20:02.215081: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:20:02.215226: LoadML is_calculating False
2026-08-17 01:20:02.215300: Creating pool of 12 processes to match your CPU count
2026-08-17 01:20:02.353868: predict base end_record 08-18 01:35:00, final soc 8.91kWh, metric 187.35p, metric_keep 0.67kWh, min_soc 1.54kWh @ 08-17 23:55:00, load 12.39kWh, PV 0.0kWh
2026-08-17 01:20:02.517354: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:20:02.570126: predict base10 end_record 08-18 01:35:00, final soc 7.26kWh, metric 178.15p, metric_keep 3.96kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 12.95kWh, PV 0.0kWh
2026-08-17 01:20:02.656210: predict best10 end_record 08-18 01:35:00, final soc 2.32kWh, metric 135.73p, metric_keep 0.61kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 12.95kWh, PV 0.0kWh
2026-08-17 01:20:02.750608: predict best end_record 08-18 01:35:00, final soc 2.39kWh, metric 131.32p, metric_keep 0.01kWh, min_soc 1.98kWh @ 08-17 23:55:00, load 12.39kWh, PV 0.0kWh
2026-08-17 01:20:02.750702: Saving plan best values to HA entities
2026-08-17 01:20:02.926540: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:20:02.932433: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:20:02.938430: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.26kWh, house 0.0kWh, export 0.0kWh, metric 131.32p, metric10 135.73p
2026-08-17 01:20:03.016386: Marginal costs baseline metric (no standing charge): 84.6839
2026-08-17 01:20:03.314917: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 01:20:03.390179: Rate array import [{'start': 80, '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': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 80, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:20:03.390633: - Your estimated bill for today is £0.69 and tomorrow is £2.24
2026-08-17 01:20:03.390687: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:20:03.390710: - The battery is currently at 66% and is charging to 66% for the next 3 and three quarters hours.
2026-08-17 01:20:03.390728: - For the next 48 hours there will be no solar generation.
2026-08-17 01:20:03.390746: - You will reach a minimum of 12% battery in 22 hours.
2026-08-17 01:20:03.390763: 
2026-08-17 01:20:03.446289: Plan calculation took 1.26 seconds
2026-08-17 01:20:03.448909: No high rate period found
2026-08-17 01:20:03.497193: Import threshold used for optimisation was 8.0p
2026-08-17 01:20:03.548231: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 25: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:20:03.553873: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:20:03.553989: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:20:03.554169: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:20:03.554258: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:20:03.554414: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:20:03.554663: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:20:03.554788: No export window planned
2026-08-17 01:20:03.554931: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:20:03.554970: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:20:03.555108: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:20:03.555194: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:20:03.555250: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:20:03.555339: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:20:03.555456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555670: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555708: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555735: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555760: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555789: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555815: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555858: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.555976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.556000: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.556026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.556049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.556083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:20:03.556105: Inverter 0 count register writes 0
2026-08-17 01:20:03.571378: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:20:03.576601: Total inverter register writes now 848
2026-08-17 01:20:03.609146: Info: Completed run status Hold charging
2026-08-17 01:20:03.616374: Info: record_status Hold charging target 66%-66%
2026-08-17 01:20:03.623693: Saved current settings to /config/predbat_config.json
2026-08-17 01:20:03.624056: Compare, best tariff: current metric 104.68p
2026-08-17 01:20:33.727939: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:20:33.728324: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:20:33.728408: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:20:33.728642: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:20:33.728702: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:20:33.728726: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:20:33.728746: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:22:33.970671: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:22:33.970953: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:22:33.971023: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:22:33.971168: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:22:33.971230: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:22:33.971251: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:22:33.971268: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:24:34.200834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:24:34.201214: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:24:34.201292: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:24:34.201437: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:24:34.201471: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:24:34.201491: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:24:34.201513: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:25:00.327083: --------------- PredBat - update at 2026-08-17 01:25:00+01:00 with clock skew 0 minutes, minutes now 85
2026-08-17 01:25:00.328050: Saved current settings to /config/predbat_config.json
2026-08-17 01:25:00.328246: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 01:25:00.328426: 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 01:25:00.328524: 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 01:25:00.349225: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:25:00.349394: days_previous_auto enabled - will 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 01:25:00.349659: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:25:00.350295: 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 01:25:00.350489: Predbat mode is set to Control charge & discharge
2026-08-17 01:25:00.527396: Found 21602 load_today datapoints going back 27 days
2026-08-17 01:25:00.527541: Using load_power data to fill gaps in load_today data
2026-08-17 01:25:01.240411: Processing 721 30-minute periods for power integration
2026-08-17 01:25:01.399327: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:25:01.399464: Car charging hold False, threshold 6.0kWh
2026-08-17 01:25:01.399506: Current data so far today: load 0.7kWh, import 0.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:25:01.413384: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:25:01.413498: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:25:01.414149: Standing charge is set to 46.63p
2026-08-17 01:25:01.498822: 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 01:25:01.499150: 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 01:25:01.499397: 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 01:25:01.499640: 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 01:25:01.499883: 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 01:25:01.500137: 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 01:25:01.500371: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.500597: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.500727: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.500864: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501032: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501167: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501295: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501414: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501638: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:25:01.501713: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:25:01.506121: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:25:01.506528: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:25:01.544469: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:25:01.544597: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:25:01.545788: High export rate found rates in range 99p to -99p
2026-08-17 01:25:01.570217: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:25:01.570379: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:25:01.570443: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:25:01.587476: Battery level now 10.56kWh, -1hr ago 10.59kWh, at midnight 10.49kWh, battery value change in the last hour -0.22p, change today 0.49p, rate_forward 6.87p
2026-08-17 01:25:01.587844: 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 01:25:01.644522: Today's energy total net 0.5kWh, import 0.5kWh, export 0.0kWh, cost 50.63p, import 4.0p, export 0.0p, carbon 0.0kg
2026-08-17 01:25:01.644650: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:25:01.708397: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:25:01.728176: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:25:01.728265: Today's predicted so far 1.27kWh with 0.0kWh car/iBoost excluded, 0.1kWh import ignored, and 1.27kWh forecast extra.
2026-08-17 01:25:01.728291: Today's actual load so far 0.65kWh with 0.0kWh car/iBoost excluded, and 0.1kWh import ignored.
2026-08-17 01:25:01.768666: Inverter 0: Type SK Sunsynk
2026-08-17 01:25:01.768782: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:25:01.769070: Reserve min: 7%, battery_min: 7%
2026-08-17 01:25:01.769193: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:25:01.769532: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -525W, load power 525W, PV Power 0W
2026-08-17 01:25:01.769712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:25:01.769818: Inverter 0 scheduled charge enable is True
2026-08-17 01:25:01.769890: 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 01:25:01.770009: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:25:01.770140: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:25:01.770176: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:25:01.770213: Inverter 0 scheduled discharge enable is False
2026-08-17 01:25:01.770372: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:25:01.770417: Inverter 0 discharge windows currently []
2026-08-17 01:25:01.770441: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:25:01.770459: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:25:01.770476: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:25:01.853006: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:25:01.853129: Plan was last updated on 2026-08-17 01:15:00+01:00 and is now 10.0 minutes old
2026-08-17 01:25:01.853383: Best charge window [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ]
2026-08-17 01:25:01.853427: Best export window [  ]
2026-08-17 01:25:01.854192: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:25:01.857350: Load divergence over 8.0 hours mean 418.69W, min 260.4W, max 867.6W, std dev 118.19W, divergence 14.11%
2026-08-17 01:25:01.876311: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:25:01.876452: LoadML is_calculating False
2026-08-17 01:25:01.876519: Creating pool of 12 processes to match your CPU count
2026-08-17 01:25:02.018280: predict base end_record 08-18 01:40:00, final soc 9.28kWh, metric 190.67p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 12.46kWh, PV 0.0kWh
2026-08-17 01:25:02.155647: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:25:02.201988: predict base10 end_record 08-18 01:40:00, final soc 7.59kWh, metric 181.04p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.02kWh, PV 0.0kWh
2026-08-17 01:25:02.283918: predict best10 end_record 08-18 01:40:00, final soc 2.65kWh, metric 138.64p, metric_keep 0.62kWh, min_soc 1.53kWh @ 08-17 23:55:00, load 13.02kWh, PV 0.0kWh
2026-08-17 01:25:02.370957: predict best end_record 08-18 01:40:00, final soc 2.78kWh, metric 134.78p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-17 23:55:00, load 12.46kWh, PV 0.0kWh
2026-08-17 01:25:02.371080: Saving plan best values to HA entities
2026-08-17 01:25:02.550195: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:25:02.556212: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:25:02.562103: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.69kWh, house 0.0kWh, export 0.0kWh, metric 134.78p, metric10 138.64p
2026-08-17 01:25:02.639017: Marginal costs baseline metric (no standing charge): 88.1437
2026-08-17 01:25:02.928250: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 01:25:03.007550: Rate array import [{'start': 85, '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': 1540, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 85, 'end': 1540, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:25:03.008529: - Your estimated bill for today is £0.69 and tomorrow is £2.24
2026-08-17 01:25:03.008583: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:25:03.008608: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 01:25:03.008626: - For the next 48 hours there will be no solar generation.
2026-08-17 01:25:03.008645: - You will reach a minimum of 12% battery in 22 hours.
2026-08-17 01:25:03.008662: 
2026-08-17 01:25:03.061677: Plan calculation took 1.21 seconds
2026-08-17 01:25:03.065163: No high rate period found
2026-08-17 01:25:03.118816: Import threshold used for optimisation was 8.0p
2026-08-17 01:25:03.173671: Low import rate windows [0: 08-17 01:00:00 - 08-17 01:30:00 @ 8.0, 1: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 2: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 3: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 4: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 5: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 6: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 7: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 8: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 9: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 23: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 24: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 25: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:25:03.180308: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:25:03.180434: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:25:03.180694: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:25:03.180792: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:25:03.181027: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:25:03.181311: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:25:03.181446: No export window planned
2026-08-17 01:25:03.181577: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:25:03.181614: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:25:03.181756: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:25:03.181845: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:25:03.181904: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:25:03.181988: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:25:03.182102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182318: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182351: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182382: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182407: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182443: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182470: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182495: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:03.182754: Inverter 0 count register writes 0
2026-08-17 01:25:03.201369: 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 01:25:03.201658: Recompute is saving previous plan...
2026-08-17 01:25:03.202743: Best charge window [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66% ]
2026-08-17 01:25:03.202798: Best export window [  ]
2026-08-17 01:25:03.203636: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:25:03.206790: Load divergence over 8.0 hours mean 418.69W, min 260.4W, max 867.6W, std dev 118.19W, divergence 14.11%
2026-08-17 01:25:03.224837: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:25:03.225032: LoadML is_calculating False
2026-08-17 01:25:03.225152: Creating pool of 12 processes to match your CPU count
2026-08-17 01:25:03.323441: 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 01:25:03.324358: Optimise levels pass started at 2026-08-17 01:25:03
2026-08-17 01:25:03.324414: Optimise all windows, total charge 25 export 1
2026-08-17 01:25:03.950418: >> Region optimisation pass width 960 gives best_metric 214.17p, best_cost 220.8p, best_cycle 37.04kWh, best_import 21.27kWh
2026-08-17 01:25:04.118227: >> Region optimisation pass width 480 gives best_metric 214.17p, best_cost 220.8p, best_cycle 37.04kWh, best_import 21.27kWh
2026-08-17 01:25:04.374684: >> Region optimisation pass width 240 gives best_metric 214.17p, best_cost 220.8p, best_cycle 37.04kWh, best_import 21.27kWh
2026-08-17 01:25:04.899504: >> Region optimisation pass width 120 gives best_metric 214.17p, best_cost 220.8p, best_cycle 37.04kWh, best_import 21.27kWh
2026-08-17 01:25:04.899843: Calculated end_record as 08-18 01:30:00 based on best_price 8.0p, next_charge_start 08-17 01:30:00, max_windows 14
2026-08-17 01:25:04.899983: Optimise levels pass ended at 2026-08-17 01:25:04, duration 1.6 seconds tried 59 combinations
2026-08-17 01:25:04.900102: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 214.17p, best_keep 0.96kWh, best_cycle 37.04kWh, best_carbon 0kg, best_import 21.27kWh
2026-08-17 01:25:04.927696: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 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 01:25:08.131388: Tweak plan optimisation started metric 68.46p, cost 82.0p
2026-08-17 01:25:08.416406: Tweak optimisation finished metric 68.46p, cost 82.0p, metric_keep 0kWh, cycle 11.11kWh, carbon 0kg, import 3.92kWh, changed 8 window(s)
2026-08-17 01:25:08.438772: Swap charge optimisation started metric 68.46p, cost 82.0p, min_improvement_swap 0.1p
2026-08-17 01:25:09.085242: Swap charge optimisation finished metric 68.46p, cost 82.0p
2026-08-17 01:25:09.169752: Pruned 1 dead plan slot(s) in 8 trial(s), nominal metric 67.74p -> 67.74p, plan now metric 68.47p, cost 82.0p, cycle 11.11kWh, import 3.92kWh
2026-08-17 01:25:09.178306: Raw charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 69%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 0%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 0%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:25:09.178676: Unclipped charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 69%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:25:09.178959: Unfiltered charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 69%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:25:09.179166: Filtered charge windows [ 17-08 01:00:00 - 17-08 01:30:00 @ 8.0p 66%, 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 69%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:25:09.210860: Previous plan best metric is 67.35 (cost 80.35) and new plan best metric is 68.46 (cost 82.0)
2026-08-17 01:25:09.211089: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 01:25:09.211235: Plan valid is now true after recompute was False
2026-08-17 01:25:09.237569: predict base end_record 08-18 01:30:00, final soc 8.51kWh, metric 182.87p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 12.32kWh, PV 0.0kWh
2026-08-17 01:25:09.360578: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:25:09.400056: predict base10 end_record 08-18 01:30:00, final soc 6.94kWh, metric 174.3p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 12.87kWh, PV 0.0kWh
2026-08-17 01:25:09.473383: predict best10 end_record 08-18 01:30:00, final soc 2.0kWh, metric 131.9p, metric_keep 0.62kWh, min_soc 1.53kWh @ 08-17 23:55:00, load 12.87kWh, PV 0.0kWh
2026-08-17 01:25:09.557663: predict best end_record 08-18 01:30:00, final soc 2.0kWh, metric 126.98p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-17 23:55:00, load 12.32kWh, PV 0.0kWh
2026-08-17 01:25:09.557767: Saving plan best values to HA entities
2026-08-17 01:25:09.717284: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:25:09.723335: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:25:09.729237: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.71kWh, house 0.0kWh, export 0.0kWh, metric 126.98p, metric10 131.9p
2026-08-17 01:25:09.810305: Marginal costs baseline metric (no standing charge): 80.3474
2026-08-17 01:25:10.103538: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 01:25:10.173833: Rate array import [{'start': 85, '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': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 85, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:25:10.174300: - Your estimated bill for today is £0.69 and tomorrow is £2.24
2026-08-17 01:25:10.174352: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:25:10.174376: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 01:25:10.174394: - For the next 48 hours there will be no solar generation.
2026-08-17 01:25:10.174412: - You will reach a minimum of 12% battery in 22 hours.
2026-08-17 01:25:10.174429: 
2026-08-17 01:25:10.230765: Plan calculation took 7.03 seconds
2026-08-17 01:25:10.231154: Inverter 0: Type SK Sunsynk
2026-08-17 01:25:10.231208: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:25:10.231472: Reserve min: 7%, battery_min: 7%
2026-08-17 01:25:10.231554: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:25:10.231936: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -525W, load power 525W, PV Power 0W
2026-08-17 01:25:10.232188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:25:10.232300: Inverter 0 scheduled charge enable is True
2026-08-17 01:25:10.232355: 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 01:25:10.232472: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:25:10.232608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:25:10.232649: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:25:10.232689: Inverter 0 scheduled discharge enable is False
2026-08-17 01:25:10.232836: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:25:10.232875: Inverter 0 discharge windows currently []
2026-08-17 01:25:10.232939: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:25:10.232993: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:25:10.233012: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:25:10.291029: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:25:10.291157: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:25:10.291296: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:25:10.291386: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:25:10.291514: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:25:10.291701: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:25:10.291812: No export window planned
2026-08-17 01:25:10.291947: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:25:10.291985: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:25:10.292127: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:25:10.292215: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:25:10.292276: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:25:10.292328: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:25:10.292444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292669: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292711: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292742: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292768: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292801: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292826: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292879: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.292984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:25:10.293215: Inverter 0 count register writes 0
2026-08-17 01:25:10.316221: Total inverter register writes now 848
2026-08-17 01:25:10.381702: Info: Completed run status Hold charging
2026-08-17 01:25:10.389797: Info: record_status Hold charging target 66%-66%
2026-08-17 01:25:10.401682: Saved current settings to /config/predbat_config.json
2026-08-17 01:25:10.402160: Compare, best tariff: current metric 104.68p
2026-08-17 01:25:48.557117: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:25:48.557397: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:25:48.557464: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:25:48.557648: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:25:48.557711: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:25:48.557768: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:25:48.557794: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:27:48.784658: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:27:48.785086: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:27:48.785182: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:27:48.785389: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:27:48.785467: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:27:48.785496: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:27:48.785524: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:29:49.023915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:29:49.024190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:29:49.024222: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:29:49.024372: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:29:49.024454: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:29:49.024472: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:29:49.024487: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:30:00.112081: --------------- PredBat - update at 2026-08-17 01:30:00+01:00 with clock skew 0 minutes, minutes now 90
2026-08-17 01:30:00.112755: Saved current settings to /config/predbat_config.json
2026-08-17 01:30:00.112983: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 01:30:00.113133: 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 01:30:00.113251: 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 01:30:00.131715: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:30:00.131844: days_previous_auto enabled - will 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 01:30:00.132028: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:30:00.132537: 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 01:30:00.132657: Predbat mode is set to Control charge & discharge
2026-08-17 01:30:00.361685: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:30:00.361900: Using load_power data to fill gaps in load_today data
2026-08-17 01:30:01.268378: Processing 721 30-minute periods for power integration
2026-08-17 01:30:01.460853: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:30:01.461024: Car charging hold False, threshold 6.0kWh
2026-08-17 01:30:01.461075: Current data so far today: load 0.75kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:30:01.475880: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:30:01.475985: Cars: SoC: [35.16]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:30:01.476708: Standing charge is set to 46.63p
2026-08-17 01:30:01.585492: 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 01:30:01.585862: 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 01:30:01.586139: 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 01:30:01.586390: 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 01:30:01.586635: 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 01:30:01.586872: 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 01:30:01.587246: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.587548: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.587712: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.587875: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588092: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588213: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588296: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588390: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588584: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.77, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:30:01.588646: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:30:01.593831: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:30:01.594145: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:30:01.638847: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:30:01.639004: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:30:01.640265: High export rate found rates in range 99p to -99p
2026-08-17 01:30:01.663938: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:30:01.664145: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:30:01.664212: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.7665, 'average': 8.0, 'cost': 14.13, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:30:01.681859: 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 01:30:01.682279: 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-17 01:30:01.741576: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 51.43p, import 4.8p, export 0.0p, carbon 0.0kg
2026-08-17 01:30:01.741729: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:30:01.854276: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:30:01.896090: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:30:01.896525: Today's predicted so far 1.41kWh with 0.0kWh car/iBoost excluded, 0.08kWh import ignored, and 1.41kWh forecast extra.
2026-08-17 01:30:01.896604: Today's actual load so far 0.73kWh with 0.0kWh car/iBoost excluded, and 0.08kWh import ignored.
2026-08-17 01:30:01.945149: Inverter 0: Type SK Sunsynk
2026-08-17 01:30:01.945260: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:30:01.945536: Reserve min: 7%, battery_min: 7%
2026-08-17 01:30:01.945656: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:30:01.946011: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -527W, load power 526W, PV Power 0W
2026-08-17 01:30:01.946257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:30:01.946395: Inverter 0 scheduled charge enable is True
2026-08-17 01:30:01.946469: 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 01:30:01.946624: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:30:01.946833: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:30:01.946889: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:30:01.946973: Inverter 0 scheduled discharge enable is False
2026-08-17 01:30:01.947171: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:30:01.947226: Inverter 0 discharge windows currently []
2026-08-17 01:30:01.947299: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:30:01.947346: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:30:01.947370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:30:02.025997: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:30:02.026112: Plan was last updated on 2026-08-17 01:25:00+01:00 and is now 5.0 minutes old
2026-08-17 01:30:02.026362: Best charge window [ 17-08 01:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 01:30:00 @ 8.0p 100% ]
2026-08-17 01:30:02.026404: Best export window [  ]
2026-08-17 01:30:02.027154: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:30:02.030454: Load divergence over 8.0 hours mean 418.11W, min 262.2W, max 899.4W, std dev 113.41W, divergence 13.56%
2026-08-17 01:30:02.049462: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:30:02.049598: LoadML is_calculating False
2026-08-17 01:30:02.049671: Creating pool of 12 processes to match your CPU count
2026-08-17 01:30:02.197305: predict base end_record 08-18 01:35:00, final soc 8.95kWh, metric 187.79p, metric_keep 0.61kWh, min_soc 1.58kWh @ 08-17 23:55:00, load 12.41kWh, PV 0.0kWh
2026-08-17 01:30:02.352232: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:30:02.402096: predict base10 end_record 08-18 01:35:00, final soc 7.29kWh, metric 178.49p, metric_keep 3.86kWh, min_soc 1.15kWh @ 08-17 23:55:00, load 12.97kWh, PV 0.0kWh
2026-08-17 01:30:02.496990: predict best10 end_record 08-18 01:35:00, final soc 2.32kWh, metric 135.79p, metric_keep 0.54kWh, min_soc 1.59kWh @ 08-17 23:55:00, load 12.97kWh, PV 0.0kWh
2026-08-17 01:30:02.584997: predict best end_record 08-18 01:35:00, final soc 2.41kWh, metric 131.57p, metric_keep 0kWh, min_soc 2.02kWh @ 08-17 23:55:00, load 12.41kWh, PV 0.0kWh
2026-08-17 01:30:02.585103: Saving plan best values to HA entities
2026-08-17 01:30:02.773587: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:30:02.779813: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:30:02.785898: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.19kWh, house 0.0kWh, export 0.0kWh, metric 131.57p, metric10 135.79p
2026-08-17 01:30:02.860665: Marginal costs baseline metric (no standing charge): 84.9322
2026-08-17 01:30:03.180539: Marginal energy costs matrix computed: min=8.0 max=30.02
2026-08-17 01:30:03.255695: Rate array import [{'start': 90, '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': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 90, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:30:03.256253: - Your estimated bill for today is £0.69 and tomorrow is £2.23
2026-08-17 01:30:03.256313: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:30:03.256336: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 01:30:03.256356: - For the next 48 hours there will be no solar generation.
2026-08-17 01:30:03.256373: - You will reach a minimum of 13% battery in 22 hours.
2026-08-17 01:30:03.256391: - Your car is currently charging.
2026-08-17 01:30:03.256411: 
2026-08-17 01:30:03.310075: Plan calculation took 1.28 seconds
2026-08-17 01:30:03.315547: No high rate period found
2026-08-17 01:30:03.388040: Import threshold used for optimisation was 8.0p
2026-08-17 01:30:03.451376: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0]
2026-08-17 01:30:03.457579: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:00:00
2026-08-17 01:30:03.457716: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:30:03.457899: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:30:03.458018: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:30:03.458181: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:30:03.458430: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:30:03.458567: No export window planned
2026-08-17 01:30:03.458727: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:30:03.458774: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:30:03.458920: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:30:03.459074: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:30:03.459147: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:30:03.459219: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:30:03.459338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459559: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459599: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459658: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459688: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459724: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459750: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459778: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.459993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.460026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.460051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:30:03.460076: Inverter 0 count register writes 0
2026-08-17 01:30:03.478478: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:30:03.484312: Total inverter register writes now 848
2026-08-17 01:30:03.523317: Info: Completed run status Hold charging
2026-08-17 01:30:03.530018: Info: record_status Hold charging target 66%-66%
2026-08-17 01:30:03.538070: Saved current settings to /config/predbat_config.json
2026-08-17 01:30:03.538435: Compare, best tariff: current metric 104.68p
2026-08-17 01:30:33.659364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:30:33.660185: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:30:33.660246: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:30:33.660416: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:30:33.660461: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:30:33.660499: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:30:33.660517: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:32:33.880364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:32:33.880806: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:32:33.880897: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:32:33.881223: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:32:33.881282: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:32:33.881323: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:32:33.881358: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:34:34.113514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:34:34.113840: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:34:34.113914: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:34:34.114193: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:34:34.114241: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:34:34.114296: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:34:34.114321: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:35:00.236899: --------------- PredBat - update at 2026-08-17 01:35:00+01:00 with clock skew 0 minutes, minutes now 95
2026-08-17 01:35:00.237810: Saved current settings to /config/predbat_config.json
2026-08-17 01:35:00.237988: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 01:35:00.238141: 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 01:35:00.238232: 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 01:35:00.258697: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:35:00.258841: days_previous_auto enabled - will 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 01:35:00.259007: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:35:00.259579: 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 01:35:00.259809: Predbat mode is set to Control charge & discharge
2026-08-17 01:35:00.439203: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:35:00.439366: Using load_power data to fill gaps in load_today data
2026-08-17 01:35:01.238891: Processing 721 30-minute periods for power integration
2026-08-17 01:35:01.410558: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:35:01.410716: Car charging hold False, threshold 6.0kWh
2026-08-17 01:35:01.410759: Current data so far today: load 0.8kWh, import 0.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:35:01.424765: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:35:01.424912: Cars: SoC: [35.746]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:35:01.425640: Standing charge is set to 46.63p
2026-08-17 01:35:01.507173: 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 01:35:01.507409: 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 01:35:01.507606: 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 01:35:01.507759: 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 01:35:01.507988: 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 01:35:01.508142: 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 01:35:01.508337: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508460: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508527: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508613: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508673: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508738: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508796: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.508991: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:35:01.509044: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:35:01.513207: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:35:01.513577: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:35:01.548250: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:35:01.548364: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:35:01.549422: High export rate found rates in range 99p to -99p
2026-08-17 01:35:01.568219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:35:01.568333: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:35:01.568398: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:35:01.582282: 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 01:35:01.582654: 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 01:35:01.626017: Today's energy total net 0.6kWh, import 0.6kWh, export 0.0kWh, cost 51.43p, import 4.8p, export 0.0p, carbon 0.0kg
2026-08-17 01:35:01.626129: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:35:01.684899: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:35:01.702907: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:35:01.703021: Today's predicted so far 1.52kWh with 0.0kWh car/iBoost excluded, 0.05kWh import ignored, and 1.52kWh forecast extra.
2026-08-17 01:35:01.703048: Today's actual load so far 0.79kWh with 0.0kWh car/iBoost excluded, and 0.05kWh import ignored.
2026-08-17 01:35:01.738660: 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.7, 'source': 'SMART'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.7665, '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-17T01:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, 'source': 'SMART'}]]
2026-08-17 01:35:01.739183: Sensor changes require a replan, will recompute the plan
2026-08-17 01:35:01.739334: Inverter 0: Type SK Sunsynk
2026-08-17 01:35:01.739385: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:35:01.739546: Reserve min: 7%, battery_min: 7%
2026-08-17 01:35:01.739611: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:35:01.739847: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -516W, load power 516W, PV Power 0W
2026-08-17 01:35:01.739983: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:35:01.740057: Inverter 0 scheduled charge enable is True
2026-08-17 01:35:01.740098: 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 01:35:01.740171: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:35:01.740271: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:35:01.740301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:35:01.740331: Inverter 0 scheduled discharge enable is False
2026-08-17 01:35:01.740447: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:35:01.740480: Inverter 0 discharge windows currently []
2026-08-17 01:35:01.740499: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:35:01.740514: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:35:01.740528: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:35:01.799039: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:35:01.799115: Will recompute the plan as it is invalid
2026-08-17 01:35:01.799243: Recompute is saving previous plan...
2026-08-17 01:35:01.800054: Best charge window [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66% ]
2026-08-17 01:35:01.800116: Best export window [  ]
2026-08-17 01:35:01.800773: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:35:01.803266: Load divergence over 8.0 hours mean 416.61W, min 271.2W, max 903.6W, std dev 115.14W, divergence 13.82%
2026-08-17 01:35:01.824102: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:35:01.824240: LoadML is_calculating False
2026-08-17 01:35:01.824309: Creating pool of 12 processes to match your CPU count
2026-08-17 01:35:01.910085: 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 01:35:01.910866: Optimise levels pass started at 2026-08-17 01:35:01
2026-08-17 01:35:01.910922: Optimise all windows, total charge 25 export 1
2026-08-17 01:35:02.504268: >> Region optimisation pass width 960 gives best_metric 216.07p, best_cost 221.25p, best_cycle 37.16kWh, best_import 21.23kWh
2026-08-17 01:35:02.647599: >> Region optimisation pass width 480 gives best_metric 216.07p, best_cost 221.25p, best_cycle 37.16kWh, best_import 21.23kWh
2026-08-17 01:35:02.890611: >> Region optimisation pass width 240 gives best_metric 216.07p, best_cost 221.25p, best_cycle 37.16kWh, best_import 21.23kWh
2026-08-17 01:35:03.427608: >> Region optimisation pass width 120 gives best_metric 216.07p, best_cost 221.25p, best_cycle 37.16kWh, best_import 21.23kWh
2026-08-17 01:35:03.428078: Calculated end_record as 08-18 02:00:00 based on best_price 8.0p, next_charge_start 08-17 02:00:00, max_windows 14
2026-08-17 01:35:03.428198: Optimise levels pass ended at 2026-08-17 01:35:03, duration 1.5 seconds tried 53 combinations
2026-08-17 01:35:03.428569: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 216.07p, best_keep 1.42kWh, best_cycle 37.16kWh, best_carbon 0kg, best_import 21.23kWh
2026-08-17 01:35:03.444573: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 01:35:07.958919: Tweak plan optimisation started metric 71.56p, cost 85.24p
2026-08-17 01:35:08.269731: Tweak optimisation finished metric 71.15p, cost 84.11p, metric_keep 0.02kWh, cycle 9.49kWh, carbon 0kg, import 4.08kWh, changed 8 window(s)
2026-08-17 01:35:08.292281: Swap charge optimisation started metric 71.15p, cost 84.11p, min_improvement_swap 0.1p
2026-08-17 01:35:08.877286: Swap charge optimisation finished metric 71.15p, cost 84.11p
2026-08-17 01:35:09.013743: Raw charge windows [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 16%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 16%, 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 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:35:09.014461: Unclipped charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:35:09.014890: Unfiltered charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:35:09.015165: Filtered charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:35:09.054855: Previous plan best metric is 74.87 (cost 104.35) and new plan best metric is 71.15 (cost 84.11)
2026-08-17 01:35:09.055073: New plan metric is significantly better from previous plan, using new plan
2026-08-17 01:35:09.055109: Plan valid is now true after recompute was False
2026-08-17 01:35:09.087841: predict base end_record 08-18 02:00:00, final soc 10.56kWh, metric 204.05p, metric_keep 0.57kWh, min_soc 1.61kWh @ 08-17 23:55:00, load 12.77kWh, PV 0.0kWh
2026-08-17 01:35:09.218476: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:35:09.266373: predict base10 end_record 08-18 02:00:00, final soc 8.95kWh, metric 195.26p, metric_keep 3.83kWh, min_soc 1.19kWh @ 08-17 23:55:00, load 13.34kWh, PV 0.0kWh
2026-08-17 01:35:09.364560: predict best10 end_record 08-18 02:00:00, final soc 2.0kWh, metric 135.82p, metric_keep 0.04kWh, min_soc 1.92kWh @ 08-18 00:55:00, load 13.34kWh, PV 0.0kWh
2026-08-17 01:35:09.457098: predict best end_record 08-18 02:00:00, final soc 2.0kWh, metric 130.75p, metric_keep 0.02kWh, min_soc 1.94kWh @ 08-18 00:55:00, load 12.77kWh, PV 0.0kWh
2026-08-17 01:35:09.457193: Saving plan best values to HA entities
2026-08-17 01:35:09.621186: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:35:09.626859: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:35:09.632388: Best charging limit SoC's [10.5, 11.0, 2.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.08kWh, house 0.0kWh, export 0.0kWh, metric 130.75p, metric10 135.82p
2026-08-17 01:35:09.708101: Marginal costs baseline metric (no standing charge): 84.1138
2026-08-17 01:35:10.003831: Marginal energy costs matrix computed: min=8.0 max=30.09
2026-08-17 01:35:10.076847: Rate array import [{'start': 95, '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': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 95, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:35:10.077314: - Your estimated bill for today is £0.72 and tomorrow is £2.20
2026-08-17 01:35:10.077383: - Import rates are cheap (8.0p) for the next 3  hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:35:10.077419: - The battery is currently at 66% and is charging to 66% for the next 3 and a half hours.
2026-08-17 01:35:10.077459: - For the next 48 hours there will be no solar generation.
2026-08-17 01:35:10.077484: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 01:35:10.077504: - Your car is currently charging.
2026-08-17 01:35:10.077522: 
2026-08-17 01:35:10.131302: Plan calculation took 8.33 seconds
2026-08-17 01:35:10.136268: Saved plan to storage
2026-08-17 01:35:10.139562: No high rate period found
2026-08-17 01:35:10.194921: Import threshold used for optimisation was 8.0p
2026-08-17 01:35:10.247662: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 25: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 01:35:10.255229: Inverter 0: Type SK Sunsynk
2026-08-17 01:35:10.255321: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:35:10.255624: Reserve min: 7%, battery_min: 7%
2026-08-17 01:35:10.255722: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:35:10.256128: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -517W, load power 518W, PV Power 0W
2026-08-17 01:35:10.256424: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:35:10.256555: Inverter 0 scheduled charge enable is True
2026-08-17 01:35:10.256628: 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 01:35:10.256787: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:35:10.257011: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:35:10.257086: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:35:10.257133: Inverter 0 scheduled discharge enable is False
2026-08-17 01:35:10.257360: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:35:10.257433: Inverter 0 discharge windows currently []
2026-08-17 01:35:10.257459: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:35:10.257504: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:35:10.257540: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:35:10.320422: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:35:10.320549: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:35:10.320695: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:35:10.320776: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:35:10.320900: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:35:10.321127: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:35:10.321250: No export window planned
2026-08-17 01:35:10.321382: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:35:10.321421: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:35:10.321564: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:35:10.321655: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:35:10.321720: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:35:10.321773: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:35:10.321888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.321929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.321956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.321987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322111: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322151: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322177: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322208: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322238: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322264: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322322: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322495: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:35:10.322597: Inverter 0 count register writes 0
2026-08-17 01:35:10.348139: Total inverter register writes now 848
2026-08-17 01:35:10.399927: Info: Completed run status Hold charging
2026-08-17 01:35:10.408860: Info: record_status Hold charging target 66%-66%
2026-08-17 01:35:10.421420: Saved current settings to /config/predbat_config.json
2026-08-17 01:35:10.421832: Compare, best tariff: current metric 104.68p
2026-08-17 01:35:48.557908: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:35:48.558451: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:35:48.558513: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:35:48.558726: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:35:48.558792: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:35:48.558813: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:35:48.558852: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:37:48.788668: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:37:48.788989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:37:48.789062: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:37:48.789258: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:37:48.789301: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:37:48.789322: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:37:48.789340: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:39:49.010131: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:39:49.010410: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:39:49.010447: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:39:49.010614: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:39:49.010654: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:39:49.010675: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:39:49.010693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:40:00.103569: --------------- PredBat - update at 2026-08-17 01:40:00+01:00 with clock skew 0 minutes, minutes now 100
2026-08-17 01:40:00.104457: Saved current settings to /config/predbat_config.json
2026-08-17 01:40:00.104607: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 01:40:00.104762: 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 01:40:00.104865: 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 01:40:00.126155: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:40:00.126298: days_previous_auto enabled - will 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 01:40:00.126557: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:40:00.127178: 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 01:40:00.127354: Predbat mode is set to Control charge & discharge
2026-08-17 01:40:00.315360: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:40:00.316634: Using load_power data to fill gaps in load_today data
2026-08-17 01:40:01.087027: Processing 721 30-minute periods for power integration
2026-08-17 01:40:01.283221: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:40:01.283361: Car charging hold False, threshold 6.0kWh
2026-08-17 01:40:01.283410: Current data so far today: load 0.85kWh, import 0.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:40:01.300599: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:40:01.300710: Cars: SoC: [36.332]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:40:01.301495: Standing charge is set to 46.63p
2026-08-17 01:40:01.405852: 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 01:40:01.406148: 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 01:40:01.406347: 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 01:40:01.406537: 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 01:40:01.406717: 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 01:40:01.406891: 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 01:40:01.407094: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407191: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407268: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407373: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407446: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407558: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.407726: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.408039: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:40:01.408115: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:40:01.413416: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:40:01.413760: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:40:01.457339: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:40:01.458092: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:40:01.459259: High export rate found rates in range 99p to -99p
2026-08-17 01:40:01.482358: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:40:01.482472: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:40:01.482531: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:40:01.496370: 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 01:40:01.496724: 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-17 01:40:01.553911: Today's energy total net 0.7kWh, import 0.7kWh, export 0.0kWh, cost 52.23p, import 5.6p, export 0.0p, carbon 0.0kg
2026-08-17 01:40:01.554057: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:40:01.627206: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:40:01.649195: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:40:01.649300: Today's predicted so far 1.55kWh with 0.0kWh car/iBoost excluded, 0.04kWh import ignored, and 1.55kWh forecast extra.
2026-08-17 01:40:01.649333: Today's actual load so far 0.83kWh with 0.0kWh car/iBoost excluded, and 0.04kWh import ignored.
2026-08-17 01:40:01.688207: Inverter 0: Type SK Sunsynk
2026-08-17 01:40:01.688297: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:40:01.688477: Reserve min: 7%, battery_min: 7%
2026-08-17 01:40:01.688539: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:40:01.688842: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -513W, load power 513W, PV Power 0W
2026-08-17 01:40:01.689046: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:40:01.689187: Inverter 0 scheduled charge enable is True
2026-08-17 01:40:01.689237: 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 01:40:01.689331: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:40:01.689455: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:40:01.689485: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:40:01.689520: Inverter 0 scheduled discharge enable is False
2026-08-17 01:40:01.689647: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:40:01.689703: Inverter 0 discharge windows currently []
2026-08-17 01:40:01.689728: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:40:01.689747: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:40:01.689764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:40:01.752220: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:40:01.752328: Plan was last updated on 2026-08-17 01:35:00+01:00 and is now 5.0 minutes old
2026-08-17 01:40:01.752639: Best charge window [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ]
2026-08-17 01:40:01.752684: Best export window [  ]
2026-08-17 01:40:01.753618: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:40:01.756777: Load divergence over 8.0 hours mean 420.48W, min 292.2W, max 1401.0W, std dev 141.57W, divergence 16.83%
2026-08-17 01:40:01.775243: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:40:01.775372: LoadML is_calculating False
2026-08-17 01:40:01.775440: Creating pool of 12 processes to match your CPU count
2026-08-17 01:40:01.915446: predict base end_record 08-18 02:05:00, final soc 10.56kWh, metric 204.99p, metric_keep 0.64kWh, min_soc 1.58kWh @ 08-17 23:55:00, load 12.83kWh, PV 0.0kWh
2026-08-17 01:40:02.056736: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:40:02.104476: predict base10 end_record 08-18 02:05:00, final soc 9.24kWh, metric 198.68p, metric_keep 3.99kWh, min_soc 1.15kWh @ 08-17 23:55:00, load 13.41kWh, PV 0.0kWh
2026-08-17 01:40:02.192177: predict best10 end_record 08-18 02:05:00, final soc 2.32kWh, metric 139.51p, metric_keep 0.05kWh, min_soc 1.91kWh @ 08-18 00:55:00, load 13.41kWh, PV 0.0kWh
2026-08-17 01:40:02.293114: predict best end_record 08-18 02:05:00, final soc 2.39kWh, metric 135.0p, metric_keep 0.02kWh, min_soc 1.94kWh @ 08-18 00:55:00, load 12.83kWh, PV 0.0kWh
2026-08-17 01:40:02.293235: Saving plan best values to HA entities
2026-08-17 01:40:02.483805: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:40:02.490191: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:40:02.496479: Best charging limit SoC's [10.5, 11.0, 2.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.52kWh, house 0.0kWh, export 0.0kWh, metric 135.0p, metric10 139.51p
2026-08-17 01:40:02.577344: Marginal costs baseline metric (no standing charge): 88.3659
2026-08-17 01:40:02.887726: Marginal energy costs matrix computed: min=8.0 max=30.11
2026-08-17 01:40:02.957400: Rate array import [{'start': 100, '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': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 100, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:40:02.957867: - Your estimated bill for today is £0.73 and tomorrow is £2.20
2026-08-17 01:40:02.957914: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:40:02.957936: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 01:40:02.957974: - For the next 48 hours there will be no solar generation.
2026-08-17 01:40:02.957993: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 01:40:02.958037: - Your car is currently charging.
2026-08-17 01:40:02.958056: 
2026-08-17 01:40:03.011785: Plan calculation took 1.26 seconds
2026-08-17 01:40:03.015008: No high rate period found
2026-08-17 01:40:03.073136: Import threshold used for optimisation was 8.0p
2026-08-17 01:40:03.127158: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 25: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 01:40:03.133476: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:40:03.133600: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:40:03.133801: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:40:03.133895: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:40:03.134097: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:40:03.134369: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:40:03.134517: No export window planned
2026-08-17 01:40:03.134666: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:40:03.134696: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:40:03.134840: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:40:03.134930: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:40:03.135011: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:40:03.135114: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:40:03.135244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135565: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135592: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135627: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135687: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135717: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.135972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.136138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.136200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:40:03.136229: Inverter 0 count register writes 0
2026-08-17 01:40:03.153832: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:40:03.159358: Total inverter register writes now 848
2026-08-17 01:40:03.198811: Info: Completed run status Hold charging
2026-08-17 01:40:03.209130: Info: record_status Hold charging target 66%-66%
2026-08-17 01:40:03.217360: Saved current settings to /config/predbat_config.json
2026-08-17 01:40:03.217715: Compare, best tariff: current metric 104.68p
2026-08-17 01:40:17.760635: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 01:40:18.860920: Processing 1345 30-minute periods for power integration
2026-08-17 01:40:18.969565: ML Component: Car charging hold False, car energy reported load False
2026-08-17 01:40:19.076204: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:40:19.184920: ML Temperature data points: 50301
2026-08-17 01:40:19.467539: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 01:40:19.510848: ML Component: Data fetch completed, load data age 58.0 days, 16844 data points
2026-08-17 01:40:19.511045: ML Component: No training needed, model age is 1.65 hours
2026-08-17 01:40:19.511150: ML Component: Generating predictions load data age 58.0 days, 16844 data points
2026-08-17 01:40:19.656346: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0491 max_dow {0: 0.08345277777612209, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-17 01:40:25.739897: ML Component: Generated 576 predictions (total 26.23 kWh over 48h)
2026-08-17 01:40:25.779986: ML Component: Prediction cycle completed
2026-08-17 01:40:25.902140: ML Component: Saved 16844 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 01:40:33.675839: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:40:33.676141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:40:33.676211: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:40:33.676413: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:40:33.676486: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:40:33.676509: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:40:33.676527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:42:33.899772: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:42:33.900082: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:42:33.900159: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:42:33.900330: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:42:33.900391: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:42:33.900416: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:42:33.900434: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:44:34.130326: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:44:34.130624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:44:34.130670: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:44:34.130869: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:44:34.130919: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:44:34.130964: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:44:34.130981: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:45:00.241681: --------------- PredBat - update at 2026-08-17 01:45:00+01:00 with clock skew 0 minutes, minutes now 105
2026-08-17 01:45:00.242615: Saved current settings to /config/predbat_config.json
2026-08-17 01:45:00.242847: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 01:45:00.242979: 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 01:45:00.243134: 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 01:45:00.265143: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:45:00.265256: days_previous_auto enabled - will 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 01:45:00.265396: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:45:00.265884: 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 01:45:00.265987: Predbat mode is set to Control charge & discharge
2026-08-17 01:45:00.465677: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:45:00.465857: Using load_power data to fill gaps in load_today data
2026-08-17 01:45:01.341714: Processing 721 30-minute periods for power integration
2026-08-17 01:45:01.525617: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:45:01.525808: Car charging hold False, threshold 6.0kWh
2026-08-17 01:45:01.525877: Current data so far today: load 0.9kWh, import 0.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:45:01.542587: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:45:01.543561: Cars: SoC: [36.918]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:45:01.544330: Standing charge is set to 46.63p
2026-08-17 01:45:01.645735: 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 01:45:01.646007: 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 01:45:01.646203: 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 01:45:01.646389: 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 01:45:01.646564: 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 01:45:01.646759: 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 01:45:01.646939: Octopus: Intelligent slot at 08-17 00:30:00-08-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 01:45:01.647112: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647205: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647282: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647361: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647438: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647519: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647594: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647778: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:45:01.647840: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:45:01.653013: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:45:01.653335: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:45:01.697085: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:45:01.697200: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:45:01.698204: High export rate found rates in range 99p to -99p
2026-08-17 01:45:01.723689: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:45:01.723816: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:45:01.723877: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:45:01.736684: 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 01:45:01.737155: 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-17 01:45:01.782785: Today's energy total net 0.7kWh, import 0.7kWh, export 0.0kWh, cost 52.23p, import 5.6p, export 0.0p, carbon 0.0kg
2026-08-17 01:45:01.782910: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:45:01.853298: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:45:01.874640: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:45:01.874763: Today's predicted so far 1.58kWh with 0.0kWh car/iBoost excluded, 0.05kWh import ignored, and 1.58kWh forecast extra.
2026-08-17 01:45:01.874796: Today's actual load so far 0.87kWh with 0.0kWh car/iBoost excluded, and 0.05kWh import ignored.
2026-08-17 01:45:01.909971: 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-17T01:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, '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-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, 'source': 'SMART'}]]
2026-08-17 01:45:01.910530: Sensor changes require a replan, will recompute the plan
2026-08-17 01:45:01.910718: Inverter 0: Type SK Sunsynk
2026-08-17 01:45:01.910766: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:45:01.910945: Reserve min: 7%, battery_min: 7%
2026-08-17 01:45:01.911020: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:45:01.911318: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -492W, load power 492W, PV Power 0W
2026-08-17 01:45:01.911478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:45:01.911565: Inverter 0 scheduled charge enable is True
2026-08-17 01:45:01.911615: 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 01:45:01.911728: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:45:01.911851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:45:01.911887: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:45:01.911923: Inverter 0 scheduled discharge enable is False
2026-08-17 01:45:01.912044: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:45:01.912080: Inverter 0 discharge windows currently []
2026-08-17 01:45:01.912104: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:45:01.912127: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:45:01.912145: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:45:01.973036: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:45:01.973124: Will recompute the plan as it is invalid
2026-08-17 01:45:01.973245: Recompute is saving previous plan...
2026-08-17 01:45:01.974228: Best charge window [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66% ]
2026-08-17 01:45:01.974280: Best export window [  ]
2026-08-17 01:45:01.975113: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:45:01.978369: Load divergence over 8.0 hours mean 426.27W, min 259.8W, max 1420.2W, std dev 165.12W, divergence 19.37%
2026-08-17 01:45:01.997003: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:45:01.997124: LoadML is_calculating False
2026-08-17 01:45:01.997187: Creating pool of 12 processes to match your CPU count
2026-08-17 01:45:02.095599: 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 01:45:02.096533: Optimise levels pass started at 2026-08-17 01:45:02
2026-08-17 01:45:02.096596: Optimise all windows, total charge 25 export 1
2026-08-17 01:45:02.719202: >> Region optimisation pass width 960 gives best_metric 217.61p, best_cost 221.57p, best_cycle 37.26kWh, best_import 21.17kWh
2026-08-17 01:45:02.879139: >> Region optimisation pass width 480 gives best_metric 217.61p, best_cost 221.57p, best_cycle 37.26kWh, best_import 21.17kWh
2026-08-17 01:45:03.104525: >> Region optimisation pass width 240 gives best_metric 217.61p, best_cost 221.57p, best_cycle 37.26kWh, best_import 21.17kWh
2026-08-17 01:45:03.638901: >> Region optimisation pass width 120 gives best_metric 217.61p, best_cost 221.57p, best_cycle 37.26kWh, best_import 21.17kWh
2026-08-17 01:45:03.639161: Calculated end_record as 08-18 02:00:00 based on best_price 8.0p, next_charge_start 08-17 02:00:00, max_windows 14
2026-08-17 01:45:03.639254: Optimise levels pass ended at 2026-08-17 01:45:03, duration 1.5 seconds tried 53 combinations
2026-08-17 01:45:03.639324: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 217.61p, best_keep 2.07kWh, best_cycle 37.26kWh, best_carbon 0kg, best_import 21.17kWh
2026-08-17 01:45:03.656092: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 01:45:08.118568: Tweak plan optimisation started metric 71.32p, cost 85.1p
2026-08-17 01:45:08.441242: Tweak optimisation finished metric 70.91p, cost 83.89p, metric_keep 0.02kWh, cycle 9.5kWh, carbon 0kg, import 3.96kWh, changed 8 window(s)
2026-08-17 01:45:08.462619: Swap charge optimisation started metric 70.91p, cost 83.89p, min_improvement_swap 0.1p
2026-08-17 01:45:08.927191: Swap charge optimisation finished metric 70.91p, cost 83.89p
2026-08-17 01:45:09.037559: Raw charge windows [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 16%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 16%, 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 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:45:09.038080: Unclipped charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:45:09.038451: Unfiltered charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:45:09.038857: Filtered charge windows [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:45:09.070521: Previous plan best metric is 70.91 (cost 83.89) and new plan best metric is 70.91 (cost 83.89)
2026-08-17 01:45:09.070844: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 01:45:09.071093: Plan valid is now true after recompute was False
2026-08-17 01:45:09.096523: predict base end_record 08-18 02:00:00, final soc 10.56kWh, metric 203.87p, metric_keep 0.67kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 12.74kWh, PV 0.0kWh
2026-08-17 01:45:09.223200: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:45:09.270253: predict base10 end_record 08-18 02:00:00, final soc 8.89kWh, metric 194.51p, metric_keep 3.99kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 13.31kWh, PV 0.0kWh
2026-08-17 01:45:09.343548: predict best10 end_record 08-18 02:00:00, final soc 2.0kWh, metric 135.53p, metric_keep 0.04kWh, min_soc 1.92kWh @ 08-18 00:55:00, load 13.31kWh, PV 0.0kWh
2026-08-17 01:45:09.418852: predict best end_record 08-18 02:00:00, final soc 2.0kWh, metric 130.52p, metric_keep 0.02kWh, min_soc 1.95kWh @ 08-18 00:55:00, load 12.74kWh, PV 0.0kWh
2026-08-17 01:45:09.418941: Saving plan best values to HA entities
2026-08-17 01:45:09.619009: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:45:09.624334: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:45:09.629575: Best charging limit SoC's [10.5, 11.0, 2.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.96kWh, house 0.0kWh, export 0.0kWh, metric 130.52p, metric10 135.53p
2026-08-17 01:45:09.694183: Marginal costs baseline metric (no standing charge): 83.8899
2026-08-17 01:45:09.951501: Marginal energy costs matrix computed: min=8.0 max=30.11
2026-08-17 01:45:10.016615: Rate array import [{'start': 105, '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': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 105, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:45:10.017063: - Your estimated bill for today is £0.73 and tomorrow is £2.20
2026-08-17 01:45:10.017124: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:45:10.017144: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 01:45:10.017160: - For the next 48 hours there will be no solar generation.
2026-08-17 01:45:10.017174: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 01:45:10.017188: - Your car is currently charging.
2026-08-17 01:45:10.017206: 
2026-08-17 01:45:10.069771: Plan calculation took 8.10 seconds
2026-08-17 01:45:10.074727: Saved plan to storage
2026-08-17 01:45:10.077370: No high rate period found
2026-08-17 01:45:10.124354: Import threshold used for optimisation was 8.0p
2026-08-17 01:45:10.176622: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 25: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 01:45:10.182751: Inverter 0: Type SK Sunsynk
2026-08-17 01:45:10.182831: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:45:10.183116: Reserve min: 7%, battery_min: 7%
2026-08-17 01:45:10.183194: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:45:10.183545: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -492W, load power 492W, PV Power 0W
2026-08-17 01:45:10.183800: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:45:10.183900: Inverter 0 scheduled charge enable is True
2026-08-17 01:45:10.183970: 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 01:45:10.184119: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:45:10.184272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:45:10.184314: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:45:10.184350: Inverter 0 scheduled discharge enable is False
2026-08-17 01:45:10.184505: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:45:10.184544: Inverter 0 discharge windows currently []
2026-08-17 01:45:10.184565: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:45:10.184580: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:45:10.184594: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:45:10.233192: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:45:10.233311: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:45:10.233457: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:45:10.233552: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:45:10.233726: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:45:10.233923: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:45:10.234044: No export window planned
2026-08-17 01:45:10.234181: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:45:10.234218: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:45:10.234368: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:45:10.234460: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:45:10.234536: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:45:10.234613: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:45:10.234789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.234833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.234867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.234912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.234964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235130: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235187: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235230: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235268: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235309: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235353: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235395: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235639: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:45:10.235768: Inverter 0 count register writes 0
2026-08-17 01:45:10.264435: Total inverter register writes now 848
2026-08-17 01:45:10.298723: Info: Completed run status Hold charging
2026-08-17 01:45:10.305744: Info: record_status Hold charging target 66%-66%
2026-08-17 01:45:10.313778: Saved current settings to /config/predbat_config.json
2026-08-17 01:45:10.314148: Compare, best tariff: current metric 104.68p
2026-08-17 01:45:48.449898: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:45:48.450176: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:45:48.450267: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:45:48.450642: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:45:48.450751: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:45:48.450809: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:45:48.450871: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:47:48.671645: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:47:48.672021: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:47:48.672124: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:47:48.672284: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:47:48.672315: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:47:48.672335: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:47:48.672361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:49:48.908776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:49:48.909196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:49:48.909253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:49:48.909448: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:49:48.909491: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:49:48.909540: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:49:48.909559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:50:00.003759: --------------- PredBat - update at 2026-08-17 01:50:00+01:00 with clock skew 0 minutes, minutes now 110
2026-08-17 01:50:00.005378: Saved current settings to /config/predbat_config.json
2026-08-17 01:50:00.005593: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 01:50:00.005752: 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 01:50:00.005931: 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 01:50:00.046192: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:50:00.046416: days_previous_auto enabled - will 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 01:50:00.046716: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:50:00.047507: 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 01:50:00.047708: Predbat mode is set to Control charge & discharge
2026-08-17 01:50:00.277517: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:50:00.277736: Using load_power data to fill gaps in load_today data
2026-08-17 01:50:01.079177: Processing 721 30-minute periods for power integration
2026-08-17 01:50:01.272609: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:50:01.273186: Car charging hold False, threshold 6.0kWh
2026-08-17 01:50:01.273253: Current data so far today: load 0.95kWh, import 0.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:50:01.293572: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:50:01.293675: Cars: SoC: [37.504]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:50:01.294738: Standing charge is set to 46.63p
2026-08-17 01:50:01.382384: 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 01:50:01.382649: 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 01:50:01.382797: 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 01:50:01.382951: 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 01:50:01.383094: 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 01:50:01.383247: 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 01:50:01.383392: Octopus: Intelligent slot at 08-17 00:30:00-08-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 01:50:01.383554: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383627: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383694: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383751: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383822: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383877: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.383936: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.384068: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:50:01.384117: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:50:01.388358: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:50:01.388739: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:50:01.424576: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:50:01.424692: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:50:01.425894: High export rate found rates in range 99p to -99p
2026-08-17 01:50:01.444797: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:50:01.444913: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:50:01.444986: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:50:01.457991: 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 01:50:01.458374: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.57kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 01:50:01.510706: Today's energy total net 0.8kWh, import 0.8kWh, export 0.0kWh, cost 53.03p, import 6.4p, export 0.0p, carbon 0.0kg
2026-08-17 01:50:01.510855: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:50:01.584901: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:50:01.607105: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:50:01.607216: Today's predicted so far 1.63kWh with 0.0kWh car/iBoost excluded, 0.08kWh import ignored, and 1.63kWh forecast extra.
2026-08-17 01:50:01.607248: Today's actual load so far 0.91kWh with 0.0kWh car/iBoost excluded, and 0.08kWh import ignored.
2026-08-17 01:50:01.647464: Inverter 0: Type SK Sunsynk
2026-08-17 01:50:01.647564: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:50:01.647822: Reserve min: 7%, battery_min: 7%
2026-08-17 01:50:01.647937: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:50:01.648270: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -534W, load power 533W, PV Power 0W
2026-08-17 01:50:01.648516: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:50:01.648649: Inverter 0 scheduled charge enable is True
2026-08-17 01:50:01.648738: 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 01:50:01.648887: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:50:01.649132: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:50:01.649191: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:50:01.649260: Inverter 0 scheduled discharge enable is False
2026-08-17 01:50:01.649490: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:50:01.649545: Inverter 0 discharge windows currently []
2026-08-17 01:50:01.649591: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:50:01.649625: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:50:01.649657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:50:01.710677: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:50:01.710785: Plan was last updated on 2026-08-17 01:45:00+01:00 and is now 5.0 minutes old
2026-08-17 01:50:01.711081: Best charge window [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ]
2026-08-17 01:50:01.711125: Best export window [  ]
2026-08-17 01:50:01.711910: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:50:01.715114: Load divergence over 8.0 hours mean 431.19W, min 260.4W, max 1482.6W, std dev 181.09W, divergence 21.0%
2026-08-17 01:50:01.734603: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:50:01.734729: LoadML is_calculating False
2026-08-17 01:50:01.734801: Creating pool of 12 processes to match your CPU count
2026-08-17 01:50:01.876255: predict base end_record 08-18 02:05:00, final soc 10.56kWh, metric 204.77p, metric_keep 0.67kWh, min_soc 1.54kWh @ 08-17 23:55:00, load 12.8kWh, PV 0.0kWh
2026-08-17 01:50:02.033343: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:50:02.078886: predict base10 end_record 08-18 02:05:00, final soc 9.2kWh, metric 198.1p, metric_keep 3.96kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.36kWh, PV 0.0kWh
2026-08-17 01:50:02.166122: predict best10 end_record 08-18 02:05:00, final soc 2.32kWh, metric 139.17p, metric_keep 0.04kWh, min_soc 1.92kWh @ 08-18 00:55:00, load 13.36kWh, PV 0.0kWh
2026-08-17 01:50:02.275361: predict best end_record 08-18 02:05:00, final soc 2.39kWh, metric 134.72p, metric_keep 0.02kWh, min_soc 1.94kWh @ 08-18 00:55:00, load 12.8kWh, PV 0.0kWh
2026-08-17 01:50:02.275471: Saving plan best values to HA entities
2026-08-17 01:50:02.468709: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:50:02.475956: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:50:02.481926: Best charging limit SoC's [10.5, 11.0, 2.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.38kWh, house 0.0kWh, export 0.0kWh, metric 134.72p, metric10 139.17p
2026-08-17 01:50:02.564921: Marginal costs baseline metric (no standing charge): 88.0829
2026-08-17 01:50:02.866932: Marginal energy costs matrix computed: min=8.0 max=30.1
2026-08-17 01:50:02.930705: Rate array import [{'start': 110, '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': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 110, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:50:02.931071: - Your estimated bill for today is £0.73 and tomorrow is £2.20
2026-08-17 01:50:02.931111: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:50:02.931130: - The battery is currently at 66% and is charging to 66% for the next 3 and a quarter hours.
2026-08-17 01:50:02.931145: - For the next 48 hours there will be no solar generation.
2026-08-17 01:50:02.931159: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 01:50:02.931173: - Your car is currently charging.
2026-08-17 01:50:02.931188: 
2026-08-17 01:50:02.987795: Plan calculation took 1.28 seconds
2026-08-17 01:50:02.990943: No high rate period found
2026-08-17 01:50:03.042625: Import threshold used for optimisation was 8.0p
2026-08-17 01:50:03.093310: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 25: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 01:50:03.099117: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:50:03.099226: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:50:03.099390: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:50:03.099511: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:50:03.099659: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:50:03.099875: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:50:03.099992: No export window planned
2026-08-17 01:50:03.100097: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:50:03.100127: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:50:03.100245: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:50:03.100320: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:50:03.100370: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:50:03.100450: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:50:03.100548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100633: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100736: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100764: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100791: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100812: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100856: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100880: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.100933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:50:03.101187: Inverter 0 count register writes 0
2026-08-17 01:50:03.117009: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 01:50:03.122658: Total inverter register writes now 848
2026-08-17 01:50:03.155007: Info: Completed run status Hold charging
2026-08-17 01:50:03.162765: Info: record_status Hold charging target 66%-66%
2026-08-17 01:50:03.171095: Saved current settings to /config/predbat_config.json
2026-08-17 01:50:03.171421: Compare, best tariff: current metric 104.68p
2026-08-17 01:50:34.287092: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:50:34.287400: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:50:34.287479: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:50:34.287627: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:50:34.287673: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:50:34.287696: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:50:34.287714: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:52:48.522412: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:52:48.522709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:52:48.522753: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:52:48.522892: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:52:48.522932: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:52:48.522953: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:52:48.522971: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:54:48.752091: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:54:48.752383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:54:48.752427: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:54:48.752567: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:54:48.752627: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:54:48.752649: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:54:48.752667: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:55:00.851914: --------------- PredBat - update at 2026-08-17 01:55:00+01:00 with clock skew 0 minutes, minutes now 115
2026-08-17 01:55:00.852793: Saved current settings to /config/predbat_config.json
2026-08-17 01:55:00.852988: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 01:55:00.853188: 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 01:55:00.853372: 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 01:55:00.873555: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 01:55:00.873683: days_previous_auto enabled - will 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 01:55:00.873847: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 01:55:00.874421: 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 01:55:00.874541: Predbat mode is set to Control charge & discharge
2026-08-17 01:55:01.066129: Found 21602 load_today datapoints going back 28 days
2026-08-17 01:55:01.066282: Using load_power data to fill gaps in load_today data
2026-08-17 01:55:01.929097: Processing 721 30-minute periods for power integration
2026-08-17 01:55:02.121862: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 01:55:02.122021: Car charging hold False, threshold 6.0kWh
2026-08-17 01:55:02.122074: Current data so far today: load 1.0kWh, import 0.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 01:55:02.139939: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 01:55:02.140054: Cars: SoC: [38.09]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 01:55:02.140835: Standing charge is set to 46.63p
2026-08-17 01:55:02.243136: 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 01:55:02.243419: 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 01:55:02.243666: 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 01:55:02.243878: 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 01:55:02.244094: 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 01:55:02.244298: 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 01:55:02.244502: Octopus: Intelligent slot at 08-17 00:30:00-08-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 01:55:02.244682: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.244792: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.244874: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.244972: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.245061: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.245131: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.245196: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.245382: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 01:55:02.245444: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 01:55:02.250535: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 01:55:02.250934: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 01:55:02.293882: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 01:55:02.294008: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 01:55:02.295221: High export rate found rates in range 99p to -99p
2026-08-17 01:55:02.319576: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 01:55:02.319722: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 01:55:02.319789: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 01:55:02.336079: 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 01:55:02.336699: 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-17 01:55:02.400610: Today's energy total net 0.8kWh, import 0.8kWh, export 0.0kWh, cost 53.03p, import 6.4p, export 0.0p, carbon 0.0kg
2026-08-17 01:55:02.400755: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 01:55:02.474197: Using weighted-bucket historical load forecast over 14 days
2026-08-17 01:55:02.495734: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 01:55:02.495839: Today's predicted so far 1.67kWh with 0.0kWh car/iBoost excluded, 0.1kWh import ignored, and 1.67kWh forecast extra.
2026-08-17 01:55:02.495873: Today's actual load so far 0.95kWh with 0.0kWh car/iBoost excluded, and 0.1kWh import ignored.
2026-08-17 01:55:02.535458: Inverter 0: Type SK Sunsynk
2026-08-17 01:55:02.535558: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:55:02.535792: Reserve min: 7%, battery_min: 7%
2026-08-17 01:55:02.535920: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:55:02.536296: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -519W, load power 519W, PV Power 0W
2026-08-17 01:55:02.536504: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:55:02.536634: Inverter 0 scheduled charge enable is True
2026-08-17 01:55:02.536721: 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 01:55:02.536894: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:55:02.537114: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:55:02.537160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:55:02.537211: Inverter 0 scheduled discharge enable is False
2026-08-17 01:55:02.537405: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:55:02.537448: Inverter 0 discharge windows currently []
2026-08-17 01:55:02.537476: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:55:02.537519: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:55:02.537553: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:55:02.598009: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 01:55:02.598104: Plan was last updated on 2026-08-17 01:45:00+01:00 and is now 10.0 minutes old
2026-08-17 01:55:02.598352: Best charge window [ 17-08 01:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 16%, 18-08 01:00:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ]
2026-08-17 01:55:02.598436: Best export window [  ]
2026-08-17 01:55:02.599100: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:55:02.601556: Load divergence over 8.0 hours mean 432.24W, min 260.4W, max 1581.6W, std dev 193.63W, divergence 22.4%
2026-08-17 01:55:02.621550: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:55:02.621688: LoadML is_calculating False
2026-08-17 01:55:02.621758: Creating pool of 12 processes to match your CPU count
2026-08-17 01:55:02.750131: predict base end_record 08-18 02:10:00, final soc 10.56kWh, metric 204.85p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 12.86kWh, PV 0.0kWh
2026-08-17 01:55:02.889930: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:55:02.934715: predict base10 end_record 08-18 02:10:00, final soc 9.53kWh, metric 200.95p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.42kWh, PV 0.0kWh
2026-08-17 01:55:03.006357: predict best10 end_record 08-18 02:10:00, final soc 2.65kWh, metric 142.02p, metric_keep 0.04kWh, min_soc 1.92kWh @ 08-18 00:55:00, load 13.42kWh, PV 0.0kWh
2026-08-17 01:55:03.082081: predict best end_record 08-18 02:10:00, final soc 2.78kWh, metric 138.12p, metric_keep 0.02kWh, min_soc 1.94kWh @ 08-18 00:55:00, load 12.86kWh, PV 0.0kWh
2026-08-17 01:55:03.082168: Saving plan best values to HA entities
2026-08-17 01:55:03.237892: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:55:03.242806: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:55:03.248872: Best charging limit SoC's [10.5, 11.0, 2.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.81kWh, house 0.0kWh, export 0.0kWh, metric 138.12p, metric10 142.02p
2026-08-17 01:55:03.318854: Marginal costs baseline metric (no standing charge): 91.486
2026-08-17 01:55:03.557712: Marginal energy costs matrix computed: min=8.0 max=30.1
2026-08-17 01:55:03.618460: Rate array import [{'start': 115, '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': 1570, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 115, 'end': 1570, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:55:03.618879: - Your estimated bill for today is £0.73 and tomorrow is £2.20
2026-08-17 01:55:03.618956: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:55:03.618984: - The battery is currently at 66% and is charging to 66% for the next 3 hours.
2026-08-17 01:55:03.619018: - For the next 48 hours there will be no solar generation.
2026-08-17 01:55:03.619041: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 01:55:03.619061: - Your car is currently charging.
2026-08-17 01:55:03.619077: 
2026-08-17 01:55:03.670533: Plan calculation took 1.07 seconds
2026-08-17 01:55:03.673151: No high rate period found
2026-08-17 01:55:03.723154: Import threshold used for optimisation was 8.0p
2026-08-17 01:55:03.776657: Low import rate windows [0: 08-17 01:30:00 - 08-17 02:00:00 @ 8.0, 1: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 2: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 3: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 4: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 5: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 6: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 7: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 8: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 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 23:30:00 - 08-19 00:00:00 @ 8.0, 22: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 23: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 24: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 25: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 01:55:03.782653: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:55:03.782766: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:55:03.782995: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:55:03.783096: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:55:03.783299: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:55:03.783588: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:55:03.783730: No export window planned
2026-08-17 01:55:03.783855: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:55:03.783906: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:55:03.784046: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 01:55:03.784161: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:55:03.784225: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:55:03.784315: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:55:03.784427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784664: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784697: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784724: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784749: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784781: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784835: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784869: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.784999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:03.785146: Inverter 0 count register writes 0
2026-08-17 01:55:03.801482: 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 01:55:03.801674: Recompute is saving previous plan...
2026-08-17 01:55:03.802666: Best charge window [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66% ]
2026-08-17 01:55:03.802716: Best export window [  ]
2026-08-17 01:55:03.803631: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 01:55:03.806920: Load divergence over 8.0 hours mean 432.24W, min 260.4W, max 1581.6W, std dev 193.63W, divergence 22.4%
2026-08-17 01:55:03.823663: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 01:55:03.823772: LoadML is_calculating False
2026-08-17 01:55:03.823834: Creating pool of 12 processes to match your CPU count
2026-08-17 01:55:03.914979: 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 01:55:03.916228: Optimise levels pass started at 2026-08-17 01:55:03
2026-08-17 01:55:03.916323: Optimise all windows, total charge 25 export 1
2026-08-17 01:55:04.502863: >> Region optimisation pass width 960 gives best_metric 219.21p, best_cost 222.59p, best_cycle 37.25kWh, best_import 21.19kWh
2026-08-17 01:55:04.652259: >> Region optimisation pass width 480 gives best_metric 219.21p, best_cost 222.59p, best_cycle 37.25kWh, best_import 21.19kWh
2026-08-17 01:55:04.882430: >> Region optimisation pass width 240 gives best_metric 219.21p, best_cost 222.59p, best_cycle 37.25kWh, best_import 21.19kWh
2026-08-17 01:55:05.408805: >> Region optimisation pass width 120 gives best_metric 219.21p, best_cost 222.59p, best_cycle 37.25kWh, best_import 21.19kWh
2026-08-17 01:55:05.409100: Calculated end_record as 08-18 02:00:00 based on best_price 8.0p, next_charge_start 08-17 02:00:00, max_windows 14
2026-08-17 01:55:05.409201: Optimise levels pass ended at 2026-08-17 01:55:05, duration 1.5 seconds tried 53 combinations
2026-08-17 01:55:05.409319: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 219.21p, best_keep 2.65kWh, best_cycle 37.25kWh, best_carbon 0kg, best_import 21.19kWh
2026-08-17 01:55:05.431507: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 01:55:09.500727: Tweak plan optimisation started metric 71.23p, cost 84.59p
2026-08-17 01:55:09.811946: Tweak optimisation finished metric 70.65p, cost 83.69p, metric_keep 0kWh, cycle 9.18kWh, carbon 0kg, import 3.83kWh, changed 8 window(s)
2026-08-17 01:55:09.829828: Swap charge optimisation started metric 70.65p, cost 83.69p, min_improvement_swap 0.1p
2026-08-17 01:55:10.376542: Swap charge optimisation finished metric 70.65p, cost 83.69p
2026-08-17 01:55:10.483639: Raw charge windows [ 17-08 01:30:00 - 17-08 02:00:00 @ 8.0p 66%, 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 01:55:10.483995: Unclipped charge windows [ 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:55:10.484204: Unfiltered charge windows [ 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:55:10.484389: Filtered charge windows [ 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 01:55:10.517314: Previous plan best metric is 70.86 (cost 83.84) and new plan best metric is 70.65 (cost 83.69)
2026-08-17 01:55:10.517528: New plan is a cost-neutral improvement but less fragmented (3 vs 4 segments), using new plan
2026-08-17 01:55:10.517561: Plan valid is now true after recompute was False
2026-08-17 01:55:10.543795: predict base end_record 08-18 02:00:00, final soc 10.56kWh, metric 203.84p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 12.74kWh, PV 0.0kWh
2026-08-17 01:55:10.721270: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 01:55:10.777138: predict base10 end_record 08-18 02:00:00, final soc 8.88kWh, metric 194.37p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.29kWh, PV 0.0kWh
2026-08-17 01:55:10.865929: predict best10 end_record 08-18 02:00:00, final soc 2.0kWh, metric 135.24p, metric_keep 2.02kWh, min_soc 1.58kWh @ 08-17 23:25:00, load 13.29kWh, PV 0.0kWh
2026-08-17 01:55:10.972596: predict best end_record 08-18 02:00:00, final soc 2.0kWh, metric 130.32p, metric_keep 0kWh, min_soc 2.0kWh @ 08-17 23:25:00, load 12.74kWh, PV 0.0kWh
2026-08-17 01:55:10.972700: Saving plan best values to HA entities
2026-08-17 01:55:11.162134: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 01:55:11.168605: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 01:55:11.174917: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.83kWh, house 0.0kWh, export 0.0kWh, metric 130.32p, metric10 135.24p
2026-08-17 01:55:11.251143: Marginal costs baseline metric (no standing charge): 83.6908
2026-08-17 01:55:11.545351: Marginal energy costs matrix computed: min=8.0 max=31.22
2026-08-17 01:55:11.611354: Rate array import [{'start': 115, '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': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 115, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 01:55:11.611807: - Your estimated bill for today is £0.69 and tomorrow is £2.23
2026-08-17 01:55:11.611853: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 01:55:11.611876: - The battery is currently at 66% and is charging to 66% for the next 2 hours.
2026-08-17 01:55:11.611894: - For the next 48 hours there will be no solar generation.
2026-08-17 01:55:11.611911: - You will reach a minimum of 13% battery in 21 hours.
2026-08-17 01:55:11.611928: - Your car is currently charging.
2026-08-17 01:55:11.611950: 
2026-08-17 01:55:11.664699: Plan calculation took 7.86 seconds
2026-08-17 01:55:11.665123: Inverter 0: Type SK Sunsynk
2026-08-17 01:55:11.665182: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 01:55:11.665481: Reserve min: 7%, battery_min: 7%
2026-08-17 01:55:11.665591: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 01:55:11.665962: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -526W, load power 519W, PV Power 0W
2026-08-17 01:55:11.666209: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:55:11.666343: Inverter 0 scheduled charge enable is True
2026-08-17 01:55:11.666421: 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 01:55:11.666564: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 01:55:11.666704: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:55:11.666746: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:55:11.666786: Inverter 0 scheduled discharge enable is False
2026-08-17 01:55:11.666953: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 01:55:11.667006: Inverter 0 discharge windows currently []
2026-08-17 01:55:11.667031: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:55:11.667050: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:55:11.667067: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:55:11.731384: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 01:55:11.731528: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 01:55:11.731670: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 01:55:11.731750: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 01:55:11.731892: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:55:11.732119: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 01:55:11.732194: Inverter 0 set new demand (idle) start time to 04:30:00 was 05:30:00
2026-08-17 01:55:16.739624: Inverter 0 write_and_poll_value: Wrote 04:30:00 to idle_start_time, successfully now 04:30:00
2026-08-17 01:55:21.747898: Inverter 0 write_and_poll_value: Wrote 04:30:00 to charge_end_time, successfully now 04:30:00
2026-08-17 01:55:21.748046: Inverter 0 Updated start and end charge window to 00:00:00 - 04:30:00 (old 00:00:00 - 05:30:00)
2026-08-17 01:55:21.748578: No export window planned
2026-08-17 01:55:21.748767: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 01:55:21.748804: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 01:55:21.749146: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 01:55:21.749317: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 01:55:21.749401: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 01:55:21.749466: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 01:55:21.749609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:21.749860: 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 01:55:21.853662: 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 01:55:21.880276: 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 01:55:21.885457: 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 01:55:21.989447: 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 01:55:22.076513: 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 01:55:22.180614: 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 01:55:22.258457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 01:55:22.258723: Inverter 0 count register writes 0
2026-08-17 01:55:22.284618: Total inverter register writes now 848
2026-08-17 01:55:22.324277: Info: Completed run status Hold charging
2026-08-17 01:55:22.330426: Info: record_status Hold charging target 66%-66%
2026-08-17 01:55:22.337546: Saved current settings to /config/predbat_config.json
2026-08-17 01:55:22.337850: Compare, best tariff: current metric 104.68p
2026-08-17 01:56:03.461054: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:56:03.461394: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:56:03.461459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:56:03.461639: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:56:03.461678: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:56:03.461697: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:56:03.461711: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 01:58:03.699916: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 01:58:03.700292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 01:58:03.700347: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 01:58:03.700506: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 01:58:03.700562: Note: Inverter does not support discharge freeze - disabled
2026-08-17 01:58:03.700588: Note: Inverter does not support charge freeze - disabled
2026-08-17 01:58:03.700607: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:00:00.926001: --------------- PredBat - update at 2026-08-17 02:00:00+01:00 with clock skew 0 minutes, minutes now 120
2026-08-17 02:00:00.926972: Saved current settings to /config/predbat_config.json
2026-08-17 02:00:00.927129: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 02:00:00.927273: 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 02:00:00.927397: 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 02:00:00.954690: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:00:00.954864: days_previous_auto enabled - will 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 02:00:00.955079: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:00:00.955804: 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 02:00:00.955974: Predbat mode is set to Control charge & discharge
2026-08-17 02:00:01.191077: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:00:01.191242: Using load_power data to fill gaps in load_today data
2026-08-17 02:00:01.995927: Processing 721 30-minute periods for power integration
2026-08-17 02:00:02.192417: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:00:02.192576: Car charging hold False, threshold 6.0kWh
2026-08-17 02:00:02.192624: Current data so far today: load 0.9kWh, import 0.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:00:02.210180: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:00:02.210333: Cars: SoC: [38.676]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:00:02.211084: Standing charge is set to 46.63p
2026-08-17 02:00:02.305257: 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 02:00:02.305553: 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 02:00:02.305747: 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 02:00:02.305934: 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 02:00:02.306113: 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 02:00:02.306288: 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 02:00:02.306496: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:00:02.306674: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.306793: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.306879: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.306956: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.307041: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 8.0, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.307116: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.307189: Octopus: Intelligent slot at 08-17 01:30:00-08-17 05:00:00, assumed price 33.75, amount 25.9, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.307372: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.03, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:00:02.307434: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:00:02.312527: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:00:02.312879: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:00:02.357640: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:00:02.357975: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:00:02.359255: High export rate found rates in range 99p to -99p
2026-08-17 02:00:02.384377: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:00:02.384530: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:00:02.384593: Car 0 charging plan is: [{'start': 90, 'end': 300, 'kwh': 25.9, 'average': 8.0, 'cost': 207.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.0335, 'average': 8.0, 'cost': 8.27, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:00:02.399110: 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 02:00:02.399660: Last hour: net energy 0.47kWh, import 0.47kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.8p, import 3.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:00:02.455053: 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-17 02:00:02.455190: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:00:02.527704: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:00:02.550460: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:00:02.550570: Today's predicted so far 1.8kWh with 0.0kWh car/iBoost excluded, 0.19kWh import ignored, and 1.8kWh forecast extra.
2026-08-17 02:00:02.550603: Today's actual load so far 0.9kWh with 0.0kWh car/iBoost excluded, and 0.19kWh import ignored.
2026-08-17 02:00:02.603874: Inverter 0: Type SK Sunsynk
2026-08-17 02:00:02.603988: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:00:02.604179: Reserve min: 7%, battery_min: 7%
2026-08-17 02:00:02.604249: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:00:02.604526: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -522W, load power 522W, PV Power 0W
2026-08-17 02:00:02.604695: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:00:02.604813: Inverter 0 scheduled charge enable is True
2026-08-17 02:00:02.604866: 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-17 02:00:02.605010: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:00:02.605148: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:00:02.605185: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:00:02.605223: Inverter 0 scheduled discharge enable is False
2026-08-17 02:00:02.605368: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:00:02.605408: Inverter 0 discharge windows currently []
2026-08-17 02:00:02.605431: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:00:02.605454: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:00:02.605472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:00:02.674949: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:00:02.675065: Plan was last updated on 2026-08-17 01:55:00+01:00 and is now 5.0 minutes old
2026-08-17 02:00:02.675457: Best charge window [ 17-08 01:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100% ]
2026-08-17 02:00:02.675513: Best export window [  ]
2026-08-17 02:00:02.676157: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:00:02.678816: Load divergence over 8.0 hours mean 441.75W, min 262.2W, max 1533.6W, std dev 214.8W, divergence 24.31%
2026-08-17 02:00:02.694305: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:00:02.694432: LoadML is_calculating False
2026-08-17 02:00:02.694495: Creating pool of 12 processes to match your CPU count
2026-08-17 02:00:02.862249: predict base end_record 08-18 02:05:00, final soc 10.56kWh, metric 205.44p, metric_keep 3.6kWh, min_soc 1.19kWh @ 08-17 23:55:00, load 12.69kWh, PV 0.0kWh
2026-08-17 02:00:03.004391: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:00:03.055490: predict base10 end_record 08-18 02:05:00, final soc 9.2kWh, metric 198.36p, metric_keep 9.94kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 13.25kWh, PV 0.0kWh
2026-08-17 02:00:03.148932: predict best10 end_record 08-18 02:05:00, final soc 2.32kWh, metric 139.23p, metric_keep 1.96kWh, min_soc 1.58kWh @ 08-17 23:25:00, load 13.25kWh, PV 0.0kWh
2026-08-17 02:00:03.253576: predict best end_record 08-18 02:05:00, final soc 2.4kWh, metric 134.91p, metric_keep 0kWh, min_soc 2.01kWh @ 08-17 23:25:00, load 12.69kWh, PV 0.0kWh
2026-08-17 02:00:03.253682: Saving plan best values to HA entities
2026-08-17 02:00:03.455109: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:00:03.462194: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:00:03.469094: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.31kWh, house 0.0kWh, export 0.0kWh, metric 134.91p, metric10 139.23p
2026-08-17 02:00:03.544189: Marginal costs baseline metric (no standing charge): 88.2778
2026-08-17 02:00:03.812493: Marginal energy costs matrix computed: min=8.0 max=31.19
2026-08-17 02:00:03.874780: Rate array import [{'start': 120, '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': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 120, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:00:03.875213: - Your estimated bill for today is £0.70 and tomorrow is £2.23
2026-08-17 02:00:03.875259: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:00:03.875278: - The battery is currently at 66% and is charging to 66% for the next 2 hours.
2026-08-17 02:00:03.875307: - For the next 48 hours there will be no solar generation.
2026-08-17 02:00:03.875336: - You will reach a minimum of 13% battery in 21 hours.
2026-08-17 02:00:03.875371: - Your car is currently charging.
2026-08-17 02:00:03.875399: 
2026-08-17 02:00:03.927067: Plan calculation took 1.25 seconds
2026-08-17 02:00:03.930466: No high rate period found
2026-08-17 02:00:03.989555: Import threshold used for optimisation was 8.0p
2026-08-17 02:00:04.044701: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0]
2026-08-17 02:00:04.050817: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 01:30:00
2026-08-17 02:00:04.050970: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:00:04.051216: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:00:04.051506: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:00:04.051719: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:00:04.051982: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 02:00:04.052111: No export window planned
2026-08-17 02:00:04.052230: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:00:04.052265: Adjust idle time, charge 00:00:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:00:04.052424: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-17 02:00:04.052515: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:00:04.052579: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:00:04.052647: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:00:04.052764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.052806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.052833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.052924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053248: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053275: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053318: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053352: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053378: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053406: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:00:04.053678: Inverter 0 count register writes 0
2026-08-17 02:00:04.070649: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:00:04.076083: Total inverter register writes now 848
2026-08-17 02:00:04.110253: Info: Completed run status Hold charging
2026-08-17 02:00:04.117020: Info: record_status Hold charging target 66%-66%
2026-08-17 02:00:04.124719: Saved current settings to /config/predbat_config.json
2026-08-17 02:00:04.125100: Compare, best tariff: current metric 104.68p
2026-08-17 02:00:34.234895: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:00:34.235204: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:00:34.235274: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:00:34.235535: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:00:34.235585: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:00:34.235608: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:00:34.235626: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:02:48.479086: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:02:48.479410: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:02:48.479457: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:02:48.479594: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:02:48.479633: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:02:48.479654: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:02:48.479672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:04:48.707892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:04:48.708158: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:04:48.708201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:04:48.708362: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:04:48.708405: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:04:48.708426: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:04:48.708445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:05:00.794822: --------------- PredBat - update at 2026-08-17 02:05:00+01:00 with clock skew 0 minutes, minutes now 125
2026-08-17 02:05:00.795793: Saved current settings to /config/predbat_config.json
2026-08-17 02:05:00.795934: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 02:05:00.796043: 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 02:05:00.796200: 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 02:05:00.815667: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:05:00.815802: days_previous_auto enabled - will 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 02:05:00.815986: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:05:00.816603: 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 02:05:00.816754: Predbat mode is set to Control charge & discharge
2026-08-17 02:05:00.984065: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:05:00.984219: Using load_power data to fill gaps in load_today data
2026-08-17 02:05:01.725764: Processing 721 30-minute periods for power integration
2026-08-17 02:05:01.907194: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:05:01.907374: Car charging hold False, threshold 6.0kWh
2026-08-17 02:05:01.907448: Current data so far today: load 0.9kWh, import 0.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:05:01.923810: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:05:01.923906: Cars: SoC: [39.262]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:05:01.924561: Standing charge is set to 46.63p
2026-08-17 02:05:02.020467: 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 02:05:02.020755: 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 02:05:02.021021: 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 02:05:02.021226: 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 02:05:02.021437: 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 02:05:02.021620: 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 02:05:02.021806: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:05:02.021984: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022162: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022254: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022354: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022452: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022530: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022598: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022772: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:05:02.022835: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:05:02.028315: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:05:02.028807: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:05:02.075791: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:05:02.075926: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:05:02.077251: High export rate found rates in range 99p to -99p
2026-08-17 02:05:02.101922: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:05:02.102058: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:05:02.102137: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:05:02.119028: 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 02:05:02.119465: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:05:02.171433: 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-17 02:05:02.171569: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:05:02.243559: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:05:02.266111: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:05:02.266242: Today's predicted so far 1.91kWh with 0.0kWh car/iBoost excluded, 0.16kWh import ignored, and 1.91kWh forecast extra.
2026-08-17 02:05:02.266277: Today's actual load so far 0.92kWh with 0.0kWh car/iBoost excluded, and 0.16kWh import ignored.
2026-08-17 02:05:02.308589: 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-17T05:00:00+01:00', 'charge_in_kwh': -25.9, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.0335, '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.7, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.4665, 'source': 'SMART'}]]
2026-08-17 02:05:02.309203: Sensor changes require a replan, will recompute the plan
2026-08-17 02:05:02.309406: Inverter 0: Type SK Sunsynk
2026-08-17 02:05:02.309453: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:05:02.309639: Reserve min: 7%, battery_min: 7%
2026-08-17 02:05:02.309715: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:05:02.309998: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -518W, load power 517W, PV Power 0W
2026-08-17 02:05:02.310159: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:05:02.310249: Inverter 0 scheduled charge enable is True
2026-08-17 02:05:02.310297: 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-17 02:05:02.310432: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:05:02.310559: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:05:02.310594: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:05:02.310631: Inverter 0 scheduled discharge enable is False
2026-08-17 02:05:02.310758: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:05:02.310794: Inverter 0 discharge windows currently []
2026-08-17 02:05:02.310816: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:05:02.310838: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:05:02.310856: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:05:02.375621: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:05:02.375706: Will recompute the plan as it is invalid
2026-08-17 02:05:02.375814: Recompute is saving previous plan...
2026-08-17 02:05:02.376782: Best charge window [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66% ]
2026-08-17 02:05:02.376833: Best export window [  ]
2026-08-17 02:05:02.377670: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:05:02.380727: Load divergence over 8.0 hours mean 451.16W, min 271.2W, max 1525.8W, std dev 236.35W, divergence 26.19%
2026-08-17 02:05:02.397590: Calculating data from yesterday for savings calculation
2026-08-17 02:05:02.408877: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1565, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 02:05:02.454745: predict yesterday end_record 08-18 00:00:00, final soc 9.96kWh, metric 147.87p, metric_keep 0kWh, min_soc 7.63kWh @ 08-17 23:25:00, load 11.46kWh, PV 0.0kWh
2026-08-17 02:05:02.470950: predict yesterday10 end_record 08-18 00:00:00, final soc 9.57kWh, metric 144.53p, metric_keep 0kWh, min_soc 7.63kWh @ 08-17 23:25:00, load 11.46kWh, PV 0.0kWh
2026-08-17 02:05:02.493850: predict yesterday end_record 08-18 00:00:00, final soc 9.96kWh, metric 147.87p, metric_keep 0kWh, min_soc 7.63kWh @ 08-17 23:25:00, load 11.46kWh, PV 0.0kWh
2026-08-17 02:05:02.519062: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.65kWh, export 0.0kWh, battery_cycle 16.74kWh, start_soc 9.96kWh,  final_soc 9.96kWh and battery_value 68.45kWh
2026-08-17 02:05:02.587114: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 302.56p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.46kWh, PV 0.0kWh
2026-08-17 02:05:02.587275: Yesterday: No Battery/PV system cost predicted was £3.03 (adjusted £3.03) vs £3.17 (adjusted £2.5), saving £-0.15 (adjusted £0.52) with import 11.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 02:05:02.598184: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:05:02.598308: LoadML is_calculating False
2026-08-17 02:05:02.598397: Creating pool of 12 processes to match your CPU count
2026-08-17 02:05:02.702156: 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 02:05:02.703420: Optimise levels pass started at 2026-08-17 02:05:02
2026-08-17 02:05:02.703500: Optimise all windows, total charge 25 export 1
2026-08-17 02:05:03.352571: >> Region optimisation pass width 960 gives best_metric 221.21p, best_cost 224.06p, best_cycle 37.24kWh, best_import 21.28kWh
2026-08-17 02:05:03.533981: >> Region optimisation pass width 480 gives best_metric 221.21p, best_cost 224.06p, best_cycle 37.24kWh, best_import 21.28kWh
2026-08-17 02:05:03.819535: >> Region optimisation pass width 240 gives best_metric 221.21p, best_cost 224.06p, best_cycle 37.24kWh, best_import 21.28kWh
2026-08-17 02:05:04.465611: >> Region optimisation pass width 120 gives best_metric 221.21p, best_cost 224.06p, best_cycle 37.24kWh, best_import 21.28kWh
2026-08-17 02:05:04.466166: Calculated end_record as 08-18 02:30:00 based on best_price 8.0p, next_charge_start 08-17 02:30:00, max_windows 14
2026-08-17 02:05:04.466264: Optimise levels pass ended at 2026-08-17 02:05:04, duration 1.8 seconds tried 62 combinations
2026-08-17 02:05:04.466349: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 221.21p, best_keep 3.17kWh, best_cycle 37.24kWh, best_carbon 0kg, best_import 21.28kWh
2026-08-17 02:05:04.483653: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:05:09.283798: Tweak plan optimisation started metric 74.28p, cost 87.66p
2026-08-17 02:05:09.546177: Tweak optimisation finished metric 74.28p, cost 87.66p, metric_keep 0kWh, cycle 9.13kWh, carbon 0kg, import 4.23kWh, changed 8 window(s)
2026-08-17 02:05:09.567214: Swap charge optimisation started metric 74.28p, cost 87.66p, min_improvement_swap 0.1p
2026-08-17 02:05:09.981765: Swap charge optimisation finished metric 74.28p, cost 87.66p
2026-08-17 02:05:10.151914: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 73.54p -> 73.54p, plan now metric 74.29p, cost 87.66p, cycle 9.13kWh, import 4.23kWh
2026-08-17 02:05:10.163113: Raw charge windows [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 02:05:10.163583: Unclipped charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:05:10.163846: Unfiltered charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:05:10.164083: Filtered charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:05:10.206997: Previous plan best metric is 78.18 (cost 107.38) and new plan best metric is 74.28 (cost 87.66)
2026-08-17 02:05:10.207243: New plan metric is significantly better from previous plan, using new plan
2026-08-17 02:05:10.207278: Plan valid is now true after recompute was False
2026-08-17 02:05:10.239810: predict base end_record 08-18 02:30:00, final soc 10.56kWh, metric 207.81p, metric_keep 3.54kWh, min_soc 1.23kWh @ 08-17 23:55:00, load 12.99kWh, PV 0.0kWh
2026-08-17 02:05:10.445126: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:05:10.496999: predict base10 end_record 08-18 02:30:00, final soc 10.56kWh, metric 212.53p, metric_keep 9.91kWh, min_soc 1.12kWh @ 08-17 23:30:00, load 13.56kWh, PV 0.0kWh
2026-08-17 02:05:10.696570: predict best10 end_record 08-18 02:30:00, final soc 2.0kWh, metric 138.93p, metric_keep 0.5kWh, min_soc 1.63kWh @ 08-17 23:55:00, load 13.56kWh, PV 0.0kWh
2026-08-17 02:05:10.786623: predict best end_record 08-18 02:30:00, final soc 2.05kWh, metric 134.3p, metric_keep 0kWh, min_soc 2.05kWh @ 08-17 23:55:00, load 12.99kWh, PV 0.0kWh
2026-08-17 02:05:10.786729: Saving plan best values to HA entities
2026-08-17 02:05:10.983008: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:05:10.989667: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:05:10.997743: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.23kWh, house 0.0kWh, export 0.0kWh, metric 134.3p, metric10 138.93p
2026-08-17 02:05:11.085232: Marginal costs baseline metric (no standing charge): 87.6636
2026-08-17 02:05:11.391401: Marginal energy costs matrix computed: min=8.0 max=29.98
2026-08-17 02:05:11.470187: Rate array import [{'start': 125, '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': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 125, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:05:11.470656: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:05:11.470705: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:05:11.470729: - The battery is currently at 66% and is charging to 66% for the next 2  hours.
2026-08-17 02:05:11.470747: - For the next 48 hours there will be no solar generation.
2026-08-17 02:05:11.470789: - You will reach a minimum of 13% battery in 21 hours.
2026-08-17 02:05:11.470824: - Your car is currently charging.
2026-08-17 02:05:11.470843: 
2026-08-17 02:05:11.526105: Plan calculation took 9.15 seconds
2026-08-17 02:05:11.531087: Saved plan to storage
2026-08-17 02:05:11.534697: No high rate period found
2026-08-17 02:05:11.593991: Import threshold used for optimisation was 8.0p
2026-08-17 02:05:11.647481: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 25: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:05:11.655446: Inverter 0: Type SK Sunsynk
2026-08-17 02:05:11.655547: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:05:11.655865: Reserve min: 7%, battery_min: 7%
2026-08-17 02:05:11.655994: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:05:11.656425: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -518W, load power 518W, PV Power 0W
2026-08-17 02:05:11.656736: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:05:11.656894: Inverter 0 scheduled charge enable is True
2026-08-17 02:05:11.657012: 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-17 02:05:11.657185: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:05:11.657412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:05:11.657475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:05:11.657549: Inverter 0 scheduled discharge enable is False
2026-08-17 02:05:11.657752: Inverter 0 idle time is 08-17 04:30:00-08-17 23:59:00
2026-08-17 02:05:11.657799: Inverter 0 discharge windows currently []
2026-08-17 02:05:11.657824: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:05:11.657858: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:05:11.657909: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:05:11.719867: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:05:11.719999: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:05:11.720133: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:05:11.720246: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:05:11.720415: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:05:11.720615: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:05:11.720690: Inverter 0 set new demand (idle) start time to 05:30:00 was 04:30:00
2026-08-17 02:05:16.729907: Inverter 0 write_and_poll_value: Wrote 05:30:00 to idle_start_time, successfully now 05:30:00
2026-08-17 02:05:21.737130: Inverter 0 write_and_poll_value: Wrote 05:30:00 to charge_end_time, successfully now 05:30:00
2026-08-17 02:05:21.737263: Inverter 0 Updated start and end charge window to 00:00:00 - 05:30:00 (old 00:00:00 - 04:30:00)
2026-08-17 02:05:21.737387: No export window planned
2026-08-17 02:05:21.737761: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:05:21.737838: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:05:21.738082: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:05:21.738220: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:05:21.738297: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:05:21.738399: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:05:21.738549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:21.738775: 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 02:05:21.765565: 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 02:05:21.869221: 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 02:05:21.972940: 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 02:05:22.057215: 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 02:05:22.161046: 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 02:05:22.241260: 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 02:05:22.317700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:05:22.317986: Inverter 0 count register writes 0
2026-08-17 02:05:22.342262: Total inverter register writes now 848
2026-08-17 02:05:22.379059: Info: Completed run status Hold charging
2026-08-17 02:05:22.386480: Info: record_status Hold charging target 66%-66%
2026-08-17 02:05:22.393734: Saved current settings to /config/predbat_config.json
2026-08-17 02:05:22.394078: Compare, best tariff: current metric 104.68p
2026-08-17 02:05:27.316617: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 02:05:28.380553: Processing 1345 30-minute periods for power integration
2026-08-17 02:05:28.473297: ML Component: Car charging hold False, car energy reported load False
2026-08-17 02:05:28.559938: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:05:28.651761: ML Temperature data points: 50276
2026-08-17 02:05:28.932752: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 02:05:28.973680: ML Component: Data fetch completed, load data age 58.0 days, 16849 data points
2026-08-17 02:05:28.973805: ML Component: Starting fine-tune training (2h interval), model age is 2.0687049344444444 hours
2026-08-17 02:05:28.973831: ML Component: Doing training...
2026-08-17 02:05:28.990851: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-17 02:05:28.990991: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.5 days)
2026-08-17 02:05:29.052679: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-17 02:05:29.052851: ML Predictor: Starting initial training with 30 epochs
2026-08-17 02:05:29.608923: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-17 02:05:34.106414: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-17 02:05:34.167990: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0482) load(mean=0.0588 std=0.0472) 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 02:06:03.389390: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:06:03.389855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:06:03.389930: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:06:03.390115: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:06:03.390165: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:06:03.390193: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:06:03.390312: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:06:05.380281: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0055 val_mae=0.0029 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 02:06:31.397786: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0074 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0023 kWh ema_combined=0.0018 kWh
2026-08-17 02:06:57.988568: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0074 val_mae=0.0023 kWh val_bias=+0.0009 kWh (+1.2%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 02:07:25.460114: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0081 val_mae=0.0034 kWh val_bias=-0.0016 kWh (-2.2%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-17 02:07:52.156415: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0095 val_mae=0.0032 kWh val_bias=-0.0018 kWh (-2.5%) combined=0.0028 kWh ema_combined=0.0021 kWh
2026-08-17 02:08:03.846815: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:08:03.847151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:08:03.847317: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:08:03.847601: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:08:03.847660: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:08:03.847742: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:08:03.847818: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:08:18.708203: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0094 val_mae=0.0026 kWh val_bias=+0.0010 kWh (+1.4%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 02:08:49.503928: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0086 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-17 02:09:16.291549: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0082 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 02:09:41.914867: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0103 val_mae=0.0035 kWh val_bias=-0.0017 kWh (-2.4%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-17 02:10:00.237764: --------------- PredBat - update at 2026-08-17 02:10:00+01:00 with clock skew 0 minutes, minutes now 130
2026-08-17 02:10:00.239207: Saved current settings to /config/predbat_config.json
2026-08-17 02:10:00.239609: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 02:10:00.239874: 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 02:10:00.240129: 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 02:10:00.295025: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:10:00.295401: days_previous_auto enabled - will 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 02:10:00.295822: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:10:00.296682: 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 02:10:00.297035: Predbat mode is set to Control charge & discharge
2026-08-17 02:10:00.623558: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:10:00.623961: Using load_power data to fill gaps in load_today data
2026-08-17 02:10:02.018581: Processing 721 30-minute periods for power integration
2026-08-17 02:10:02.177395: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:10:02.177568: Car charging hold False, threshold 6.0kWh
2026-08-17 02:10:02.177610: Current data so far today: load 1.03kWh, import 1.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:10:02.191252: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:10:02.192746: Cars: SoC: [39.848]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:10:02.193809: Standing charge is set to 46.63p
2026-08-17 02:10:02.492759: 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 02:10:02.521458: 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 02:10:02.521684: 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 02:10:02.521884: 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 02:10:02.522071: 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 02:10:02.522258: 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 02:10:02.522469: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:10:02.522654: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.522834: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.522932: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.523022: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.537513: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.537651: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.537732: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.537974: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:10:02.538049: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:10:02.544563: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:10:02.544972: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:10:02.617547: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:10:02.617684: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:10:02.618907: High export rate found rates in range 99p to -99p
2026-08-17 02:10:02.646775: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:10:02.647013: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:10:02.647116: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:10:02.665208: 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 02:10:02.665665: Last hour: net energy 0.53kWh, import 0.53kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 4.2p, import 4.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:10:02.731741: Today's energy total net 1.0kWh, import 1.0kWh, export 0.0kWh, cost 54.63p, import 8.0p, export 0.0p, carbon 0.0kg
2026-08-17 02:10:02.731880: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:10:02.826787: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:10:02.853204: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:10:02.853353: Today's predicted so far 1.93kWh with 0.0kWh car/iBoost excluded, 0.13kWh import ignored, and 1.93kWh forecast extra.
2026-08-17 02:10:02.853406: Today's actual load so far 1.02kWh with 0.0kWh car/iBoost excluded, and 0.13kWh import ignored.
2026-08-17 02:10:02.917406: Inverter 0: Type SK Sunsynk
2026-08-17 02:10:02.917681: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:10:02.918030: Reserve min: 7%, battery_min: 7%
2026-08-17 02:10:02.918232: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:10:02.918709: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -530W, load power 524W, PV Power 0W
2026-08-17 02:10:02.919018: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:10:02.919237: Inverter 0 scheduled charge enable is True
2026-08-17 02:10:02.919423: 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 02:10:02.919661: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:10:02.919935: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:10:02.920086: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:10:02.920241: Inverter 0 scheduled discharge enable is False
2026-08-17 02:10:02.920590: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:10:02.920779: Inverter 0 discharge windows currently []
2026-08-17 02:10:02.920925: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:10:02.924990: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:10:02.925051: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:10:03.056237: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:10:03.056373: Plan was last updated on 2026-08-17 02:05:00+01:00 and is now 5.0 minutes old
2026-08-17 02:10:03.056640: Best charge window [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ]
2026-08-17 02:10:03.056684: Best export window [  ]
2026-08-17 02:10:03.057744: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:10:03.061595: Load divergence over 8.0 hours mean 460.49W, min 292.2W, max 1566.6W, std dev 258.55W, divergence 28.07%
2026-08-17 02:10:03.104343: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:10:03.117075: LoadML is_calculating True
2026-08-17 02:10:03.117309: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:10:03.171468: predict base end_record 08-18 02:35:00, final soc 10.56kWh, metric 208.41p, metric_keep 0.64kWh, min_soc 1.58kWh @ 08-17 23:55:00, load 13.14kWh, PV 0.0kWh
2026-08-17 02:10:03.386752: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:10:03.501850: predict base10 end_record 08-18 02:35:00, final soc 10.56kWh, metric 213.52p, metric_keep 3.99kWh, min_soc 1.15kWh @ 08-17 23:55:00, load 13.71kWh, PV 0.0kWh
2026-08-17 02:10:03.658922: predict best10 end_record 08-18 02:35:00, final soc 2.32kWh, metric 142.76p, metric_keep 0.58kWh, min_soc 1.59kWh @ 08-17 23:55:00, load 13.71kWh, PV 0.0kWh
2026-08-17 02:10:03.832260: predict best end_record 08-18 02:35:00, final soc 2.41kWh, metric 138.38p, metric_keep 0kWh, min_soc 2.02kWh @ 08-17 23:55:00, load 13.14kWh, PV 0.0kWh
2026-08-17 02:10:03.832383: Saving plan best values to HA entities
2026-08-17 02:10:04.192677: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:10:04.200078: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:10:04.207371: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.64kWh, house 0.0kWh, export 0.0kWh, metric 138.38p, metric10 142.76p
2026-08-17 02:10:04.333537: Marginal costs baseline metric (no standing charge): 91.7474
2026-08-17 02:10:04.647943: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 02:10:04.747193: Rate array import [{'start': 130, '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': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 130, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:10:04.747794: - Your estimated bill for today is £0.70 and tomorrow is £2.22
2026-08-17 02:10:04.747849: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:10:04.747876: - The battery is currently at 66% and is charging to 66% for the next 2 and three quarters hours.
2026-08-17 02:10:04.747995: - For the next 48 hours there will be no solar generation.
2026-08-17 02:10:04.748041: - You will reach a minimum of 13% battery in 21 hours.
2026-08-17 02:10:04.748108: - Your car is currently charging.
2026-08-17 02:10:04.748147: 
2026-08-17 02:10:04.791752: Plan calculation took 1.74 seconds
2026-08-17 02:10:04.796647: No high rate period found
2026-08-17 02:10:04.874133: Import threshold used for optimisation was 8.0p
2026-08-17 02:10:04.984490: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 25: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:10:04.994975: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:10:04.995162: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:10:04.995335: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:10:04.995436: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:10:04.995593: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:10:04.995836: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:10:04.995961: No export window planned
2026-08-17 02:10:04.996091: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:10:04.996137: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:10:04.996330: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:10:04.996431: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:10:04.996499: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:10:04.996555: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:10:04.996670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:04.996723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:04.996760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.005401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.021190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.021557: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.021822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.022115: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.022388: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.022643: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.022892: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.023128: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.023374: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.023609: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.023933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.024168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.024746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.024985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.025185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.025392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.025612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:10:05.025795: Inverter 0 count register writes 0
2026-08-17 02:10:05.069970: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:10:05.078242: Total inverter register writes now 848
2026-08-17 02:10:05.133128: Info: Completed run status Hold charging
2026-08-17 02:10:05.143433: Info: record_status Hold charging target 66%-66%
2026-08-17 02:10:05.152901: Saved current settings to /config/predbat_config.json
2026-08-17 02:10:05.153092: Compare, best tariff: current metric 104.68p
2026-08-17 02:10:11.475622: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0041 kWh val_bias=-0.0016 kWh (-2.3%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-17 02:10:40.476168: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0079 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-17 02:10:40.476462: ML Predictor: Early stopping at epoch 11
2026-08-17 02:10:40.478040: ML Predictor: Restored best weights from epoch with val_mae=0.0029 kWh val_bias=-0.0011 kWh (-1.5%)
2026-08-17 02:10:40.478355: ML Predictor: Training complete, final val_mae=0.0029 kWh val_bias=-0.0011 kWh (-1.5%)
2026-08-17 02:10:44.767659: ML Predictor: AR rollout over holdout: ar_mae=0.0033 kWh ar_bias=-0.0011 kWh (-1.5%) [drift vs teacher-forced: +0.0004 kWh]
2026-08-17 02:10:44.790716: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0029 kWh
2026-08-17 02:10:44.875744: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-17 02:10:44.876054: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 02:10:45.559245: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 02:10:48.869655: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:10:48.875159: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:10:48.885622: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:10:48.891107: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:10:48.896385: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:10:48.901590: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:10:48.906766: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:10:50.103795: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 02:10:50.155897: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0589 std=0.0473) 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 02:10:50.234684: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 02:10:50.249122: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 02:10:50.307096: ML Predictor: Baseline (pre-finetune) val_mae=0.0034 kWh val_bias=-0.0017 kWh
2026-08-17 02:11:16.531950: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0084 val_mae=0.0035 kWh val_bias=+0.0012 kWh (+1.3%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-17 02:11:44.571493: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0087 val_mae=0.0041 kWh val_bias=+0.0017 kWh (+1.9%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-17 02:12:11.917063: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0101 val_mae=0.0045 kWh val_bias=-0.0020 kWh (-2.3%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 02:12:39.919783: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0133 val_mae=0.0051 kWh val_bias=+0.0023 kWh (+2.6%) combined=0.0040 kWh ema_combined=0.0031 kWh
2026-08-17 02:12:49.087935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:12:49.088239: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:12:49.088302: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:12:49.088450: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:12:49.088492: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:12:49.088515: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:12:49.088614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:13:06.735678: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0121 val_mae=0.0037 kWh val_bias=-0.0014 kWh (-1.5%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-17 02:13:34.702448: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0096 val_mae=0.0044 kWh val_bias=+0.0017 kWh (+1.9%) combined=0.0033 kWh ema_combined=0.0030 kWh
2026-08-17 02:14:02.455118: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0104 val_mae=0.0043 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-17 02:14:29.016472: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0100 val_mae=0.0035 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-17 02:14:51.529570: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 02:14:51.690474: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 02:14:55.605488: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0042 kWh val_bias=-0.0023 kWh (-2.6%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-17 02:15:00.458036: --------------- PredBat - update at 2026-08-17 02:15:00+01:00 with clock skew 0 minutes, minutes now 135
2026-08-17 02:15:00.458971: Saved current settings to /config/predbat_config.json
2026-08-17 02:15:00.459182: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 02:15:00.459406: 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 02:15:00.459563: 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 02:15:00.496463: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:15:00.496741: days_previous_auto enabled - will 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 02:15:00.497060: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:15:00.497706: 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 02:15:00.497949: Predbat mode is set to Control charge & discharge
2026-08-17 02:15:00.828487: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:15:00.828891: Using load_power data to fill gaps in load_today data
2026-08-17 02:15:02.178728: Processing 721 30-minute periods for power integration
2026-08-17 02:15:02.482790: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:15:02.482916: Car charging hold False, threshold 6.0kWh
2026-08-17 02:15:02.483027: Current data so far today: load 1.05kWh, import 1.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:15:02.496468: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:15:02.496557: Cars: SoC: [40.434]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:15:02.497290: Standing charge is set to 46.63p
2026-08-17 02:15:02.737814: 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 02:15:02.739328: 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 02:15:02.739796: 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 02:15:02.746712: 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 02:15:02.747178: 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 02:15:02.748002: 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 02:15:02.748422: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:15:02.748795: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.749196: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.749480: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.749783: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.750094: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.750361: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.750601: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.750970: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:15:02.751163: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:15:02.765106: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:15:02.770011: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:15:02.809675: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:15:02.809860: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:15:02.811111: High export rate found rates in range 99p to -99p
2026-08-17 02:15:02.834777: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:15:02.834892: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:15:02.834950: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:15:02.854249: 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 02:15:02.854761: 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-17 02:15:02.928594: Today's energy total net 1.0kWh, import 1.0kWh, export 0.0kWh, cost 54.63p, import 8.0p, export 0.0p, carbon 0.0kg
2026-08-17 02:15:02.928813: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:15:03.139612: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:15:03.171373: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:15:03.171468: Today's predicted so far 1.94kWh with 0.0kWh car/iBoost excluded, 0.14kWh import ignored, and 1.94kWh forecast extra.
2026-08-17 02:15:03.171494: Today's actual load so far 1.03kWh with 0.0kWh car/iBoost excluded, and 0.14kWh import ignored.
2026-08-17 02:15:03.212610: Inverter 0: Type SK Sunsynk
2026-08-17 02:15:03.212721: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:15:03.212990: Reserve min: 7%, battery_min: 7%
2026-08-17 02:15:03.213092: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:15:03.213423: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -529W, load power 521W, PV Power 0W
2026-08-17 02:15:03.213593: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:15:03.213676: Inverter 0 scheduled charge enable is True
2026-08-17 02:15:03.213722: 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 02:15:03.213797: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:15:03.213899: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:15:03.213930: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:15:03.213962: Inverter 0 scheduled discharge enable is False
2026-08-17 02:15:03.214070: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:15:03.214104: Inverter 0 discharge windows currently []
2026-08-17 02:15:03.214122: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:15:03.214137: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:15:03.214151: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:15:03.317766: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:15:03.317869: Plan was last updated on 2026-08-17 02:05:00+01:00 and is now 10.0 minutes old
2026-08-17 02:15:03.318077: Best charge window [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ]
2026-08-17 02:15:03.318128: Best export window [  ]
2026-08-17 02:15:03.318777: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:15:03.321547: Load divergence over 8.0 hours mean 469.52W, min 259.8W, max 1533.0W, std dev 269.89W, divergence 28.74%
2026-08-17 02:15:03.361440: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:15:03.361578: LoadML is_calculating True
2026-08-17 02:15:03.361602: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:15:03.410707: predict base end_record 08-18 02:40:00, final soc 10.56kWh, metric 208.58p, metric_keep 0.67kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 13.18kWh, PV 0.0kWh
2026-08-17 02:15:03.691160: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:15:03.754157: predict base10 end_record 08-18 02:40:00, final soc 10.56kWh, metric 213.69p, metric_keep 3.99kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 13.76kWh, PV 0.0kWh
2026-08-17 02:15:03.828486: predict best10 end_record 08-18 02:40:00, final soc 2.65kWh, metric 145.7p, metric_keep 0.6kWh, min_soc 1.57kWh @ 08-17 23:55:00, load 13.76kWh, PV 0.0kWh
2026-08-17 02:15:03.990893: predict best end_record 08-18 02:40:00, final soc 2.78kWh, metric 141.7p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-17 23:55:00, load 13.18kWh, PV 0.0kWh
2026-08-17 02:15:03.991019: Saving plan best values to HA entities
2026-08-17 02:15:04.294610: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:15:04.302252: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:15:04.310392: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 5.05kWh, house 0.0kWh, export 0.0kWh, metric 141.7p, metric10 145.7p
2026-08-17 02:15:04.504899: Marginal costs baseline metric (no standing charge): 95.0682
2026-08-17 02:15:04.799698: Marginal energy costs matrix computed: min=8.0 max=30.05
2026-08-17 02:15:04.870375: Rate array import [{'start': 135, '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': 1600, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 135, 'end': 1600, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:15:04.871056: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:15:04.871115: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:15:04.871171: - The battery is currently at 66% and is charging to 66% for the next 2 and three quarters hours.
2026-08-17 02:15:04.871197: - For the next 48 hours there will be no solar generation.
2026-08-17 02:15:04.871212: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:15:04.871308: - Your car is currently charging.
2026-08-17 02:15:04.871427: 
2026-08-17 02:15:04.903581: Plan calculation took 1.59 seconds
2026-08-17 02:15:04.920741: No high rate period found
2026-08-17 02:15:05.035186: Import threshold used for optimisation was 8.0p
2026-08-17 02:15:05.207236: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 25: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:15:05.217257: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:15:05.217556: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:15:05.217808: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:15:05.217967: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:15:05.218246: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:15:05.218541: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:15:05.218750: No export window planned
2026-08-17 02:15:05.218943: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:15:05.219068: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:15:05.219356: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:15:05.219543: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:15:05.219679: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:15:05.219827: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:15:05.220005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.220902: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221041: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221168: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221326: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221458: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221561: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.221682: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.222940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:05.223092: Inverter 0 count register writes 0
2026-08-17 02:15:05.246451: 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 02:15:05.246782: Recompute is saving previous plan...
2026-08-17 02:15:05.247901: Best charge window [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66% ]
2026-08-17 02:15:05.248093: Best export window [  ]
2026-08-17 02:15:05.249548: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:15:05.257361: Load divergence over 8.0 hours mean 469.52W, min 259.8W, max 1533.0W, std dev 269.89W, divergence 28.74%
2026-08-17 02:15:05.293617: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:15:05.293893: LoadML is_calculating True
2026-08-17 02:15:05.294061: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:15:05.307617: 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 02:15:05.308308: Optimise levels pass started at 2026-08-17 02:15:05
2026-08-17 02:15:05.308515: Optimise all windows, total charge 25 export 1
2026-08-17 02:15:09.268035: >> Region optimisation pass width 960 gives best_metric 222.72p, best_cost 224.92p, best_cycle 37.26kWh, best_import 21.29kWh
2026-08-17 02:15:09.530515: >> Region optimisation pass width 480 gives best_metric 222.72p, best_cost 224.92p, best_cycle 37.26kWh, best_import 21.29kWh
2026-08-17 02:15:10.000452: >> Region optimisation pass width 240 gives best_metric 222.72p, best_cost 224.92p, best_cycle 37.26kWh, best_import 21.29kWh
2026-08-17 02:15:11.443835: >> Region optimisation pass width 120 gives best_metric 222.72p, best_cost 224.92p, best_cycle 37.26kWh, best_import 21.29kWh
2026-08-17 02:15:11.444140: Calculated end_record as 08-18 02:30:00 based on best_price 8.0p, next_charge_start 08-17 02:30:00, max_windows 14
2026-08-17 02:15:11.444250: Optimise levels pass ended at 2026-08-17 02:15:11, duration 6.1 seconds tried 62 combinations
2026-08-17 02:15:11.444320: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 222.72p, best_keep 3.83kWh, best_cycle 37.26kWh, best_carbon 0kg, best_import 21.29kWh
2026-08-17 02:15:11.473276: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:15:32.711244: Tweak plan optimisation started metric 74.76p, cost 87.91p
2026-08-17 02:15:34.243103: Tweak optimisation finished metric 74.29p, cost 87.44p, metric_keep 0kWh, cycle 9.37kWh, carbon 0kg, import 4.1kWh, changed 8 window(s)
2026-08-17 02:15:34.261188: Swap charge optimisation started metric 74.29p, cost 87.44p, min_improvement_swap 0.1p
2026-08-17 02:15:35.050532: Swap charge optimisation finished metric 74.29p, cost 87.44p
2026-08-17 02:15:35.402078: Raw charge windows [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 16%, 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 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 02:15:35.413885: Unclipped charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 16%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:15:35.414494: Unfiltered charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 16%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:15:35.415024: Filtered charge windows [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 16%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:15:35.471385: Previous plan best metric is 74.16 (cost 87.16) and new plan best metric is 74.29 (cost 87.44)
2026-08-17 02:15:35.471716: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 02:15:35.471892: Plan valid is now true after recompute was False
2026-08-17 02:15:35.508060: predict base end_record 08-18 02:30:00, final soc 10.56kWh, metric 207.34p, metric_keep 0.67kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 13.02kWh, PV 0.0kWh
2026-08-17 02:15:35.652861: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:15:35.717322: predict base10 end_record 08-18 02:30:00, final soc 10.56kWh, metric 212.37p, metric_keep 3.99kWh, min_soc 1.13kWh @ 08-17 23:55:00, load 13.59kWh, PV 0.0kWh
2026-08-17 02:15:35.902393: predict best10 end_record 08-18 02:30:00, final soc 2.0kWh, metric 138.85p, metric_keep 0.6kWh, min_soc 1.57kWh @ 08-17 23:55:00, load 13.59kWh, PV 0.0kWh
2026-08-17 02:15:36.084972: predict best end_record 08-18 02:30:00, final soc 2.0kWh, metric 133.8p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-17 23:55:00, load 13.02kWh, PV 0.0kWh
2026-08-17 02:15:36.085092: Saving plan best values to HA entities
2026-08-17 02:15:36.434501: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:15:36.443477: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:15:36.452616: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.07kWh, house 0.0kWh, export 0.0kWh, metric 133.8p, metric10 138.85p
2026-08-17 02:15:36.570352: Marginal costs baseline metric (no standing charge): 87.1624
2026-08-17 02:15:36.969194: Marginal energy costs matrix computed: min=8.0 max=30.05
2026-08-17 02:15:37.112416: Rate array import [{'start': 135, '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': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 135, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:15:37.113120: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:15:37.113178: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:15:37.113255: - The battery is currently at 66% and is charging to 66% for the next 2 and three quarters hours.
2026-08-17 02:15:37.113294: - For the next 48 hours there will be no solar generation.
2026-08-17 02:15:37.113358: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:15:37.113382: - Your car is currently charging.
2026-08-17 02:15:37.113432: 
2026-08-17 02:15:37.146353: Plan calculation took 31.90 seconds
2026-08-17 02:15:37.146648: Inverter 0: Type SK Sunsynk
2026-08-17 02:15:37.146699: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:15:37.146888: Reserve min: 7%, battery_min: 7%
2026-08-17 02:15:37.146963: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:15:37.147256: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -541W, load power 535W, PV Power 0W
2026-08-17 02:15:37.147499: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:15:37.147664: Inverter 0 scheduled charge enable is True
2026-08-17 02:15:37.147722: 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 02:15:37.147867: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:15:37.148094: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:15:37.149026: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:15:37.149097: Inverter 0 scheduled discharge enable is False
2026-08-17 02:15:37.165199: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:15:37.165318: Inverter 0 discharge windows currently []
2026-08-17 02:15:37.165351: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:15:37.165456: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:15:37.165496: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:15:37.284859: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:15:37.285019: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:15:37.285182: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:15:37.285404: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:15:37.285623: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:15:37.285814: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:15:37.286044: No export window planned
2026-08-17 02:15:37.286157: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:15:37.286195: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:15:37.286357: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:15:37.286438: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:15:37.286493: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:15:37.286549: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:15:37.286637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.286678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.286706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287406: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287453: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287552: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287597: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287697: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287740: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.287810: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.290960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:15:37.291556: Inverter 0 count register writes 0
2026-08-17 02:15:37.362383: Total inverter register writes now 848
2026-08-17 02:15:37.454286: Info: Completed run status Hold charging
2026-08-17 02:15:37.462029: Info: record_status Hold charging target 66%-66%
2026-08-17 02:15:37.480993: Saved current settings to /config/predbat_config.json
2026-08-17 02:15:37.481362: Compare, best tariff: current metric 104.68p
2026-08-17 02:15:45.476158: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0079 val_mae=0.0028 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0026 kWh
2026-08-17 02:15:55.667810: Info: HAHistory: Pruning history data started.
2026-08-17 02:15:55.671020: Info: HAHistory: Pruning history data completed.
2026-08-17 02:16:12.467916: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0074 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-17 02:16:18.671609: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:16:18.671911: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:16:18.672013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:16:18.672190: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:16:18.672252: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:16:18.672274: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:16:18.672293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:16:39.619251: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0080 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-17 02:17:05.192476: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0069 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 02:17:33.232120: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0070 val_mae=0.0037 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0031 kWh ema_combined=0.0023 kWh
2026-08-17 02:18:00.835932: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0063 val_mae=0.0030 kWh val_bias=-0.0012 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-17 02:18:19.122809: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:18:19.123095: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:18:19.123238: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:18:19.123472: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:18:19.123521: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:18:19.123580: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:18:19.123665: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:18:28.527981: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0069 val_mae=0.0027 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0020 kWh
2026-08-17 02:18:55.623661: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0060 val_mae=0.0026 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-17 02:19:25.443630: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-17 02:19:52.884319: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0053 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-17 02:20:00.459204: --------------- PredBat - update at 2026-08-17 02:20:00+01:00 with clock skew 0 minutes, minutes now 140
2026-08-17 02:20:00.460074: Saved current settings to /config/predbat_config.json
2026-08-17 02:20:00.460234: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 02:20:00.460372: 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 02:20:00.460481: 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 02:20:00.494235: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:20:00.494371: days_previous_auto enabled - will 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 02:20:00.494568: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:20:00.495109: 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 02:20:00.495252: Predbat mode is set to Control charge & discharge
2026-08-17 02:20:00.793492: Found 21602 load_today datapoints going back 27 days
2026-08-17 02:20:00.793645: Using load_power data to fill gaps in load_today data
2026-08-17 02:20:02.012414: Processing 721 30-minute periods for power integration
2026-08-17 02:20:02.270183: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:20:02.270676: Car charging hold False, threshold 6.0kWh
2026-08-17 02:20:02.270853: Current data so far today: load 1.15kWh, import 1.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:20:02.321074: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:20:02.324216: Cars: SoC: [41.02]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:20:02.325790: Standing charge is set to 46.63p
2026-08-17 02:20:02.543893: 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 02:20:02.544285: 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 02:20:02.544577: 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 02:20:02.544884: 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 02:20:02.545330: 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 02:20:02.545578: 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 02:20:02.545934: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:20:02.546353: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.546589: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.546778: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.546939: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.547047: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.547250: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.547348: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.547550: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:20:02.548443: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:20:02.565770: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:20:02.566321: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:20:02.630938: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:20:02.631047: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:20:02.632122: High export rate found rates in range 99p to -99p
2026-08-17 02:20:02.668572: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:20:02.677561: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:20:02.677715: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:20:02.712927: 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 02:20:02.713294: 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-17 02:20:02.812175: Today's energy total net 1.0kWh, import 1.0kWh, export 0.0kWh, cost 54.63p, import 8.0p, export 0.0p, carbon 0.0kg
2026-08-17 02:20:02.812303: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:20:02.910617: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:20:02.930744: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:20:02.930952: Today's predicted so far 1.98kWh with 0.0kWh car/iBoost excluded, 0.13kWh import ignored, and 1.98kWh forecast extra.
2026-08-17 02:20:02.931315: Today's actual load so far 1.12kWh with 0.0kWh car/iBoost excluded, and 0.13kWh import ignored.
2026-08-17 02:20:02.988510: Inverter 0: Type SK Sunsynk
2026-08-17 02:20:02.988718: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:20:02.988995: Reserve min: 7%, battery_min: 7%
2026-08-17 02:20:02.989157: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:20:02.989496: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -591W, load power 586W, PV Power 0W
2026-08-17 02:20:02.989742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:20:02.989901: Inverter 0 scheduled charge enable is True
2026-08-17 02:20:02.990016: 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 02:20:02.990195: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:20:02.990438: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:20:02.990546: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:20:02.990684: Inverter 0 scheduled discharge enable is False
2026-08-17 02:20:02.990889: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:20:02.990996: Inverter 0 discharge windows currently []
2026-08-17 02:20:02.991076: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:20:02.991170: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:20:02.991251: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:20:03.060408: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:20:03.060644: Plan was last updated on 2026-08-17 02:15:00+01:00 and is now 5.0 minutes old
2026-08-17 02:20:03.060967: Best charge window [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ]
2026-08-17 02:20:03.061089: Best export window [  ]
2026-08-17 02:20:03.061844: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:20:03.064421: Load divergence over 8.0 hours mean 479.09W, min 260.4W, max 1482.6W, std dev 283.66W, divergence 29.6%
2026-08-17 02:20:03.080721: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:20:03.080941: LoadML is_calculating True
2026-08-17 02:20:03.081080: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:20:03.114742: predict base end_record 08-18 02:35:00, final soc 10.56kWh, metric 207.51p, metric_keep 0.67kWh, min_soc 1.54kWh @ 08-17 23:55:00, load 13.14kWh, PV 0.0kWh
2026-08-17 02:20:03.273401: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:20:03.390613: predict base10 end_record 08-18 02:35:00, final soc 10.56kWh, metric 212.56p, metric_keep 3.96kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.71kWh, PV 0.0kWh
2026-08-17 02:20:03.541661: predict best10 end_record 08-18 02:35:00, final soc 2.32kWh, metric 141.81p, metric_keep 0.61kWh, min_soc 1.55kWh @ 08-17 23:55:00, load 13.71kWh, PV 0.0kWh
2026-08-17 02:20:03.656757: predict best end_record 08-18 02:35:00, final soc 2.39kWh, metric 137.3p, metric_keep 0.01kWh, min_soc 1.98kWh @ 08-17 23:55:00, load 13.14kWh, PV 0.0kWh
2026-08-17 02:20:03.659076: Saving plan best values to HA entities
2026-08-17 02:20:03.992929: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:20:04.014471: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:20:04.025997: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.5kWh, house 0.0kWh, export 0.0kWh, metric 137.3p, metric10 141.81p
2026-08-17 02:20:04.155662: Marginal costs baseline metric (no standing charge): 90.6687
2026-08-17 02:20:04.533829: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 02:20:04.630286: Rate array import [{'start': 140, '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': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 140, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:20:04.631026: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:20:04.631304: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:20:04.631370: - The battery is currently at 66% and is charging to 66% for the next 2 and three quarters hours.
2026-08-17 02:20:04.631405: - For the next 48 hours there will be no solar generation.
2026-08-17 02:20:04.631542: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:20:04.631600: - Your car is currently charging.
2026-08-17 02:20:04.631635: 
2026-08-17 02:20:04.689619: Plan calculation took 1.63 seconds
2026-08-17 02:20:04.694597: No high rate period found
2026-08-17 02:20:04.778610: Import threshold used for optimisation was 8.0p
2026-08-17 02:20:04.885050: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 25: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:20:04.895408: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:20:04.895780: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:20:04.896112: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:20:04.896378: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:20:04.896709: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:20:04.897183: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:20:04.897487: No export window planned
2026-08-17 02:20:04.897771: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:20:04.897927: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:20:04.898328: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:20:04.898584: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:20:04.898794: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:20:04.899045: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:20:04.899333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.899544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.899684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.899914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.900052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.900294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.900434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.900680: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.900823: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.901070: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.901233: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.901481: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.901634: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.901874: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.902105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.902350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.902488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.902709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.902846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.903075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.903249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:20:04.913234: Inverter 0 count register writes 0
2026-08-17 02:20:04.956596: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:20:04.972510: Total inverter register writes now 848
2026-08-17 02:20:05.041471: Info: Completed run status Hold charging
2026-08-17 02:20:05.050415: Info: record_status Hold charging target 66%-66%
2026-08-17 02:20:05.060691: Saved current settings to /config/predbat_config.json
2026-08-17 02:20:05.061100: Compare, best tariff: current metric 104.68p
2026-08-17 02:20:21.863492: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0029 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0019 kWh
2026-08-17 02:20:47.787586: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 02:20:49.218154: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:20:49.218626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:20:49.218699: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:20:49.218873: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:20:49.218922: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:20:49.218950: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:20:49.219059: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:21:14.919297: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0051 val_mae=0.0021 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 02:21:42.476592: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-17 02:22:10.616813: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0049 val_mae=0.0021 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 02:22:36.086563: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0018 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 02:23:03.618912: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:23:03.619363: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:23:03.619517: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:23:03.619783: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:23:03.619913: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:23:03.620023: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:23:03.620144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:23:05.420038: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 02:23:32.660289: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 02:24:01.373442: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 02:24:27.451781: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0013 kWh
2026-08-17 02:24:55.479671: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 02:24:55.486637: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.5%)
2026-08-17 02:24:55.497175: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.5%)
2026-08-17 02:25:00.045726: --------------- PredBat - update at 2026-08-17 02:25:00+01:00 with clock skew 0 minutes, minutes now 145
2026-08-17 02:25:00.046687: Saved current settings to /config/predbat_config.json
2026-08-17 02:25:00.046824: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 02:25:00.046907: 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 02:25:00.046989: 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 02:25:00.091153: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:25:00.091377: days_previous_auto enabled - will 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 02:25:00.091773: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:25:00.092483: 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 02:25:00.092637: Predbat mode is set to Control charge & discharge
2026-08-17 02:25:00.623092: Found 21602 load_today datapoints going back 27 days
2026-08-17 02:25:00.623278: Using load_power data to fill gaps in load_today data
2026-08-17 02:25:02.522161: Processing 721 30-minute periods for power integration
2026-08-17 02:25:02.891002: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:25:02.891204: Car charging hold False, threshold 6.0kWh
2026-08-17 02:25:02.905052: Current data so far today: load 1.2kWh, import 1.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:25:02.932714: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:25:02.932852: Cars: SoC: [41.606]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:25:02.935675: Standing charge is set to 46.63p
2026-08-17 02:25:03.237810: 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 02:25:03.248428: 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 02:25:03.248843: 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 02:25:03.249250: 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 02:25:03.249582: 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 02:25:03.249914: 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 02:25:03.250258: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:25:03.250587: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.250901: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.251131: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.251322: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.251530: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.251706: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.251893: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.252252: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:25:03.263729: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:25:03.272052: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:25:03.285484: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:25:03.408156: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:25:03.408416: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0005 kWh (-0.6%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 02:25:03.438225: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0020 kWh
2026-08-17 02:25:03.438384: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:25:03.440548: High export rate found rates in range 99p to -99p
2026-08-17 02:25:03.526132: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:25:03.531445: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:25:03.536704: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:25:03.571528: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-17 02:25:03.571652: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 02:25:03.706956: 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 02:25:03.712521: 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 02:25:04.174850: Today's energy total net 1.0kWh, import 1.0kWh, export 0.0kWh, cost 54.63p, import 8.0p, export 0.0p, carbon 0.0kg
2026-08-17 02:25:04.180191: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:25:04.380762: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:25:04.406420: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 02:25:04.414029: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:25:04.424668: Today's predicted so far 2.02kWh with 0.0kWh car/iBoost excluded, 0.16kWh import ignored, and 2.02kWh forecast extra.
2026-08-17 02:25:04.435703: Today's actual load so far 1.16kWh with 0.0kWh car/iBoost excluded, and 0.16kWh import ignored.
2026-08-17 02:25:04.697829: Inverter 0: Type SK Sunsynk
2026-08-17 02:25:04.703097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:25:04.703391: Reserve min: 7%, battery_min: 7%
2026-08-17 02:25:04.703532: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:25:04.709123: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -594W, load power 586W, PV Power 0W
2026-08-17 02:25:04.709377: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:25:04.709507: Inverter 0 scheduled charge enable is True
2026-08-17 02:25:04.709589: 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 02:25:04.714874: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:25:04.720282: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:25:04.725575: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:25:04.730894: Inverter 0 scheduled discharge enable is False
2026-08-17 02:25:04.731170: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:25:04.731241: Inverter 0 discharge windows currently []
2026-08-17 02:25:04.731311: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:25:04.736512: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:25:04.741761: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:25:05.351970: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:25:05.362391: Plan was last updated on 2026-08-17 02:15:00+01:00 and is now 10.0 minutes old
2026-08-17 02:25:05.367885: Best charge window [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ]
2026-08-17 02:25:05.373123: Best export window [  ]
2026-08-17 02:25:05.374142: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:25:05.377223: Load divergence over 8.0 hours mean 488.62W, min 260.4W, max 1581.6W, std dev 295.07W, divergence 30.19%
2026-08-17 02:25:05.410147: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:25:05.410264: LoadML is_calculating True
2026-08-17 02:25:05.410294: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:25:05.459386: predict base end_record 08-18 02:40:00, final soc 10.56kWh, metric 207.73p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 13.22kWh, PV 0.0kWh
2026-08-17 02:25:06.672025: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:25:06.864247: predict base10 end_record 08-18 02:40:00, final soc 10.56kWh, metric 212.76p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.79kWh, PV 0.0kWh
2026-08-17 02:25:07.397494: predict best10 end_record 08-18 02:40:00, final soc 2.65kWh, metric 144.81p, metric_keep 0.62kWh, min_soc 1.53kWh @ 08-17 23:55:00, load 13.79kWh, PV 0.0kWh
2026-08-17 02:25:07.883846: predict best end_record 08-18 02:40:00, final soc 2.78kWh, metric 140.85p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-17 23:55:00, load 13.22kWh, PV 0.0kWh
2026-08-17 02:25:07.889127: Saving plan best values to HA entities
2026-08-17 02:25:09.569255: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:25:09.626629: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:25:09.689764: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.95kWh, house 0.0kWh, export 0.0kWh, metric 140.85p, metric10 144.81p
2026-08-17 02:25:10.097931: Marginal costs baseline metric (no standing charge): 94.2205
2026-08-17 02:25:10.339756: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 02:25:10.457828: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 02:25:10.519506: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0590 std=0.0474) 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 02:25:10.616569: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 02:25:10.637287: Rate array import [{'start': 145, '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': 1600, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 145, 'end': 1600, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:25:10.638696: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:25:10.638752: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:25:10.638776: - The battery is currently at 66% and is charging to 66% for the next 2 and a half hours.
2026-08-17 02:25:10.638795: - For the next 48 hours there will be no solar generation.
2026-08-17 02:25:10.638812: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:25:10.638829: - Your car is currently charging.
2026-08-17 02:25:10.638847: 
2026-08-17 02:25:10.651862: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 02:25:10.703932: ML Predictor: Baseline (pre-finetune) val_mae=0.0031 kWh val_bias=+0.0005 kWh
2026-08-17 02:25:10.713156: Plan calculation took 5.35 seconds
2026-08-17 02:25:10.717682: No high rate period found
2026-08-17 02:25:10.856789: Import threshold used for optimisation was 8.0p
2026-08-17 02:25:10.984360: Low import rate windows [0: 08-17 02:00:00 - 08-17 02:30:00 @ 8.0, 1: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 2: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 3: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 4: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 5: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 6: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 7: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 8: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 9: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 10: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 11: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 12: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 13: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 14: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 15: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 16: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 17: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 18: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 19: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 20: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 21: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 22: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 23: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 24: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 25: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:25:10.999537: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:25:10.999666: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:25:10.999795: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:25:10.999862: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:25:11.000476: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:25:11.000771: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:25:11.000941: No export window planned
2026-08-17 02:25:11.001184: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:25:11.001239: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:25:11.001448: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:25:11.001582: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:25:11.002186: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:25:11.002378: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:25:11.002590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.002771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.002933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003616: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003739: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003851: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.003967: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004102: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004237: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004386: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.004913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.005103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.005233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.005390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:11.005523: Inverter 0 count register writes 0
2026-08-17 02:25:11.046823: 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 02:25:11.047076: Recompute is saving previous plan...
2026-08-17 02:25:11.062069: Best charge window [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 66%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66% ]
2026-08-17 02:25:11.062218: Best export window [  ]
2026-08-17 02:25:11.063523: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:25:11.068265: Load divergence over 8.0 hours mean 488.62W, min 260.4W, max 1581.6W, std dev 295.07W, divergence 30.19%
2026-08-17 02:25:11.124008: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:25:11.124827: LoadML is_calculating True
2026-08-17 02:25:11.125009: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:25:11.137238: 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 02:25:11.138498: Optimise levels pass started at 2026-08-17 02:25:11
2026-08-17 02:25:11.138694: Optimise all windows, total charge 25 export 1
2026-08-17 02:25:14.917561: >> Region optimisation pass width 960 gives best_metric 223.52p, best_cost 225.14p, best_cycle 37.25kWh, best_import 21.31kWh
2026-08-17 02:25:15.250009: >> Region optimisation pass width 480 gives best_metric 223.52p, best_cost 225.14p, best_cycle 37.25kWh, best_import 21.31kWh
2026-08-17 02:25:15.585178: >> Region optimisation pass width 240 gives best_metric 223.52p, best_cost 225.14p, best_cycle 37.25kWh, best_import 21.31kWh
2026-08-17 02:25:18.892471: >> Region optimisation pass width 120 gives best_metric 220.69p, best_cost 230.02p, best_cycle 38.17kWh, best_import 21.92kWh
2026-08-17 02:25:18.892731: Calculated end_record as 08-18 02:30:00 based on best_price 8.0p, next_charge_start 08-17 02:30:00, max_windows 14
2026-08-17 02:25:18.892794: Optimise levels pass ended at 2026-08-17 02:25:18, duration 7.8 seconds tried 67 combinations
2026-08-17 02:25:18.892857: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 220.69p, best_keep 0.33kWh, best_cycle 38.17kWh, best_carbon 0kg, best_import 21.92kWh
2026-08-17 02:25:18.913805: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:25:40.477433: Tweak plan optimisation started metric 73.57p, cost 86.56p
2026-08-17 02:25:41.193560: Tweak optimisation finished metric 73.57p, cost 86.56p, metric_keep 0.01kWh, cycle 9.77kWh, carbon 0kg, import 3.99kWh, changed 8 window(s)
2026-08-17 02:25:41.222572: Swap charge optimisation started metric 73.57p, cost 86.56p, min_improvement_swap 0.1p
2026-08-17 02:25:42.097527: Swap charge optimisation finished metric 73.57p, cost 86.56p
2026-08-17 02:25:42.317924: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 72.83p -> 72.81p, plan now metric 73.57p, cost 86.55p, cycle 9.75kWh, import 3.99kWh
2026-08-17 02:25:42.331365: Raw charge windows [ 17-08 02:00:00 - 17-08 02:30:00 @ 8.0p 0%, 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 0%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 63%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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% ] reserve 1.12
2026-08-17 02:25:42.332297: Unclipped charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:25:42.332822: Unfiltered charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:25:42.336581: Filtered charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 63%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:25:42.380777: Previous plan best metric is 73.27 (cost 86.27) and new plan best metric is 73.57 (cost 86.56)
2026-08-17 02:25:42.387696: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 02:25:42.388010: Plan valid is now true after recompute was False
2026-08-17 02:25:42.452234: predict base end_record 08-18 02:30:00, final soc 10.56kWh, metric 206.44p, metric_keep 0.69kWh, min_soc 1.52kWh @ 08-17 23:55:00, load 13.06kWh, PV 0.0kWh
2026-08-17 02:25:42.676295: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:25:42.766021: predict base10 end_record 08-18 02:30:00, final soc 10.56kWh, metric 211.4p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-17 23:55:00, load 13.62kWh, PV 0.0kWh
2026-08-17 02:25:42.963571: predict best10 end_record 08-18 02:30:00, final soc 2.0kWh, metric 137.91p, metric_keep 0.62kWh, min_soc 1.53kWh @ 08-17 23:55:00, load 13.62kWh, PV 0.0kWh
2026-08-17 02:25:43.146064: predict best end_record 08-18 02:30:00, final soc 2.0kWh, metric 132.9p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-17 23:55:00, load 13.06kWh, PV 0.0kWh
2026-08-17 02:25:43.146180: Saving plan best values to HA entities
2026-08-17 02:25:43.543270: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:25:43.551866: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:25:43.560043: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.95kWh, house 0.0kWh, export 0.0kWh, metric 132.9p, metric10 137.91p
2026-08-17 02:25:43.672881: Marginal costs baseline metric (no standing charge): 86.2682
2026-08-17 02:25:44.092095: Marginal energy costs matrix computed: min=8.0 max=30.04
2026-08-17 02:25:44.210617: Rate array import [{'start': 145, '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': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 145, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:25:44.211252: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:25:44.211310: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:25:44.211339: - The battery is currently at 66% and is charging to 66% for the next 2 and a half hours.
2026-08-17 02:25:44.211364: - For the next 48 hours there will be no solar generation.
2026-08-17 02:25:44.211400: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:25:44.211433: - Your car is currently charging.
2026-08-17 02:25:44.211458: 
2026-08-17 02:25:44.263546: Plan calculation took 33.22 seconds
2026-08-17 02:25:44.263788: Inverter 0: Type SK Sunsynk
2026-08-17 02:25:44.263914: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:25:44.264175: Reserve min: 7%, battery_min: 7%
2026-08-17 02:25:44.264300: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:25:44.264622: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -594W, load power 586W, PV Power 0W
2026-08-17 02:25:44.264844: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:25:44.265003: Inverter 0 scheduled charge enable is True
2026-08-17 02:25:44.265087: 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 02:25:44.265278: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:25:44.265474: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:25:44.265521: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:25:44.265597: Inverter 0 scheduled discharge enable is False
2026-08-17 02:25:44.265794: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:25:44.265841: Inverter 0 discharge windows currently []
2026-08-17 02:25:44.265897: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:25:44.265931: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:25:44.265982: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:25:44.384708: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:25:44.384844: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:25:44.385010: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:25:44.385112: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:25:44.385230: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:25:44.385418: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:25:44.385520: No export window planned
2026-08-17 02:25:44.385625: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:25:44.385661: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:25:44.385822: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:25:44.385902: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:25:44.385962: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:25:44.386009: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:25:44.386128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386363: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386398: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386431: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386457: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386489: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386514: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386546: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:25:44.386799: Inverter 0 count register writes 0
2026-08-17 02:25:44.438439: Total inverter register writes now 848
2026-08-17 02:25:44.517111: Info: Completed run status Hold charging
2026-08-17 02:25:44.524693: Info: record_status Hold charging target 66%-66%
2026-08-17 02:25:44.532155: Saved current settings to /config/predbat_config.json
2026-08-17 02:25:44.532474: Compare, best tariff: current metric 104.68p
2026-08-17 02:26:01.321691: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0085 val_mae=0.0044 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 02:26:18.681909: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:26:18.682720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:26:18.683112: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:26:18.683482: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:26:18.683708: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:26:18.683888: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:26:18.684085: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:26:30.262714: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0091 val_mae=0.0039 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-17 02:26:57.273751: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0146 val_mae=0.0063 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0037 kWh ema_combined=0.0027 kWh
2026-08-17 02:27:26.968093: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0147 val_mae=0.0042 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-17 02:27:59.075711: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0129 val_mae=0.0043 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-17 02:28:19.124428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:28:19.124875: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:28:19.125073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:28:19.125328: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:28:19.125380: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:28:19.125405: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:28:19.125424: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:28:27.591938: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0104 val_mae=0.0034 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-17 02:28:55.555582: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0080 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-17 02:29:22.532665: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-17 02:29:52.969235: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0090 val_mae=0.0034 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-17 02:30:00.612350: --------------- PredBat - update at 2026-08-17 02:30:00+01:00 with clock skew 0 minutes, minutes now 150
2026-08-17 02:30:00.613462: Saved current settings to /config/predbat_config.json
2026-08-17 02:30:00.613618: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 02:30:00.613851: 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 02:30:00.614026: 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 02:30:00.672804: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:30:00.673051: days_previous_auto enabled - will 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 02:30:00.673332: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:30:00.674076: 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 02:30:00.674976: Predbat mode is set to Control charge & discharge
2026-08-17 02:30:01.053208: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:30:01.068608: Using load_power data to fill gaps in load_today data
2026-08-17 02:30:02.513147: Processing 721 30-minute periods for power integration
2026-08-17 02:30:02.778473: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:30:02.778780: Car charging hold False, threshold 6.0kWh
2026-08-17 02:30:02.778934: Current data so far today: load 1.25kWh, import 1.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:30:02.806180: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:30:02.806499: Cars: SoC: [42.192]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:30:02.807453: Standing charge is set to 46.63p
2026-08-17 02:30:02.998448: 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 02:30:02.998891: 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 02:30:02.999250: 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 02:30:02.999554: 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 02:30:02.999844: 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 02:30:03.000728: 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 02:30:03.001107: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:30:03.001392: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.001660: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.001814: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002038: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002181: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 8.0, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002311: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002432: Octopus: Intelligent slot at 08-17 02:00:00-08-17 05:00:00, assumed price 33.75, amount 22.2, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002706: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.47, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:30:03.002786: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:30:03.008178: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:30:03.008477: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:30:03.053102: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:30:03.053301: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:30:03.054436: High export rate found rates in range 99p to -99p
2026-08-17 02:30:03.083258: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:30:03.083564: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:30:03.083670: Car 0 charging plan is: [{'start': 120, 'end': 300, 'kwh': 22.2, 'average': 8.0, 'cost': 177.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.4665, 'average': 8.0, 'cost': 11.73, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:30:03.103867: 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 02:30:03.104316: 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-17 02:30:03.212554: Today's energy total net 1.1kWh, import 1.1kWh, export 0.0kWh, cost 55.43p, import 8.8p, export 0.0p, carbon 0.0kg
2026-08-17 02:30:03.212695: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:30:03.349651: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:30:03.399221: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:30:03.399336: Today's predicted so far 2.17kWh with 0.0kWh car/iBoost excluded, 0.16kWh import ignored, and 2.17kWh forecast extra.
2026-08-17 02:30:03.399370: Today's actual load so far 1.23kWh with 0.0kWh car/iBoost excluded, and 0.16kWh import ignored.
2026-08-17 02:30:03.471561: Inverter 0: Type SK Sunsynk
2026-08-17 02:30:03.471662: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:30:03.471851: Reserve min: 7%, battery_min: 7%
2026-08-17 02:30:03.471926: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:30:03.472217: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -582W, load power 582W, PV Power 0W
2026-08-17 02:30:03.472391: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:30:03.472486: Inverter 0 scheduled charge enable is True
2026-08-17 02:30:03.472532: 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 02:30:03.472620: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:30:03.472744: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:30:03.472901: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:30:03.473103: Inverter 0 scheduled discharge enable is False
2026-08-17 02:30:03.473380: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:30:03.473526: Inverter 0 discharge windows currently []
2026-08-17 02:30:03.473619: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:30:03.473721: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:30:03.473786: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:30:03.557805: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:30:03.558061: Plan was last updated on 2026-08-17 02:25:00+01:00 and is now 5.0 minutes old
2026-08-17 02:30:03.558466: Best charge window [ 17-08 02:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 02:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 02:30:00 @ 8.0p 100% ]
2026-08-17 02:30:03.558525: Best export window [  ]
2026-08-17 02:30:03.559382: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:30:03.562601: Load divergence over 8.0 hours mean 501.17W, min 262.2W, max 1533.6W, std dev 316.61W, divergence 31.59%
2026-08-17 02:30:03.582428: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:30:03.582705: LoadML is_calculating True
2026-08-17 02:30:03.582813: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:30:03.632285: predict base end_record 08-18 02:35:00, final soc 10.56kWh, metric 207.68p, metric_keep 0.61kWh, min_soc 1.58kWh @ 08-17 23:55:00, load 13.17kWh, PV 0.0kWh
2026-08-17 02:30:03.986744: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:30:04.074805: predict base10 end_record 08-18 02:35:00, final soc 10.56kWh, metric 212.71p, metric_keep 3.86kWh, min_soc 1.15kWh @ 08-17 23:55:00, load 13.74kWh, PV 0.0kWh
2026-08-17 02:30:04.218590: predict best10 end_record 08-18 02:35:00, final soc 2.32kWh, metric 141.94p, metric_keep 0.54kWh, min_soc 1.59kWh @ 08-17 23:55:00, load 13.74kWh, PV 0.0kWh
2026-08-17 02:30:04.400037: predict best end_record 08-18 02:35:00, final soc 2.41kWh, metric 137.62p, metric_keep 0kWh, min_soc 2.02kWh @ 08-17 23:55:00, load 13.17kWh, PV 0.0kWh
2026-08-17 02:30:04.400154: Saving plan best values to HA entities
2026-08-17 02:30:04.846042: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:30:04.854384: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:30:04.862954: Best charging limit SoC's [10.5, 11.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.44kWh, house 0.0kWh, export 0.0kWh, metric 137.62p, metric10 141.94p
2026-08-17 02:30:05.003114: Marginal costs baseline metric (no standing charge): 90.9882
2026-08-17 02:30:05.667272: Marginal energy costs matrix computed: min=8.0 max=30.02
2026-08-17 02:30:05.807301: Rate array import [{'start': 150, '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': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 150, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:30:05.807910: - Your estimated bill for today is £0.69 and tomorrow is £2.22
2026-08-17 02:30:05.807990: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:30:05.808023: - The battery is currently at 66% and is charging to 66% for the next 2 and a half hours.
2026-08-17 02:30:05.808146: - For the next 48 hours there will be no solar generation.
2026-08-17 02:30:05.808197: - You will reach a minimum of 13% battery in 21 hours.
2026-08-17 02:30:05.808230: - Your car is currently charging.
2026-08-17 02:30:05.808334: 
2026-08-17 02:30:05.844194: Plan calculation took 2.29 seconds
2026-08-17 02:30:05.847567: No high rate period found
2026-08-17 02:30:05.927481: Import threshold used for optimisation was 8.0p
2026-08-17 02:30:06.045820: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0]
2026-08-17 02:30:06.054051: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:00:00
2026-08-17 02:30:06.054238: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:30:06.054382: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:30:06.054462: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:30:06.054584: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:30:06.054776: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:30:06.054881: No export window planned
2026-08-17 02:30:06.055033: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:30:06.055087: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 02:30:06.055298: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 02:30:06.055399: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:30:06.055482: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:30:06.055554: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:30:06.055682: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.055739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.055886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.055963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056431: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056494: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056626: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056734: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056796: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.056995: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057107: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:30:06.057914: Inverter 0 count register writes 0
2026-08-17 02:30:06.106292: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:30:06.117226: Total inverter register writes now 848
2026-08-17 02:30:06.192757: Info: Completed run status Hold charging
2026-08-17 02:30:06.201182: Info: record_status Hold charging target 66%-66%
2026-08-17 02:30:06.228443: Saved current settings to /config/predbat_config.json
2026-08-17 02:30:06.228816: Compare, best tariff: current metric 104.68p
2026-08-17 02:30:29.887681: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0083 val_mae=0.0030 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-17 02:30:29.887955: ML Predictor: Early stopping at epoch 10
2026-08-17 02:30:29.889003: ML Predictor: Restored best weights from epoch with val_mae=0.0031 kWh val_bias=+0.0005 kWh (+0.7%)
2026-08-17 02:30:29.889243: ML Predictor: Training complete, final val_mae=0.0031 kWh val_bias=+0.0005 kWh (+0.7%)
2026-08-17 02:30:32.848672: ML Predictor: AR rollout over holdout: ar_mae=0.0037 kWh ar_bias=+0.0012 kWh (+1.5%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-17 02:30:32.860645: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0031 kWh
2026-08-17 02:30:32.936106: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-17 02:30:32.936238: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 02:30:33.641908: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 02:30:38.611330: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 02:30:38.665904: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0591 std=0.0475) 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 02:30:38.758046: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 02:30:38.775322: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 02:30:39.028191: ML Predictor: Baseline (pre-finetune) val_mae=0.0073 kWh val_bias=+0.0016 kWh
2026-08-17 02:30:49.105344: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:30:49.105726: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:30:49.105791: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:30:49.106044: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:30:49.106100: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:30:49.106128: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:30:49.106228: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:31:07.420615: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0104 val_mae=0.0049 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-17 02:31:36.366254: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0050 kWh val_bias=+0.0008 kWh (+1.5%) combined=0.0040 kWh ema_combined=0.0032 kWh
2026-08-17 02:32:04.903567: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0053 kWh val_bias=-0.0025 kWh (-4.5%) combined=0.0041 kWh ema_combined=0.0035 kWh
2026-08-17 02:32:33.404328: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0128 val_mae=0.0045 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0029 kWh ema_combined=0.0033 kWh
2026-08-17 02:32:58.780841: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0102 val_mae=0.0047 kWh val_bias=-0.0010 kWh (-1.7%) combined=0.0024 kWh ema_combined=0.0030 kWh
2026-08-17 02:33:03.637082: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:33:03.637668: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:33:03.637887: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:33:03.638262: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:33:03.638429: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:33:03.638609: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:33:03.638778: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:33:28.203843: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0121 val_mae=0.0041 kWh val_bias=-0.0016 kWh (-2.9%) combined=0.0034 kWh ema_combined=0.0031 kWh
2026-08-17 02:33:57.829611: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0133 val_mae=0.0038 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0027 kWh ema_combined=0.0030 kWh
2026-08-17 02:34:25.145538: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0093 val_mae=0.0043 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-17 02:34:54.544892: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0034 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-17 02:35:00.097437: --------------- PredBat - update at 2026-08-17 02:35:00+01:00 with clock skew 0 minutes, minutes now 155
2026-08-17 02:35:00.098861: Saved current settings to /config/predbat_config.json
2026-08-17 02:35:00.099094: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 02:35:00.099337: 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 02:35:00.099504: 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 02:35:00.145239: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:35:00.145631: days_previous_auto enabled - will 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 02:35:00.146014: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:35:00.146977: 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 02:35:00.147205: Predbat mode is set to Control charge & discharge
2026-08-17 02:35:00.474481: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:35:00.474675: Using load_power data to fill gaps in load_today data
2026-08-17 02:35:01.789338: Processing 721 30-minute periods for power integration
2026-08-17 02:35:01.978186: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:35:01.984747: Car charging hold False, threshold 6.0kWh
2026-08-17 02:35:01.984838: Current data so far today: load 1.3kWh, import 1.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:35:02.026454: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:35:02.026589: Cars: SoC: [42.778]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:35:02.027518: Standing charge is set to 46.63p
2026-08-17 02:35:02.274837: 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 02:35:02.275307: 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 02:35:02.275686: 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 02:35:02.276057: 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 02:35:02.276440: 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 02:35:02.276798: 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 02:35:02.277200: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:35:02.277583: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.277839: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.278066: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.278312: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.278554: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.278915: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.17, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:35:02.279001: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:35:02.286240: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:35:02.287306: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:35:02.333626: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:35:02.333988: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:35:02.335458: High export rate found rates in range 99p to -99p
2026-08-17 02:35:02.357041: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:35:02.357197: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:35:02.357286: Car 0 charging plan is: [{'start': 150, 'end': 300, 'kwh': 18.5, 'average': 8.0, 'cost': 148.0, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.1665, 'average': 8.0, 'cost': 9.33, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:35:02.377256: 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 02:35:02.377771: 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 02:35:02.516618: Today's energy total net 1.1kWh, import 1.1kWh, export 0.0kWh, cost 55.43p, import 8.8p, export 0.0p, carbon 0.0kg
2026-08-17 02:35:02.516786: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:35:02.643741: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:35:02.666175: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:35:02.666358: Today's predicted so far 2.29kWh with 0.0kWh car/iBoost excluded, 0.14kWh import ignored, and 2.29kWh forecast extra.
2026-08-17 02:35:02.666402: Today's actual load so far 1.22kWh with 0.0kWh car/iBoost excluded, and 0.14kWh import ignored.
2026-08-17 02:35:02.719903: 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.7, 'source': 'SMART'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -22.2, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.4665, '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-17T02:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -18.5, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.1665, 'source': 'SMART'}]]
2026-08-17 02:35:02.720778: Sensor changes require a replan, will recompute the plan
2026-08-17 02:35:02.720994: Inverter 0: Type SK Sunsynk
2026-08-17 02:35:02.721050: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:35:02.721313: Reserve min: 7%, battery_min: 7%
2026-08-17 02:35:02.721405: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:35:02.721734: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -2465W, load power 2461W, PV Power 0W
2026-08-17 02:35:02.721926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:35:02.722031: Inverter 0 scheduled charge enable is True
2026-08-17 02:35:02.722091: 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 02:35:02.722203: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:35:02.722372: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:35:02.722417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:35:02.722461: Inverter 0 scheduled discharge enable is False
2026-08-17 02:35:02.722616: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:35:02.722660: Inverter 0 discharge windows currently []
2026-08-17 02:35:02.722688: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:35:02.722719: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:35:02.722743: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:35:02.814929: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:35:02.815038: Will recompute the plan as it is invalid
2026-08-17 02:35:02.815186: Recompute is saving previous plan...
2026-08-17 02:35:02.816596: Best charge window [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66% ]
2026-08-17 02:35:02.816665: Best export window [  ]
2026-08-17 02:35:02.817961: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:35:02.822354: Load divergence over 8.0 hours mean 513.61W, min 271.2W, max 1525.8W, std dev 338.08W, divergence 32.91%
2026-08-17 02:35:02.843226: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:35:02.843567: LoadML is_calculating True
2026-08-17 02:35:02.843637: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:35:02.855650: 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 02:35:02.856259: Optimise levels pass started at 2026-08-17 02:35:02
2026-08-17 02:35:02.856313: Optimise all windows, total charge 25 export 1
2026-08-17 02:35:06.907079: >> Region optimisation pass width 960 gives best_metric 225.6p, best_cost 226.68p, best_cycle 37.24kWh, best_import 21.41kWh
2026-08-17 02:35:07.140992: >> Region optimisation pass width 480 gives best_metric 225.6p, best_cost 226.68p, best_cycle 37.24kWh, best_import 21.41kWh
2026-08-17 02:35:07.570056: >> Region optimisation pass width 240 gives best_metric 225.6p, best_cost 226.68p, best_cycle 37.24kWh, best_import 21.41kWh
2026-08-17 02:35:10.992742: >> Region optimisation pass width 120 gives best_metric 222.29p, best_cost 230.61p, best_cycle 38.14kWh, best_import 21.9kWh
2026-08-17 02:35:10.993301: Calculated end_record as 08-18 03:00:00 based on best_price 8.0p, next_charge_start 08-17 03:00:00, max_windows 14
2026-08-17 02:35:10.993544: Optimise levels pass ended at 2026-08-17 02:35:10, duration 8.1 seconds tried 68 combinations
2026-08-17 02:35:10.993710: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 222.29p, best_keep 0.53kWh, best_cycle 38.14kWh, best_carbon 0kg, best_import 21.9kWh
2026-08-17 02:35:11.023139: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:35:33.503790: Tweak plan optimisation started metric 77.25p, cost 90.23p
2026-08-17 02:35:34.325950: Tweak optimisation finished metric 77.25p, cost 90.23p, metric_keep 0.01kWh, cycle 10.27kWh, carbon 0kg, import 4.35kWh, changed 8 window(s)
2026-08-17 02:35:34.354490: Swap charge optimisation started metric 77.25p, cost 90.23p, min_improvement_swap 0.1p
2026-08-17 02:35:34.752981: Swap charge optimisation finished metric 77.25p, cost 90.23p
2026-08-17 02:35:34.877778: Pruned 1 dead plan slot(s) in 10 trial(s), nominal metric 76.5p -> 76.5p, plan now metric 77.28p, cost 90.23p, cycle 10.27kWh, import 4.35kWh
2026-08-17 02:35:34.886528: Raw charge windows [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 0%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 0%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 0%, 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 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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 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% ] reserve 1.12
2026-08-17 02:35:34.887126: Unclipped charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:35:34.888805: Unfiltered charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:35:34.889265: Filtered charge windows [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:35:34.929470: Previous plan best metric is 80.54 (cost 110.02) and new plan best metric is 77.25 (cost 90.23)
2026-08-17 02:35:34.929826: New plan metric is significantly better from previous plan, using new plan
2026-08-17 02:35:34.929943: Plan valid is now true after recompute was False
2026-08-17 02:35:34.960459: predict base end_record 08-18 03:00:00, final soc 10.56kWh, metric 209.72p, metric_keep 0.57kWh, min_soc 1.61kWh @ 08-17 23:55:00, load 13.48kWh, PV 0.0kWh
2026-08-17 02:35:35.229227: Battery has 48.0 hours left - now at 10.56kWh
2026-08-17 02:35:35.298526: predict base10 end_record 08-18 03:00:00, final soc 10.56kWh, metric 214.86p, metric_keep 3.83kWh, min_soc 1.19kWh @ 08-17 23:55:00, load 14.06kWh, PV 0.0kWh
2026-08-17 02:35:35.453360: predict best10 end_record 08-18 03:00:00, final soc 2.0kWh, metric 142.04p, metric_keep 1.06kWh, min_soc 1.5kWh @ 08-17 23:55:00, load 14.06kWh, PV 0.0kWh
2026-08-17 02:35:35.633318: predict best end_record 08-18 03:00:00, final soc 2.0kWh, metric 136.86p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-17 23:55:00, load 13.48kWh, PV 0.0kWh
2026-08-17 02:35:35.633872: Saving plan best values to HA entities
2026-08-17 02:35:35.957547: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:35:35.964093: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:35:35.974621: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.35kWh, house 0.0kWh, export 0.0kWh, metric 136.86p, metric10 142.04p
2026-08-17 02:35:36.110098: Marginal costs baseline metric (no standing charge): 90.231
2026-08-17 02:35:36.507839: Marginal energy costs matrix computed: min=8.0 max=30.32
2026-08-17 02:35:36.592117: Rate array import [{'start': 155, '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': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 155, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:35:36.592658: - Your estimated bill for today is £0.68 and tomorrow is £2.05
2026-08-17 02:35:36.592803: - Import rates are cheap (8.0p) for the next 2  hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:35:36.592901: - The battery is currently at 66% and is charging to 66% for the next 55 minutes.
2026-08-17 02:35:36.593035: - For the next 48 hours there will be no solar generation.
2026-08-17 02:35:36.593130: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:35:36.593222: - Your car is currently charging.
2026-08-17 02:35:36.593318: 
2026-08-17 02:35:36.628759: Plan calculation took 33.81 seconds
2026-08-17 02:35:36.697812: Saved plan to storage
2026-08-17 02:35:36.702300: No high rate period found
2026-08-17 02:35:36.836094: Import threshold used for optimisation was 8.0p
2026-08-17 02:35:36.955275: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 25: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 02:35:36.964029: Inverter 0: Type SK Sunsynk
2026-08-17 02:35:36.964136: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:35:36.964387: Reserve min: 7%, battery_min: 7%
2026-08-17 02:35:36.964483: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:35:36.964860: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -2465W, load power 2461W, PV Power 0W
2026-08-17 02:35:36.965158: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:35:36.965334: Inverter 0 scheduled charge enable is True
2026-08-17 02:35:36.965428: 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 02:35:36.965594: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 02:35:36.965999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:35:36.966089: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:35:36.966352: Inverter 0 scheduled discharge enable is False
2026-08-17 02:35:36.966758: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 02:35:36.966829: Inverter 0 discharge windows currently []
2026-08-17 02:35:36.966915: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:35:36.967086: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:35:36.967218: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:35:37.117325: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:35:37.117661: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:35:37.117919: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:35:37.118129: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:35:37.118388: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:35:37.118747: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:35:37.118925: Inverter 0 set new demand (idle) start time to 04:00:00 was 05:30:00
2026-08-17 02:35:42.135995: Inverter 0 write_and_poll_value: Wrote 04:00:00 to idle_start_time, successfully now 04:00:00
2026-08-17 02:35:46.158026: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0083 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-17 02:35:47.149055: Inverter 0 write_and_poll_value: Wrote 04:00:00 to charge_end_time, successfully now 04:00:00
2026-08-17 02:35:47.149211: Inverter 0 Updated start and end charge window to 00:00:00 - 04:00:00 (old 00:00:00 - 05:30:00)
2026-08-17 02:35:47.149337: No export window planned
2026-08-17 02:35:47.149517: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:35:47.149568: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:35:47.149826: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:35:47.149932: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:35:47.150018: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:35:47.150076: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:35:47.150200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.150518: 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 02:35:47.178808: 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 02:35:47.282175: 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 02:35:47.358297: 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 02:35:47.461821: 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 02:35:47.535635: 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 02:35:47.639858: 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 02:35:47.744061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.744973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:35:47.745082: Inverter 0 count register writes 0
2026-08-17 02:35:47.800117: Total inverter register writes now 848
2026-08-17 02:35:47.869152: Info: Completed run status Hold charging
2026-08-17 02:35:47.878975: Info: record_status Hold charging target 66%-66%
2026-08-17 02:35:47.888180: Saved current settings to /config/predbat_config.json
2026-08-17 02:35:47.888411: Compare, best tariff: current metric 104.68p
2026-08-17 02:36:14.724777: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0079 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 02:36:19.093858: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:36:19.094311: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:36:19.094375: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:36:19.094552: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:36:19.094658: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:36:19.094705: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:36:19.094731: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:36:41.836122: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0033 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-17 02:37:07.147681: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0032 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 02:37:33.508510: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0076 val_mae=0.0033 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-17 02:38:01.325500: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0067 val_mae=0.0037 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0024 kWh ema_combined=0.0021 kWh
2026-08-17 02:38:27.891382: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0070 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 02:38:33.554497: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:38:33.554790: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:38:33.554827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:38:33.554962: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:38:33.555005: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:38:33.555027: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:38:33.555045: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:38:55.423629: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0069 val_mae=0.0031 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 02:39:22.626071: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-17 02:39:50.786824: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-17 02:40:00.948545: --------------- PredBat - update at 2026-08-17 02:40:00+01:00 with clock skew 0 minutes, minutes now 160
2026-08-17 02:40:00.950839: Saved current settings to /config/predbat_config.json
2026-08-17 02:40:00.951280: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 02:40:00.951576: 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 02:40:00.951862: 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 02:40:01.032156: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:40:01.032445: days_previous_auto enabled - will 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 02:40:01.033041: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:40:01.038237: 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 02:40:01.038433: Predbat mode is set to Control charge & discharge
2026-08-17 02:40:01.601094: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:40:01.601519: Using load_power data to fill gaps in load_today data
2026-08-17 02:40:03.116657: Processing 721 30-minute periods for power integration
2026-08-17 02:40:03.492712: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:40:03.492940: Car charging hold False, threshold 6.0kWh
2026-08-17 02:40:03.493029: Current data so far today: load 1.5kWh, import 1.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:40:03.514190: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:40:03.514419: Cars: SoC: [43.364000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:40:03.515098: Standing charge is set to 46.63p
2026-08-17 02:40:03.631985: 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 02:40:03.632303: 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 02:40:03.632567: 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 02:40:03.632805: 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 02:40:03.633109: 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 02:40:03.633440: 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 02:40:03.633697: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:40:03.633914: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634037: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634150: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634260: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634432: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634672: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.17, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:40:03.634771: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:40:03.643042: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:40:03.643549: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:40:03.811815: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:40:03.811977: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:40:03.814005: High export rate found rates in range 99p to -99p
2026-08-17 02:40:03.912525: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:40:03.912694: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:40:03.912782: Car 0 charging plan is: [{'start': 150, 'end': 300, 'kwh': 18.5, 'average': 8.0, 'cost': 148.0, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.1665, 'average': 8.0, 'cost': 9.33, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:40:03.964268: 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 02:40:03.964785: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:40:04.088203: Today's energy total net 1.3kWh, import 1.3kWh, export 0.0kWh, cost 57.03p, import 10.4p, export 0.0p, carbon 0.0kg
2026-08-17 02:40:04.088537: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:40:04.270639: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:40:04.322712: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:40:04.323716: Today's predicted so far 2.33kWh with 0.0kWh car/iBoost excluded, 0.23kWh import ignored, and 2.33kWh forecast extra.
2026-08-17 02:40:04.324272: Today's actual load so far 1.39kWh with 0.0kWh car/iBoost excluded, and 0.23kWh import ignored.
2026-08-17 02:40:04.422392: Inverter 0: Type SK Sunsynk
2026-08-17 02:40:04.424432: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:40:04.425015: Reserve min: 7%, battery_min: 7%
2026-08-17 02:40:04.425321: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:40:04.425971: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -2478W, load power 2462W, PV Power 0W
2026-08-17 02:40:04.428735: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:40:04.429115: Inverter 0 scheduled charge enable is True
2026-08-17 02:40:04.429387: 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-17 02:40:04.433601: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:40:04.434505: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:40:04.434587: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:40:04.434774: Inverter 0 scheduled discharge enable is False
2026-08-17 02:40:04.435134: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:40:04.435210: Inverter 0 discharge windows currently []
2026-08-17 02:40:04.435320: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:40:04.435449: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:40:04.435548: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:40:04.584604: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:40:04.584741: Plan was last updated on 2026-08-17 02:35:00+01:00 and is now 5.0 minutes old
2026-08-17 02:40:04.585128: Best charge window [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ]
2026-08-17 02:40:04.585189: Best export window [  ]
2026-08-17 02:40:04.586710: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:40:04.591847: Load divergence over 8.0 hours mean 520.32W, min 292.2W, max 1566.6W, std dev 346.83W, divergence 33.33%
2026-08-17 02:40:04.622626: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:40:04.623009: LoadML is_calculating True
2026-08-17 02:40:04.623062: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:40:04.742792: predict base end_record 08-18 03:05:00, final soc 10.56kWh, metric 211.85p, metric_keep 6.55kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 13.68kWh, PV 0.0kWh
2026-08-17 02:40:05.057813: Battery has 21.08 hours left - now at 10.56kWh
2026-08-17 02:40:05.183829: predict base10 end_record 08-18 03:05:00, final soc 10.56kWh, metric 221.26p, metric_keep 14.23kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.26kWh, PV 0.0kWh
2026-08-17 02:40:05.330258: predict best10 end_record 08-18 03:05:00, final soc 2.32kWh, metric 146.41p, metric_keep 1.13kWh, min_soc 1.47kWh @ 08-17 23:55:00, load 14.26kWh, PV 0.0kWh
2026-08-17 02:40:05.599699: predict best end_record 08-18 03:05:00, final soc 2.39kWh, metric 141.8p, metric_keep 0.03kWh, min_soc 1.93kWh @ 08-17 23:55:00, load 13.68kWh, PV 0.0kWh
2026-08-17 02:40:05.599826: Saving plan best values to HA entities
2026-08-17 02:40:05.913239: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:40:05.922516: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:40:05.930828: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.77kWh, house 0.0kWh, export 0.0kWh, metric 141.8p, metric10 146.41p
2026-08-17 02:40:06.122958: Marginal costs baseline metric (no standing charge): 95.1637
2026-08-17 02:40:06.438048: Marginal energy costs matrix computed: min=8.0 max=30.33
2026-08-17 02:40:06.560157: Rate array import [{'start': 160, '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': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 160, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:40:06.560830: - Your estimated bill for today is £0.70 and tomorrow is £2.05
2026-08-17 02:40:06.561061: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:40:06.561226: - The battery is currently at 66% and is charging to 66% for the next 50 minutes.
2026-08-17 02:40:06.561339: - For the next 48 hours there will be no solar generation.
2026-08-17 02:40:06.561495: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:40:06.561636: - Your car is currently charging.
2026-08-17 02:40:06.561685: 
2026-08-17 02:40:06.612247: Plan calculation took 2.03 seconds
2026-08-17 02:40:06.617139: No high rate period found
2026-08-17 02:40:06.722458: Import threshold used for optimisation was 8.0p
2026-08-17 02:40:06.785805: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 25: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 02:40:06.793923: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:40:06.794038: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:40:06.794157: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:40:06.794232: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:40:06.794332: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:40:06.794516: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:40:06.794611: No export window planned
2026-08-17 02:40:06.794745: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:40:06.794804: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:40:06.794976: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:40:06.795061: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:40:06.795116: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:40:06.795167: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:40:06.795249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795473: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795525: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795548: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795573: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795593: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795613: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795646: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:40:06.795904: Inverter 0 count register writes 0
2026-08-17 02:40:06.823957: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:40:06.836833: Total inverter register writes now 848
2026-08-17 02:40:06.903849: Info: Completed run status Hold charging
2026-08-17 02:40:06.911801: Info: record_status Hold charging target 66%-66%
2026-08-17 02:40:06.923944: Saved current settings to /config/predbat_config.json
2026-08-17 02:40:06.924190: Compare, best tariff: current metric 104.68p
2026-08-17 02:40:20.525770: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0061 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 02:40:47.808508: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-17 02:40:49.093825: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:40:49.094180: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:40:49.094245: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:40:49.094438: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:40:49.094490: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:40:49.094519: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:40:49.094639: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:41:14.992793: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 02:41:42.091644: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-17 02:42:09.500344: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 02:42:35.000500: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0050 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 02:43:01.695977: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=+0.0005 kWh (+1.0%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 02:43:03.517056: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:43:03.517425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:43:03.517482: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:43:03.517654: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:43:03.517700: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:43:03.517726: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:43:03.517843: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:43:29.206126: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 02:43:55.943587: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 02:44:21.671566: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-17 02:44:48.188237: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 02:44:48.195912: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-17 02:44:48.196369: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-17 02:44:57.326272: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=+0.0005 kWh (+1.0%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-17 02:44:57.344764: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-17 02:44:57.345069: ML Predictor: Curriculum final pass 5/5: full dataset (58.5 days)
2026-08-17 02:44:57.345237: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 02:44:57.988671: ML Predictor: Creating dataset with 1404 hours of training data, 48 hours validation
2026-08-17 02:45:00.940123: --------------- PredBat - update at 2026-08-17 02:45:00+01:00 with clock skew 0 minutes, minutes now 165
2026-08-17 02:45:00.961745: Saved current settings to /config/predbat_config.json
2026-08-17 02:45:00.972247: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 02:45:00.982736: 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 02:45:00.988119: 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 02:45:01.196884: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:45:01.202253: days_previous_auto enabled - will 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 02:45:01.207627: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:45:01.213368: 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 02:45:01.219318: Predbat mode is set to Control charge & discharge
2026-08-17 02:45:02.245067: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:45:02.250514: Using load_power data to fill gaps in load_today data
2026-08-17 02:45:03.397727: Processing 721 30-minute periods for power integration
2026-08-17 02:45:03.537728: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:45:03.537901: Car charging hold False, threshold 6.0kWh
2026-08-17 02:45:03.537975: Current data so far today: load 1.6kWh, import 1.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:45:03.551728: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:45:03.551868: Cars: SoC: [43.95]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:45:03.552569: Standing charge is set to 46.63p
2026-08-17 02:45:03.646256: 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 02:45:03.646572: 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 02:45:03.646802: 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 02:45:03.647002: 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 02:45:03.647232: 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 02:45:03.647437: 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 02:45:03.647654: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:45:03.647873: Octopus: Intelligent slot at 08-17 01:30:00-08-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 02:45:03.648067: Octopus: Intelligent slot at 08-17 02:00:00-08-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 02:45:03.648299: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.648435: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.648578: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.648692: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.648811: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.649042: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.17, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:45:03.649133: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:45:03.653289: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:45:03.654114: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:45:03.688350: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:45:03.688515: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:45:03.689621: High export rate found rates in range 99p to -99p
2026-08-17 02:45:03.709570: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:45:03.709720: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:45:03.709801: Car 0 charging plan is: [{'start': 150, 'end': 300, 'kwh': 18.5, 'average': 8.0, 'cost': 148.0, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.1665, 'average': 8.0, 'cost': 9.33, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:45:03.724987: 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 02:45:03.725343: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:45:03.778435: Today's energy total net 1.3kWh, import 1.3kWh, export 0.0kWh, cost 57.03p, import 10.4p, export 0.0p, carbon 0.0kg
2026-08-17 02:45:03.778587: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:45:03.839556: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:45:03.857136: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:45:03.857226: Today's predicted so far 2.33kWh with 0.0kWh car/iBoost excluded, 0.24kWh import ignored, and 2.33kWh forecast extra.
2026-08-17 02:45:03.857307: Today's actual load so far 1.49kWh with 0.0kWh car/iBoost excluded, and 0.24kWh import ignored.
2026-08-17 02:45:03.943309: ML Predictor: Created 16560 training samples, 576 validation samples
2026-08-17 02:45:03.960575: 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-17T02:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -18.5, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.1665, '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-17T05:00:00+01:00', 'charge_in_kwh': -18.5, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.1665, 'source': 'SMART'}]]
2026-08-17 02:45:03.961709: Sensor changes require a replan, will recompute the plan
2026-08-17 02:45:03.961936: Inverter 0: Type SK Sunsynk
2026-08-17 02:45:03.961977: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:45:03.962232: Reserve min: 7%, battery_min: 7%
2026-08-17 02:45:03.962304: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:45:03.962611: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -2467W, load power 2462W, PV Power 0W
2026-08-17 02:45:03.962811: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:45:03.962913: Inverter 0 scheduled charge enable is True
2026-08-17 02:45:03.962968: 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-17 02:45:03.963063: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:45:03.963190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:45:03.963229: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:45:03.963266: Inverter 0 scheduled discharge enable is False
2026-08-17 02:45:03.963389: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:45:03.963442: Inverter 0 discharge windows currently []
2026-08-17 02:45:03.963468: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:45:03.963488: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:45:03.963506: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:45:03.999988: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0482) load(mean=0.0591 std=0.0476) pv(mean=0.0000 std=0.0100) temp(mean=19.6358 std=4.5153) import_rate(mean=16.7935 std=8.3597) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1918 std=0.5268)
2026-08-17 02:45:04.055121: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:45:04.055228: Will recompute the plan as it is invalid
2026-08-17 02:45:04.055332: Recompute is saving previous plan...
2026-08-17 02:45:04.056226: Best charge window [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66% ]
2026-08-17 02:45:04.056309: Best export window [  ]
2026-08-17 02:45:04.056988: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:45:04.059551: Load divergence over 8.0 hours mean 524.82W, min 259.8W, max 1618.2W, std dev 351.57W, divergence 33.49%
2026-08-17 02:45:04.077092: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:45:04.077248: LoadML is_calculating True
2026-08-17 02:45:04.077277: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:45:04.086886: 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 02:45:04.087360: Optimise levels pass started at 2026-08-17 02:45:04
2026-08-17 02:45:04.087395: Optimise all windows, total charge 25 export 1
2026-08-17 02:45:04.106603: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 02:45:04.135723: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 02:45:04.290172: ML Predictor: Baseline (pre-finetune) val_mae=0.0044 kWh val_bias=+0.0014 kWh
2026-08-17 02:45:07.980840: >> Region optimisation pass width 960 gives best_metric 227.93p, best_cost 228.36p, best_cycle 37.26kWh, best_import 21.42kWh
2026-08-17 02:45:08.286032: >> Region optimisation pass width 480 gives best_metric 227.93p, best_cost 228.36p, best_cycle 37.26kWh, best_import 21.42kWh
2026-08-17 02:45:08.777549: >> Region optimisation pass width 240 gives best_metric 227.93p, best_cost 228.36p, best_cycle 37.26kWh, best_import 21.42kWh
2026-08-17 02:45:12.052548: >> Region optimisation pass width 120 gives best_metric 224.12p, best_cost 233.56p, best_cycle 38.57kWh, best_import 22.07kWh
2026-08-17 02:45:12.053079: Calculated end_record as 08-18 03:00:00 based on best_price 8.0p, next_charge_start 08-17 03:00:00, max_windows 14
2026-08-17 02:45:12.053294: Optimise levels pass ended at 2026-08-17 02:45:12, duration 8.0 seconds tried 68 combinations
2026-08-17 02:45:12.053470: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 224.12p, best_keep 0.3kWh, best_cycle 38.57kWh, best_carbon 0kg, best_import 22.07kWh
2026-08-17 02:45:12.110489: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:45:30.238213: Tweak plan optimisation started metric 79.54p, cost 93.11p
2026-08-17 02:45:31.877023: Tweak optimisation finished metric 79.24p, cost 92.8p, metric_keep 0kWh, cycle 12.39kWh, carbon 0kg, import 4.47kWh, changed 8 window(s)
2026-08-17 02:45:31.907632: Swap charge optimisation started metric 79.24p, cost 92.8p, min_improvement_swap 0.1p
2026-08-17 02:45:32.797897: Swap charge optimisation finished metric 79.24p, cost 92.8p
2026-08-17 02:45:32.925291: Raw charge windows [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 25%, 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 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 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% ] reserve 1.12
2026-08-17 02:45:32.926267: Unclipped charge windows [ 17-08 02:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 25%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 16%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:45:32.926748: Unfiltered charge windows [ 17-08 02:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 25%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 16%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:45:32.927172: Filtered charge windows [ 17-08 02:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 25%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 16%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:45:32.973365: Previous plan best metric is 78.01 (cost 90.97) and new plan best metric is 79.24 (cost 92.8)
2026-08-17 02:45:32.973631: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 02:45:32.973887: Plan valid is now true after recompute was False
2026-08-17 02:45:33.010274: predict base end_record 08-18 03:00:00, final soc 10.56kWh, metric 210.97p, metric_keep 6.45kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 13.67kWh, PV 0.0kWh
2026-08-17 02:45:33.230753: Battery has 21.0 hours left - now at 10.56kWh
2026-08-17 02:45:33.312226: predict base10 end_record 08-18 03:00:00, final soc 10.56kWh, metric 220.15p, metric_keep 14.07kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.24kWh, PV 0.0kWh
2026-08-17 02:45:33.431288: predict best10 end_record 08-18 03:00:00, final soc 2.0kWh, metric 142.73p, metric_keep 1.13kWh, min_soc 1.45kWh @ 08-17 23:55:00, load 14.24kWh, PV 0.0kWh
2026-08-17 02:45:33.542842: predict best end_record 08-18 03:00:00, final soc 2.0kWh, metric 137.6p, metric_keep 0.05kWh, min_soc 1.9kWh @ 08-17 23:55:00, load 13.67kWh, PV 0.0kWh
2026-08-17 02:45:33.542959: Saving plan best values to HA entities
2026-08-17 02:45:33.874486: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:45:33.884718: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:45:33.893810: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.24kWh, house 0.0kWh, export 0.0kWh, metric 137.6p, metric10 142.73p
2026-08-17 02:45:34.007546: Marginal costs baseline metric (no standing charge): 90.9708
2026-08-17 02:45:34.477648: Marginal energy costs matrix computed: min=8.0 max=30.31
2026-08-17 02:45:34.579305: Rate array import [{'start': 165, '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': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 165, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:45:34.579904: - Your estimated bill for today is £0.69 and tomorrow is £2.06
2026-08-17 02:45:34.579965: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:45:34.579993: - The battery is currently at 66% and is charging to 66% for the next 45 minutes.
2026-08-17 02:45:34.580017: - For the next 48 hours there will be no solar generation.
2026-08-17 02:45:34.580040: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:45:34.580072: - Your car is currently charging.
2026-08-17 02:45:34.580096: 
2026-08-17 02:45:34.620842: Plan calculation took 30.57 seconds
2026-08-17 02:45:34.669717: Saved plan to storage
2026-08-17 02:45:34.674232: No high rate period found
2026-08-17 02:45:34.792116: Import threshold used for optimisation was 8.0p
2026-08-17 02:45:34.899190: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 25: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 02:45:34.919439: Inverter 0: Type SK Sunsynk
2026-08-17 02:45:34.919809: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:45:34.920104: Reserve min: 7%, battery_min: 7%
2026-08-17 02:45:34.920202: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:45:34.920565: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -607W, load power 590W, PV Power 0W
2026-08-17 02:45:34.920757: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:45:34.920864: Inverter 0 scheduled charge enable is True
2026-08-17 02:45:34.921075: 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-17 02:45:34.921343: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:45:34.921652: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:45:34.921808: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:45:34.921961: Inverter 0 scheduled discharge enable is False
2026-08-17 02:45:34.922246: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:45:34.922397: Inverter 0 discharge windows currently []
2026-08-17 02:45:34.922578: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:45:34.922705: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:45:34.922824: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:45:35.054633: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:45:35.055033: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:45:35.055320: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:45:35.055530: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:45:35.055806: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:45:35.056154: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:45:35.056392: No export window planned
2026-08-17 02:45:35.056675: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:45:35.056826: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:45:35.057156: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:45:35.057392: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:45:35.057599: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:45:35.057771: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:45:35.058003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.058911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059074: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059223: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059366: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059529: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059674: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059814: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.059957: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.060150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.060328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.060511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.060678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.060826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.061007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.061177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:45:35.061313: Inverter 0 count register writes 0
2026-08-17 02:45:35.120865: Total inverter register writes now 848
2026-08-17 02:45:35.178265: Info: Completed run status Hold charging
2026-08-17 02:45:35.188333: Info: record_status Hold charging target 66%-66%
2026-08-17 02:45:35.198058: Saved current settings to /config/predbat_config.json
2026-08-17 02:45:35.198298: Compare, best tariff: current metric 104.68p
2026-08-17 02:45:52.139086: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0099 val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 02:46:18.355404: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:46:18.355802: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:46:18.355862: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:46:18.356013: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:46:18.356056: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:46:18.356078: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:46:18.356096: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:46:21.646021: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0094 val_mae=0.0040 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-17 02:46:53.103460: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0107 val_mae=0.0038 kWh val_bias=+0.0010 kWh (+2.5%) combined=0.0030 kWh ema_combined=0.0025 kWh
2026-08-17 02:47:19.928595: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0094 val_mae=0.0037 kWh val_bias=+0.0007 kWh (+1.9%) combined=0.0029 kWh ema_combined=0.0026 kWh
2026-08-17 02:47:48.956054: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0101 val_mae=0.0043 kWh val_bias=+0.0010 kWh (+2.6%) combined=0.0035 kWh ema_combined=0.0029 kWh
2026-08-17 02:48:15.387961: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0102 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-17 02:48:18.773119: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:48:18.773427: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:48:18.773480: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:48:18.773633: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:48:18.773675: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:48:18.773698: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:48:18.773718: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:48:44.276267: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0134 val_mae=0.0040 kWh val_bias=-0.0021 kWh (-5.5%) combined=0.0041 kWh ema_combined=0.0030 kWh
2026-08-17 02:49:12.619571: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0124 val_mae=0.0035 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-17 02:49:42.228281: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0102 val_mae=0.0034 kWh val_bias=+0.0011 kWh (+2.9%) combined=0.0029 kWh ema_combined=0.0028 kWh
2026-08-17 02:50:00.152686: --------------- PredBat - update at 2026-08-17 02:50:00+01:00 with clock skew 0 minutes, minutes now 170
2026-08-17 02:50:00.154665: Saved current settings to /config/predbat_config.json
2026-08-17 02:50:00.155032: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 02:50:00.155278: 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 02:50:00.155533: 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 02:50:00.196220: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:50:00.196549: days_previous_auto enabled - will 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 02:50:00.196897: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:50:00.197884: 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 02:50:00.198216: Predbat mode is set to Control charge & discharge
2026-08-17 02:50:00.572997: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:50:00.573183: Using load_power data to fill gaps in load_today data
2026-08-17 02:50:01.671887: Processing 721 30-minute periods for power integration
2026-08-17 02:50:02.084176: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:50:02.084360: Car charging hold False, threshold 6.0kWh
2026-08-17 02:50:02.084409: Current data so far today: load 2.0kWh, import 1.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:50:02.101882: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:50:02.102090: Cars: SoC: [44.536]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:50:02.102983: Standing charge is set to 46.63p
2026-08-17 02:50:02.214746: 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 02:50:02.215031: 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 02:50:02.215227: 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 02:50:02.215435: 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 02:50:02.215636: 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 02:50:02.215815: 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 02:50:02.215997: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:50:02.216175: Octopus: Intelligent slot at 08-17 01:30:00-08-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 02:50:02.216399: Octopus: Intelligent slot at 08-17 02:00:00-08-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 02:50:02.216600: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.216696: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.216788: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.216870: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.216975: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.219483: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.17, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:50:02.219794: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:50:02.229354: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:50:02.230052: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:50:02.385136: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:50:02.402605: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:50:02.404254: High export rate found rates in range 99p to -99p
2026-08-17 02:50:02.482286: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:50:02.485329: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:50:02.485460: Car 0 charging plan is: [{'start': 150, 'end': 300, 'kwh': 18.5, 'average': 8.0, 'cost': 148.0, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.1665, 'average': 8.0, 'cost': 9.33, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:50:02.520259: 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 02:50:02.520805: Last hour: net energy 0.85kWh, import 0.85kWh, export 0.0kWh, car 0kWh, load 1.07kWh, net cost 6.8p, import 6.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:50:02.657037: Today's energy total net 1.7kWh, import 1.7kWh, export 0.0kWh, cost 60.23p, import 13.6p, export 0.0p, carbon 0.0kg
2026-08-17 02:50:02.657176: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:50:02.731661: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:50:02.766000: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:50:02.766129: Today's predicted so far 2.36kWh with 0.0kWh car/iBoost excluded, 0.2kWh import ignored, and 2.36kWh forecast extra.
2026-08-17 02:50:02.766171: Today's actual load so far 1.95kWh with 0.0kWh car/iBoost excluded, and 0.2kWh import ignored.
2026-08-17 02:50:02.861516: Inverter 0: Type SK Sunsynk
2026-08-17 02:50:02.861629: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:50:02.861929: Reserve min: 7%, battery_min: 7%
2026-08-17 02:50:02.862166: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:50:02.862666: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -585W, load power 585W, PV Power 0W
2026-08-17 02:50:02.862998: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:50:02.863230: Inverter 0 scheduled charge enable is True
2026-08-17 02:50:02.863305: 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-17 02:50:02.863560: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:50:02.863797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:50:02.863853: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:50:02.863947: Inverter 0 scheduled discharge enable is False
2026-08-17 02:50:02.864214: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:50:02.864268: Inverter 0 discharge windows currently []
2026-08-17 02:50:02.864383: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:50:02.864446: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:50:02.864520: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:50:02.962374: Dynamic load last period 2.40kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:50:02.962526: Plan was last updated on 2026-08-17 02:45:00+01:00 and is now 5.0 minutes old
2026-08-17 02:50:02.962908: Best charge window [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ]
2026-08-17 02:50:02.963049: Best export window [  ]
2026-08-17 02:50:02.964476: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:50:02.969337: Load divergence over 8.0 hours mean 526.46W, min 260.4W, max 1689.0W, std dev 348.37W, divergence 33.09%
2026-08-17 02:50:03.002376: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:50:03.002538: LoadML is_calculating True
2026-08-17 02:50:03.002687: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 02:50:03.064243: predict base end_record 08-18 03:05:00, final soc 10.56kWh, metric 214.26p, metric_keep 6.42kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 14.08kWh, PV 0.0kWh
2026-08-17 02:50:03.334779: Battery has 20.92 hours left - now at 10.56kWh
2026-08-17 02:50:03.424731: predict base10 end_record 08-18 03:05:00, final soc 10.56kWh, metric 223.36p, metric_keep 14.04kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.65kWh, PV 0.0kWh
2026-08-17 02:50:03.616822: predict best10 end_record 08-18 03:05:00, final soc 2.32kWh, metric 148.82p, metric_keep 1.13kWh, min_soc 1.43kWh @ 08-17 23:55:00, load 14.65kWh, PV 0.0kWh
2026-08-17 02:50:03.817737: predict best end_record 08-18 03:05:00, final soc 2.39kWh, metric 144.26p, metric_keep 0.06kWh, min_soc 1.89kWh @ 08-17 23:55:00, load 14.08kWh, PV 0.0kWh
2026-08-17 02:50:03.817865: Saving plan best values to HA entities
2026-08-17 02:50:04.186907: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:50:04.195387: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:50:04.202914: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.67kWh, house 0.0kWh, export 0.0kWh, metric 144.26p, metric10 148.82p
2026-08-17 02:50:04.312549: Marginal costs baseline metric (no standing charge): 97.6213
2026-08-17 02:50:04.772834: Marginal energy costs matrix computed: min=8.0 max=30.29
2026-08-17 02:50:04.863242: Rate array import [{'start': 170, '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': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 170, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:50:04.863725: - Your estimated bill for today is £0.72 and tomorrow is £2.06
2026-08-17 02:50:04.863778: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:50:04.863800: - The battery is currently at 66% and is charging to 66% for the next 40 minutes.
2026-08-17 02:50:04.863818: - For the next 48 hours there will be no solar generation.
2026-08-17 02:50:04.863835: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:50:04.863853: - Your car is currently charging.
2026-08-17 02:50:04.863871: 
2026-08-17 02:50:04.897316: Plan calculation took 1.93 seconds
2026-08-17 02:50:04.900491: No high rate period found
2026-08-17 02:50:05.029398: Import threshold used for optimisation was 8.0p
2026-08-17 02:50:05.196319: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 25: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 02:50:05.210331: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:50:05.210476: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:50:05.210603: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:50:05.210684: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:50:05.210794: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:50:05.211129: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:50:05.211235: No export window planned
2026-08-17 02:50:05.211337: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:50:05.211371: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:50:05.211524: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:50:05.211601: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:50:05.211654: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:50:05.211708: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:50:05.211795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.211834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.211862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.211922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.211951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.211976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212177: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212343: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212513: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212665: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212799: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.212931: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.213161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.214494: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.214669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.214880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.215044: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.215183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.215315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:50:05.215455: Inverter 0 count register writes 0
2026-08-17 02:50:05.237808: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 02:50:05.249218: Total inverter register writes now 848
2026-08-17 02:50:05.298271: Info: Completed run status Hold charging
2026-08-17 02:50:05.307716: Info: record_status Hold charging target 66%-66%
2026-08-17 02:50:05.318585: Saved current settings to /config/predbat_config.json
2026-08-17 02:50:05.318791: Compare, best tariff: current metric 104.68p
2026-08-17 02:50:13.615439: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0081 val_mae=0.0031 kWh val_bias=-0.0012 kWh (-3.0%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-17 02:50:43.743610: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0074 val_mae=0.0031 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 02:50:43.743883: ML Predictor: Early stopping at epoch 11
2026-08-17 02:50:43.744814: ML Predictor: Restored best weights from epoch with val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.3%)
2026-08-17 02:50:43.745040: ML Predictor: Training complete, final val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.3%)
2026-08-17 02:50:48.477301: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:50:48.477927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:50:48.478075: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:50:48.478553: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:50:48.478676: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:50:48.478826: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:50:48.478945: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:50:52.755131: ML Predictor: AR rollout over holdout: ar_mae=0.0053 kWh ar_bias=-0.0000 kWh (-0.1%) [drift vs teacher-forced: +0.0012 kWh]
2026-08-17 02:50:52.765487: ML Predictor: Curriculum training complete, final val_mae=0.0041 kWh
2026-08-17 02:50:52.775524: ML Component: Training successful, val_mae=0.0041 kWh
2026-08-17 02:50:52.924155: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 02:50:52.929208: ML Component: Generating predictions load data age 58.0 days, 16849 data points
2026-08-17 02:50:53.058501: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0169 max_dow {0: 0.08182499999834432, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 02:50:55.358424: ML Component: Generated 576 predictions (total 23.77 kWh over 48h)
2026-08-17 02:50:55.388504: ML Component: Prediction cycle completed
2026-08-17 02:50:55.480368: ML Component: Saved 16849 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 02:52:48.809254: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:52:48.809600: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:52:48.809677: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:52:48.809814: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:52:48.809879: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:52:48.809901: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:52:48.809918: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:54:49.033153: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:54:49.033447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:54:49.033492: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:54:49.033655: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:54:49.033695: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:54:49.033717: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:54:49.033735: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:55:00.123380: --------------- PredBat - update at 2026-08-17 02:55:00+01:00 with clock skew 0 minutes, minutes now 175
2026-08-17 02:55:00.124240: Saved current settings to /config/predbat_config.json
2026-08-17 02:55:00.124391: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 02:55:00.124535: 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 02:55:00.124632: 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 02:55:00.146748: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 02:55:00.146892: days_previous_auto enabled - will 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 02:55:00.147103: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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 02:55:00.147663: 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 02:55:00.147797: Predbat mode is set to Control charge & discharge
2026-08-17 02:55:00.323622: Found 21602 load_today datapoints going back 28 days
2026-08-17 02:55:00.323760: Using load_power data to fill gaps in load_today data
2026-08-17 02:55:01.056471: Processing 721 30-minute periods for power integration
2026-08-17 02:55:01.211566: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 02:55:01.212111: Car charging hold False, threshold 6.0kWh
2026-08-17 02:55:01.212200: Current data so far today: load 2.2kWh, import 1.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 02:55:01.226693: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 02:55:01.226784: Cars: SoC: [45.122]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 02:55:01.227505: Standing charge is set to 46.63p
2026-08-17 02:55:01.317149: 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 02:55:01.317457: 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 02:55:01.317708: 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 02:55:01.318212: 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 02:55:01.318510: 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 02:55:01.318784: 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 02:55:01.318987: Octopus: Intelligent slot at 08-17 00:30:00-08-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 02:55:01.319170: Octopus: Intelligent slot at 08-17 01:30:00-08-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 02:55:01.319342: Octopus: Intelligent slot at 08-17 02:00:00-08-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 02:55:01.319536: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.319629: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.319709: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 8.0, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.319786: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.319858: Octopus: Intelligent slot at 08-17 02:30:00-08-17 05:00:00, assumed price 33.75, amount 18.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.320022: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.17, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 02:55:01.320108: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 02:55:01.325320: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 02:55:01.325645: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 02:55:01.364813: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 02:55:01.364919: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 02:55:01.366035: High export rate found rates in range 99p to -99p
2026-08-17 02:55:01.386099: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 02:55:01.386180: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 02:55:01.386230: Car 0 charging plan is: [{'start': 150, 'end': 300, 'kwh': 18.5, 'average': 8.0, 'cost': 148.0, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 1.1665, 'average': 8.0, 'cost': 9.33, 'soc': 58.6, 'octopus': True}]
2026-08-17 02:55:01.399207: 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 02:55:01.399630: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 1.25kWh, net cost 6.4p, import 6.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 02:55:01.448491: Today's energy total net 1.7kWh, import 1.7kWh, export 0.0kWh, cost 60.23p, import 13.6p, export 0.0p, carbon 0.0kg
2026-08-17 02:55:01.448671: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:55:01.522855: Using weighted-bucket historical load forecast over 14 days
2026-08-17 02:55:01.545074: Today's load divergence 100.0%, in-day adjustment 68.37%, damping 0.95x, yesterday 68.37% today 100.0% blend 100.0%
2026-08-17 02:55:01.545183: Today's predicted so far 2.39kWh with 0.0kWh car/iBoost excluded, 0.22kWh import ignored, and 2.39kWh forecast extra.
2026-08-17 02:55:01.545215: Today's actual load so far 2.14kWh with 0.0kWh car/iBoost excluded, and 0.22kWh import ignored.
2026-08-17 02:55:01.582751: Inverter 0: Type SK Sunsynk
2026-08-17 02:55:01.582847: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:55:01.583073: Reserve min: 7%, battery_min: 7%
2026-08-17 02:55:01.583160: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:55:01.583507: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -579W, load power 562W, PV Power 0W
2026-08-17 02:55:01.583716: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:55:01.583828: Inverter 0 scheduled charge enable is True
2026-08-17 02:55:01.583901: 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-17 02:55:01.584053: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:55:01.584230: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:55:01.584274: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:55:01.584321: Inverter 0 scheduled discharge enable is False
2026-08-17 02:55:01.584531: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:55:01.584576: Inverter 0 discharge windows currently []
2026-08-17 02:55:01.584600: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:55:01.584626: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:55:01.584667: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:55:01.637365: Dynamic load last period 2.40kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 02:55:01.637479: Plan was last updated on 2026-08-17 02:45:00+01:00 and is now 10.0 minutes old
2026-08-17 02:55:01.637752: Best charge window [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ]
2026-08-17 02:55:01.637810: Best export window [  ]
2026-08-17 02:55:01.638536: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:55:01.641100: Load divergence over 8.0 hours mean 527.67W, min 260.4W, max 1688.4W, std dev 340.83W, divergence 32.3%
2026-08-17 02:55:01.655721: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:55:01.655834: LoadML is_calculating False
2026-08-17 02:55:01.655899: Creating pool of 12 processes to match your CPU count
2026-08-17 02:55:01.765185: predict base end_record 08-18 03:10:00, final soc 10.56kWh, metric 214.33p, metric_keep 6.47kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 14.29kWh, PV 0.0kWh
2026-08-17 02:55:01.887882: Battery has 20.83 hours left - now at 10.56kWh
2026-08-17 02:55:01.927176: predict base10 end_record 08-18 03:10:00, final soc 10.56kWh, metric 223.61p, metric_keep 14.09kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.86kWh, PV 0.0kWh
2026-08-17 02:55:02.023009: predict best10 end_record 08-18 03:10:00, final soc 2.65kWh, metric 151.69p, metric_keep 1.17kWh, min_soc 1.41kWh @ 08-17 23:55:00, load 14.86kWh, PV 0.0kWh
2026-08-17 02:55:02.103178: predict best end_record 08-18 03:10:00, final soc 2.78kWh, metric 147.68p, metric_keep 0.07kWh, min_soc 1.87kWh @ 08-17 23:55:00, load 14.29kWh, PV 0.0kWh
2026-08-17 02:55:02.103272: Saving plan best values to HA entities
2026-08-17 02:55:02.260597: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:55:02.266010: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:55:02.270696: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 5.1kWh, house 0.0kWh, export 0.0kWh, metric 147.68p, metric10 151.69p
2026-08-17 02:55:02.332129: Marginal costs baseline metric (no standing charge): 101.0476
2026-08-17 02:55:02.580534: Marginal energy costs matrix computed: min=8.0 max=30.31
2026-08-17 02:55:02.650500: Rate array import [{'start': 175, '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': 1630, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 175, 'end': 1630, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:55:02.650949: - Your estimated bill for today is £0.72 and tomorrow is £2.06
2026-08-17 02:55:02.650995: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:55:02.651017: - The battery is currently at 66% and is charging to 66% for the next 35 minutes.
2026-08-17 02:55:02.651035: - For the next 48 hours there will be no solar generation.
2026-08-17 02:55:02.651053: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:55:02.651070: - Your car is currently charging.
2026-08-17 02:55:02.651087: 
2026-08-17 02:55:02.702387: Plan calculation took 1.06 seconds
2026-08-17 02:55:02.705716: No high rate period found
2026-08-17 02:55:02.759749: Import threshold used for optimisation was 8.0p
2026-08-17 02:55:02.820380: Low import rate windows [0: 08-17 02:30:00 - 08-17 03:00:00 @ 8.0, 1: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 2: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 3: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 4: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 5: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 6: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 7: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 8: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 9: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 10: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 11: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 12: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 13: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 14: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 15: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 16: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 17: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 18: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 19: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 20: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 21: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 22: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 23: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 24: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 25: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 02:55:02.827963: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:55:02.828126: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:55:02.828373: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:55:02.828504: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:55:02.828660: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:55:02.828940: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:55:02.829183: No export window planned
2026-08-17 02:55:02.829324: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:55:02.829361: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:55:02.829536: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:55:02.829635: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:55:02.829695: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:55:02.829761: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:55:02.829870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.829912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.829940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.829970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.829998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830092: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830132: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830161: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830207: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830241: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830267: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830296: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:02.830579: Inverter 0 count register writes 0
2026-08-17 02:55:02.849806: 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 02:55:02.850026: Recompute is saving previous plan...
2026-08-17 02:55:02.851019: Best charge window [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66% ]
2026-08-17 02:55:02.851072: Best export window [  ]
2026-08-17 02:55:02.851951: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 02:55:02.855191: Load divergence over 8.0 hours mean 527.67W, min 260.4W, max 1688.4W, std dev 340.83W, divergence 32.3%
2026-08-17 02:55:02.872623: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 02:55:02.872756: LoadML is_calculating False
2026-08-17 02:55:02.872830: Creating pool of 12 processes to match your CPU count
2026-08-17 02:55:02.962170: 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 02:55:02.963036: Optimise levels pass started at 2026-08-17 02:55:02
2026-08-17 02:55:02.963107: Optimise all windows, total charge 25 export 1
2026-08-17 02:55:03.560676: >> Region optimisation pass width 960 gives best_metric 231.85p, best_cost 231.7p, best_cycle 37.25kWh, best_import 21.43kWh
2026-08-17 02:55:03.715368: >> Region optimisation pass width 480 gives best_metric 231.85p, best_cost 231.7p, best_cycle 37.25kWh, best_import 21.43kWh
2026-08-17 02:55:03.943191: >> Region optimisation pass width 240 gives best_metric 231.85p, best_cost 231.7p, best_cycle 37.25kWh, best_import 21.43kWh
2026-08-17 02:55:04.759293: >> Region optimisation pass width 120 gives best_metric 227.66p, best_cost 238.23p, best_cycle 38.92kWh, best_import 22.25kWh
2026-08-17 02:55:04.759773: Calculated end_record as 08-18 03:00:00 based on best_price 8.0p, next_charge_start 08-17 03:00:00, max_windows 14
2026-08-17 02:55:04.759876: Optimise levels pass ended at 2026-08-17 02:55:04, duration 1.8 seconds tried 68 combinations
2026-08-17 02:55:04.760071: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 227.66p, best_keep 0.13kWh, best_cycle 38.92kWh, best_carbon 0kg, best_import 22.25kWh
2026-08-17 02:55:04.778996: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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 02:55:08.873347: Tweak plan optimisation started metric 81.19p, cost 94.25p
2026-08-17 02:55:09.148458: Tweak optimisation finished metric 79.98p, cost 92.99p, metric_keep 0.0kWh, cycle 9.69kWh, carbon 0kg, import 4.1kWh, changed 8 window(s)
2026-08-17 02:55:09.168792: Swap charge optimisation started metric 79.98p, cost 92.99p, min_improvement_swap 0.1p
2026-08-17 02:55:09.690580: Swap charge optimisation finished metric 79.98p, cost 92.99p
2026-08-17 02:55:09.799813: Raw charge windows [ 17-08 02:30:00 - 17-08 03:00:00 @ 8.0p 66%, 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 69%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 69%, 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 13%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 16%, 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 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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 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% ] reserve 1.12
2026-08-17 02:55:09.800183: Unclipped charge windows [ 17-08 02:30:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 16%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:55:09.800482: Unfiltered charge windows [ 17-08 02:30:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 16%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:55:09.800713: Filtered charge windows [ 17-08 02:30:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 69%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 13%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 16%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 02:55:09.832385: Previous plan best metric is 80.47 (cost 93.43) and new plan best metric is 79.98 (cost 92.99)
2026-08-17 02:55:09.832565: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 02:55:09.832740: Plan valid is now true after recompute was False
2026-08-17 02:55:09.863703: predict base end_record 08-18 03:00:00, final soc 10.56kWh, metric 213.38p, metric_keep 6.47kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 14.17kWh, PV 0.0kWh
2026-08-17 02:55:09.975148: Battery has 20.83 hours left - now at 10.56kWh
2026-08-17 02:55:10.022499: predict base10 end_record 08-18 03:00:00, final soc 10.56kWh, metric 222.61p, metric_keep 14.09kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.74kWh, PV 0.0kWh
2026-08-17 02:55:10.101995: predict best10 end_record 08-18 03:00:00, final soc 2.0kWh, metric 145.14p, metric_keep 1.17kWh, min_soc 1.41kWh @ 08-17 23:55:00, load 14.74kWh, PV 0.0kWh
2026-08-17 02:55:10.185357: predict best end_record 08-18 03:00:00, final soc 2.0kWh, metric 140.06p, metric_keep 0.07kWh, min_soc 1.87kWh @ 08-17 23:55:00, load 14.17kWh, PV 0.0kWh
2026-08-17 02:55:10.185460: Saving plan best values to HA entities
2026-08-17 02:55:10.331966: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 02:55:10.337650: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 02:55:10.343083: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.15kWh, house 0.0kWh, export 0.0kWh, metric 140.06p, metric10 145.14p
2026-08-17 02:55:10.432419: Marginal costs baseline metric (no standing charge): 93.4281
2026-08-17 02:55:10.731814: Marginal energy costs matrix computed: min=8.0 max=30.31
2026-08-17 02:55:10.799391: Rate array import [{'start': 175, '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': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 175, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 02:55:10.799808: - Your estimated bill for today is £0.72 and tomorrow is £2.06
2026-08-17 02:55:10.799856: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 02:55:10.799877: - The battery is currently at 66% and is charging to 66% for the next 35 minutes.
2026-08-17 02:55:10.799895: - For the next 48 hours there will be no solar generation.
2026-08-17 02:55:10.799913: - You will reach a minimum of 12% battery in 21 hours.
2026-08-17 02:55:10.799931: - Your car is currently charging.
2026-08-17 02:55:10.799949: 
2026-08-17 02:55:10.851712: Plan calculation took 8.00 seconds
2026-08-17 02:55:10.852165: Inverter 0: Type SK Sunsynk
2026-08-17 02:55:10.852224: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 02:55:10.852515: Reserve min: 7%, battery_min: 7%
2026-08-17 02:55:10.852619: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 02:55:10.853095: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -563W, load power 561W, PV Power 0W
2026-08-17 02:55:10.853385: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:55:10.853544: Inverter 0 scheduled charge enable is True
2026-08-17 02:55:10.853614: 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-17 02:55:10.853752: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 02:55:10.853924: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:55:10.853973: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:55:10.854026: Inverter 0 scheduled discharge enable is False
2026-08-17 02:55:10.854241: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:55:10.854300: Inverter 0 discharge windows currently []
2026-08-17 02:55:10.854330: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:55:10.854373: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:55:10.854420: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:55:10.915230: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 02:55:10.915417: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 02:55:10.915621: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 02:55:10.915744: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 02:55:10.915925: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:55:10.916205: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:55:10.916366: No export window planned
2026-08-17 02:55:10.916587: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 02:55:10.916647: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 02:55:10.916887: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 02:55:10.917072: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 02:55:10.917156: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 02:55:10.917211: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 02:55:10.917321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917604: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917639: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917672: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917762: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917791: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917950: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.917988: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.918013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.918042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.918066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 02:55:10.918094: Inverter 0 count register writes 0
2026-08-17 02:55:10.942672: Total inverter register writes now 848
2026-08-17 02:55:10.981377: Info: Completed run status Hold charging
2026-08-17 02:55:10.990193: Info: record_status Hold charging target 66%-66%
2026-08-17 02:55:10.999493: Saved current settings to /config/predbat_config.json
2026-08-17 02:55:10.999936: Compare, best tariff: current metric 104.68p
2026-08-17 02:55:49.123578: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:55:49.123855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:55:49.123891: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:55:49.124073: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:55:49.124113: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:55:49.124150: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:55:49.124167: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 02:55:55.834385: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 02:55:56.906199: Processing 1345 30-minute periods for power integration
2026-08-17 02:55:57.006644: ML Component: Car charging hold False, car energy reported load False
2026-08-17 02:55:57.092767: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 02:55:57.179617: ML Temperature data points: 50226
2026-08-17 02:55:57.435730: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 02:55:57.482059: ML Component: Data fetch completed, load data age 58.0 days, 16859 data points
2026-08-17 02:55:57.482195: ML Component: No training needed, model age is 0.07 hours
2026-08-17 02:55:57.482272: ML Component: Generating predictions load data age 58.0 days, 16859 data points
2026-08-17 02:55:57.625302: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0673 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 02:55:58.931302: ML Component: Generated 576 predictions (total 24.14 kWh over 48h)
2026-08-17 02:55:58.977762: ML Component: Prediction cycle completed
2026-08-17 02:55:59.093680: ML Component: Saved 16859 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 02:57:49.349627: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 02:57:49.349922: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 02:57:49.350013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 02:57:49.350202: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 02:57:49.350260: Note: Inverter does not support discharge freeze - disabled
2026-08-17 02:57:49.350282: Note: Inverter does not support charge freeze - disabled
2026-08-17 02:57:49.350300: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:00:00.599424: --------------- PredBat - update at 2026-08-17 03:00:00+01:00 with clock skew 0 minutes, minutes now 180
2026-08-17 03:00:00.600448: Saved current settings to /config/predbat_config.json
2026-08-17 03:00:00.600655: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 03:00:00.600831: 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:00:00.601013: 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:00:00.631260: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:00:00.631410: days_previous_auto enabled - will 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:00:00.631582: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:00:00.632109: 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:00:00.632240: Predbat mode is set to Control charge & discharge
2026-08-17 03:00:00.878810: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:00:00.878982: Using load_power data to fill gaps in load_today data
2026-08-17 03:00:01.719705: Processing 721 30-minute periods for power integration
2026-08-17 03:00:01.890451: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:00:01.890597: Car charging hold False, threshold 6.0kWh
2026-08-17 03:00:01.890646: Current data so far today: load 1.95kWh, import 1.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:00:01.908500: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:00:01.908622: Cars: SoC: [45.708]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:00:01.909429: Standing charge is set to 46.63p
2026-08-17 03:00:02.013165: 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:00:02.013556: 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:00:02.013877: 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:00:02.014157: 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:00:02.014628: 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:00:02.014914: 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:00:02.015211: Octopus: Intelligent slot at 08-17 00:30:00-08-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:00:02.015482: Octopus: Intelligent slot at 08-17 01:30:00-08-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:00:02.015759: Octopus: Intelligent slot at 08-17 02:00:00-08-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:00:02.016009: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016298: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016462: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016554: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016623: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016807: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:00:02.016870: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:00:02.024654: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:00:02.026193: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:00:02.073580: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:00:02.073726: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:00:02.074939: High export rate found rates in range 99p to -99p
2026-08-17 03:00:02.102823: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:00:02.102998: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:00:02.103076: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:00:02.120913: 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:00:02.121392: Last hour: net energy 0.95kWh, import 0.95kWh, export 0.0kWh, car 0kWh, load 0.97kWh, net cost 7.6p, import 7.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:00:02.179556: Today's energy total net 1.9kWh, import 1.9kWh, export 0.0kWh, cost 61.83p, import 15.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:00:02.179689: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:00:02.255285: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:00:02.277746: Today's load divergence 96.27%, in-day adjustment 71.88%, damping 0.95x, yesterday 68.37% today 96.46% blend 87.5%
2026-08-17 03:00:02.277844: Today's predicted so far 2.52kWh with 0.0kWh car/iBoost excluded, 0.31kWh import ignored, and 2.52kWh forecast extra.
2026-08-17 03:00:02.277877: Today's actual load so far 1.94kWh with 0.0kWh car/iBoost excluded, and 0.31kWh import ignored.
2026-08-17 03:00:02.316349: 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-17T05:00:00+01:00', 'charge_in_kwh': -18.5, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.1665, '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.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'}]]
2026-08-17 03:00:02.316922: Sensor changes require a replan, will recompute the plan
2026-08-17 03:00:02.317127: Inverter 0: Type SK Sunsynk
2026-08-17 03:00:02.317170: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:00:02.317346: Reserve min: 7%, battery_min: 7%
2026-08-17 03:00:02.317441: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:00:02.317725: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -533W, load power 529W, PV Power 0W
2026-08-17 03:00:02.317887: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:00:02.317975: Inverter 0 scheduled charge enable is True
2026-08-17 03:00:02.318018: 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-17 03:00:02.318103: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 03:00:02.318225: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:00:02.318261: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:00:02.318298: Inverter 0 scheduled discharge enable is False
2026-08-17 03:00:02.318437: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:00:02.318476: Inverter 0 discharge windows currently []
2026-08-17 03:00:02.318500: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:00:02.318519: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:00:02.318537: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:00:02.379861: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:00:02.379947: Will recompute the plan as it is invalid
2026-08-17 03:00:02.380091: Recompute is saving previous plan...
2026-08-17 03:00:02.381296: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66% ]
2026-08-17 03:00:02.381361: Best export window [  ]
2026-08-17 03:00:02.382246: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:00:02.385482: Load divergence over 8.0 hours mean 527.58W, min 262.2W, max 1598.4W, std dev 336.06W, divergence 31.85%
2026-08-17 03:00:02.410312: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:00:02.410461: LoadML is_calculating False
2026-08-17 03:00:02.410529: Creating pool of 12 processes to match your CPU count
2026-08-17 03:00:02.506904: 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:00:02.507774: Optimise levels pass started at 2026-08-17 03:00:02
2026-08-17 03:00:02.507839: Optimise all windows, total charge 25 export 1
2026-08-17 03:00:03.187171: >> Region optimisation pass width 960 gives best_metric 238.48p, best_cost 238.02p, best_cycle 38.13kWh, best_import 22.02kWh
2026-08-17 03:00:03.378118: >> Region optimisation pass width 480 gives best_metric 238.48p, best_cost 238.02p, best_cycle 38.13kWh, best_import 22.02kWh
2026-08-17 03:00:03.669174: >> Region optimisation pass width 240 gives best_metric 238.48p, best_cost 238.02p, best_cycle 38.13kWh, best_import 22.02kWh
2026-08-17 03:00:04.717945: >> Region optimisation pass width 120 gives best_metric 234.08p, best_cost 244.05p, best_cycle 39.88kWh, best_import 22.78kWh
2026-08-17 03:00:04.718170: Calculated end_record as 08-18 03:00:00 based on best_price 8.0p, next_charge_start 08-17 03:00:00, max_windows 13
2026-08-17 03:00:04.718243: Optimise levels pass ended at 2026-08-17 03:00:04, duration 2.2 seconds tried 66 combinations
2026-08-17 03:00:04.718314: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 234.08p, best_keep 0.23kWh, best_cycle 39.88kWh, best_carbon 0kg, best_import 22.78kWh
2026-08-17 03:00:04.738130: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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:00:09.480085: Tweak plan optimisation started metric 86.44p, cost 99.37p
2026-08-17 03:00:09.817180: Tweak optimisation finished metric 86.44p, cost 99.37p, metric_keep 0.02kWh, cycle 11.39kWh, carbon 0kg, import 4.69kWh, changed 8 window(s)
2026-08-17 03:00:09.835242: Swap charge optimisation started metric 86.44p, cost 99.37p, min_improvement_swap 0.1p
2026-08-17 03:00:10.242212: Swap charge optimisation finished metric 86.32p, cost 98.63p
2026-08-17 03:00:10.261302: Swap charge optimisation started metric 86.32p, cost 98.63p, min_improvement_swap 0.1p
2026-08-17 03:00:10.667754: Swap charge optimisation finished metric 86.32p, cost 98.63p
2026-08-17 03:00:10.791817: Raw charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 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 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 13%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 13%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 13%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 13%, 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 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% ] reserve 1.12
2026-08-17 03:00:10.792260: Unclipped charge windows [ 17-08 03:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:00:10.792718: Unfiltered charge windows [ 17-08 03:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:00:10.793136: Filtered charge windows [ 17-08 03:00:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 72%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:30:00 - 18-08 02:30:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:00:10.834441: Previous plan best metric is 87.19 (cost 99.11) and new plan best metric is 86.32 (cost 98.63)
2026-08-17 03:00:10.834672: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:00:10.834849: Plan valid is now true after recompute was False
2026-08-17 03:00:10.868081: predict base end_record 08-18 03:00:00, final soc 10.56kWh, metric 224.23p, metric_keep 14.61kWh, min_soc 1.12kWh @ 08-17 23:15:00, load 14.39kWh, PV 0.0kWh
2026-08-17 03:00:11.021749: Battery has 20.25 hours left - now at 10.56kWh
2026-08-17 03:00:11.071692: predict base10 end_record 08-18 03:00:00, final soc 10.56kWh, metric 240.02p, metric_keep 23.46kWh, min_soc 1.12kWh @ 08-17 22:40:00, load 14.99kWh, PV 0.0kWh
2026-08-17 03:00:11.156885: predict best10 end_record 08-18 03:00:00, final soc 2.0kWh, metric 151.06p, metric_keep 6.01kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 14.99kWh, PV 0.0kWh
2026-08-17 03:00:11.250202: predict best end_record 08-18 03:00:00, final soc 2.0kWh, metric 145.97p, metric_keep 1.25kWh, min_soc 1.43kWh @ 08-17 23:55:00, load 14.39kWh, PV 0.0kWh
2026-08-17 03:00:11.250308: Saving plan best values to HA entities
2026-08-17 03:00:11.453142: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:00:11.460534: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:00:11.466414: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.69kWh, house 0kWh, export 0.0kWh, metric 145.97p, metric10 151.06p
2026-08-17 03:00:11.571247: Marginal costs baseline metric (no standing charge): 99.3325
2026-08-17 03:00:11.863337: Marginal energy costs matrix computed: min=8.0 max=31.66
2026-08-17 03:00:11.931066: Rate array import [{'start': 180, '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': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 180, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:00:11.931645: - Your estimated bill for today is £0.73 and tomorrow is £2.10
2026-08-17 03:00:11.931712: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:00:11.931737: - The battery is currently at 66% and is charging to 66% for the next 30 minutes.
2026-08-17 03:00:11.931764: - For the next 48 hours there will be no solar generation.
2026-08-17 03:00:11.931799: - You will reach a minimum of 9% battery in 20 hours.
2026-08-17 03:00:11.931841: - Your car is currently charging.
2026-08-17 03:00:11.931884: 
2026-08-17 03:00:11.990291: Plan calculation took 9.61 seconds
2026-08-17 03:00:11.995766: Saved plan to storage
2026-08-17 03:00:12.002070: No high rate period found
2026-08-17 03:00:12.060872: Import threshold used for optimisation was 8.0p
2026-08-17 03:00:12.120318: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0]
2026-08-17 03:00:12.127009: Inverter 0: Type SK Sunsynk
2026-08-17 03:00:12.127097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:00:12.127330: Reserve min: 7%, battery_min: 7%
2026-08-17 03:00:12.127428: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:00:12.127774: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -528W, load power 521W, PV Power 0W
2026-08-17 03:00:12.128013: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:00:12.128113: Inverter 0 scheduled charge enable is True
2026-08-17 03:00:12.128159: 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-17 03:00:12.128257: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 03:00:12.128401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:00:12.128443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:00:12.128481: Inverter 0 scheduled discharge enable is False
2026-08-17 03:00:12.128615: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:00:12.128654: Inverter 0 discharge windows currently []
2026-08-17 03:00:12.128678: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:00:12.128697: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:00:12.128715: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:00:12.187332: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 03:00:12.187491: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:00:12.187625: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:00:12.187707: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:00:12.187838: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:00:12.188028: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:00:12.188138: No export window planned
2026-08-17 03:00:12.188255: Inverter 0 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:00:12.188291: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:00:12.188564: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:00:12.188697: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:00:12.188770: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:00:12.188859: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:00:12.189002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189244: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189278: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189310: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189337: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189380: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189425: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189455: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:00:12.189708: Inverter 0 count register writes 0
2026-08-17 03:00:12.215156: Total inverter register writes now 848
2026-08-17 03:00:12.259021: Info: Completed run status Hold charging
2026-08-17 03:00:12.266145: Info: record_status Hold charging target 66%-66%
2026-08-17 03:00:12.274891: Saved current settings to /config/predbat_config.json
2026-08-17 03:00:12.275296: Compare, best tariff: current metric 104.68p
2026-08-17 03:00:48.404110: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:00:48.404555: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:00:48.404655: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:00:48.404874: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:00:48.404930: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:00:48.405011: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:00:48.405058: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:02:48.660992: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:02:48.661312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:02:48.661375: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:02:48.661521: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:02:48.661563: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:02:48.661585: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:02:48.661604: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:04:48.989745: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:04:48.990126: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:04:48.990190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:04:48.990408: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:04:48.990463: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:04:48.990487: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:04:48.990507: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:05:00.151972: --------------- PredBat - update at 2026-08-17 03:05:00+01:00 with clock skew 0 minutes, minutes now 185
2026-08-17 03:05:00.155204: Saved current settings to /config/predbat_config.json
2026-08-17 03:05:00.155538: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 03:05:00.155733: 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:05:00.155903: 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:05:00.185161: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:05:00.185298: days_previous_auto enabled - will 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:05:00.185609: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:05:00.186234: 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:05:00.186366: Predbat mode is set to Control charge & discharge
2026-08-17 03:05:00.415435: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:05:00.415622: Using load_power data to fill gaps in load_today data
2026-08-17 03:05:01.324872: Processing 721 30-minute periods for power integration
2026-08-17 03:05:01.512925: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:05:01.513122: Car charging hold False, threshold 6.0kWh
2026-08-17 03:05:01.513166: Current data so far today: load 2.0kWh, import 1.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:05:01.531074: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:05:01.531197: Cars: SoC: [46.294000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:05:01.532093: Standing charge is set to 46.63p
2026-08-17 03:05:01.649636: 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:05:01.649947: 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:05:01.650159: 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:05:01.650357: 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:05:01.650560: 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:05:01.650741: 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:05:01.650923: Octopus: Intelligent slot at 08-17 00:30:00-08-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:05:01.651096: Octopus: Intelligent slot at 08-17 01:30:00-08-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:05:01.651266: Octopus: Intelligent slot at 08-17 02:00:00-08-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:05:01.651448: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.651625: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.651727: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.651802: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.651877: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.652039: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:05:01.652102: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:05:01.658125: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:05:01.658686: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:05:01.705261: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:05:01.705458: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:05:01.706811: High export rate found rates in range 99p to -99p
2026-08-17 03:05:01.735298: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:05:01.735463: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:05:01.735532: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:05:01.752521: 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:05:01.753009: Last hour: net energy 0.9kWh, import 0.9kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 7.2p, import 7.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:05:01.833688: Today's energy total net 1.9kWh, import 1.9kWh, export 0.0kWh, cost 61.83p, import 15.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:05:01.833877: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:05:01.920587: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:05:01.954286: Today's load divergence 95.99%, in-day adjustment 71.94%, damping 0.95x, yesterday 68.37% today 96.19% blend 87.15%
2026-08-17 03:05:01.954447: Today's predicted so far 2.62kWh with 0.0kWh car/iBoost excluded, 0.28kWh import ignored, and 2.62kWh forecast extra.
2026-08-17 03:05:01.954513: Today's actual load so far 2.0kWh with 0.0kWh car/iBoost excluded, and 0.28kWh import ignored.
2026-08-17 03:05:02.017735: Inverter 0: Type SK Sunsynk
2026-08-17 03:05:02.017860: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:05:02.018129: Reserve min: 7%, battery_min: 7%
2026-08-17 03:05:02.018216: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:05:02.018566: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -545W, load power 542W, PV Power 0W
2026-08-17 03:05:02.018770: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:05:02.018868: Inverter 0 scheduled charge enable is True
2026-08-17 03:05:02.018916: 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-17 03:05:02.019018: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 03:05:02.019151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:05:02.019187: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:05:02.019225: Inverter 0 scheduled discharge enable is False
2026-08-17 03:05:02.019354: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:05:02.019392: Inverter 0 discharge windows currently []
2026-08-17 03:05:02.019416: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:05:02.019461: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:05:02.019480: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:05:02.102400: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:05:02.102676: Plan was last updated on 2026-08-17 03:00:00+01:00 and is now 5.0 minutes old
2026-08-17 03:05:02.102937: Best charge window [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ]
2026-08-17 03:05:02.102979: Best export window [  ]
2026-08-17 03:05:02.103962: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:05:02.107522: Load divergence over 8.0 hours mean 527.76W, min 271.2W, max 1525.8W, std dev 337.61W, divergence 31.98%
2026-08-17 03:05:02.127581: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:05:02.127724: LoadML is_calculating False
2026-08-17 03:05:02.127795: Creating pool of 12 processes to match your CPU count
2026-08-17 03:05:02.372897: predict base end_record 08-18 03:05:00, final soc 10.56kWh, metric 224.8p, metric_keep 14.84kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 14.49kWh, PV 0.0kWh
2026-08-17 03:05:02.559500: Battery has 20.08 hours left - now at 10.56kWh
2026-08-17 03:05:02.619254: predict base10 end_record 08-18 03:05:00, final soc 10.56kWh, metric 240.63p, metric_keep 23.75kWh, min_soc 1.12kWh @ 08-17 22:40:00, load 15.08kWh, PV 0.0kWh
2026-08-17 03:05:02.709141: predict best10 end_record 08-18 03:05:00, final soc 2.32kWh, metric 154.21p, metric_keep 6.18kWh, min_soc 1.12kWh @ 08-17 23:45:00, load 15.08kWh, PV 0.0kWh
2026-08-17 03:05:02.804678: predict best end_record 08-18 03:05:00, final soc 2.39kWh, metric 149.62p, metric_keep 1.29kWh, min_soc 1.46kWh @ 08-17 23:55:00, load 14.49kWh, PV 0.0kWh
2026-08-17 03:05:02.804790: Saving plan best values to HA entities
2026-08-17 03:05:03.001789: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:05:03.010393: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:05:03.022809: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 5.14kWh, house 0.0kWh, export 0.0kWh, metric 149.62p, metric10 154.21p
2026-08-17 03:05:03.107450: Marginal costs baseline metric (no standing charge): 102.9845
2026-08-17 03:05:03.433311: Marginal energy costs matrix computed: min=8.05 max=31.69
2026-08-17 03:05:03.527274: Rate array import [{'start': 185, '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': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 185, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:05:03.527869: - Your estimated bill for today is £0.73 and tomorrow is £2.10
2026-08-17 03:05:03.527930: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:05:03.527961: - The battery is currently at 66% and is charging to 66% for the next 25 minutes.
2026-08-17 03:05:03.528003: - For the next 48 hours there will be no solar generation.
2026-08-17 03:05:03.528033: - You will reach a minimum of 9% battery in 20 hours.
2026-08-17 03:05:03.528051: - Your car is currently charging.
2026-08-17 03:05:03.528080: 
2026-08-17 03:05:03.596420: Plan calculation took 1.49 seconds
2026-08-17 03:05:03.600338: No high rate period found
2026-08-17 03:05:03.676676: Import threshold used for optimisation was 8.0p
2026-08-17 03:05:03.746538: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 25: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0]
2026-08-17 03:05:03.756671: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 03:05:03.756841: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:05:03.757167: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:05:03.757298: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:05:03.757538: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:05:03.757973: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:05:03.758437: No export window planned
2026-08-17 03:05:03.758603: Inverter 0 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:05:03.758643: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:05:03.758803: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:05:03.758897: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:05:03.758961: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:05:03.759053: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:05:03.759218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759581: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759632: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759695: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759744: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759792: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759848: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759895: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.759994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:05:03.760344: Inverter 0 count register writes 0
2026-08-17 03:05:03.786654: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 03:05:03.794688: Total inverter register writes now 848
2026-08-17 03:05:03.841723: Info: Completed run status Hold charging
2026-08-17 03:05:03.852600: Info: record_status Hold charging target 66%-66%
2026-08-17 03:05:03.863476: Saved current settings to /config/predbat_config.json
2026-08-17 03:05:03.863939: Compare, best tariff: current metric 104.68p
2026-08-17 03:05:33.993795: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:05:33.994100: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:05:33.994153: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:05:33.994329: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:05:33.994396: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:05:33.994422: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:05:33.994440: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:07:34.247672: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:07:34.248157: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:07:34.248230: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:07:34.248489: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:07:34.248555: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:07:34.248594: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:07:34.248635: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:09:48.556925: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:09:48.557391: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:09:48.557450: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:09:48.557647: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:09:48.557703: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:09:48.557735: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:09:48.557770: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:10:00.710323: --------------- PredBat - update at 2026-08-17 03:10:00+01:00 with clock skew 0 minutes, minutes now 190
2026-08-17 03:10:00.711489: Saved current settings to /config/predbat_config.json
2026-08-17 03:10:00.989740: 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:10:00.990038: 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:10:01.020215: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:10:01.020394: days_previous_auto enabled - will 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:10:01.020615: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:10:01.021409: 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:10:01.021589: Predbat mode is set to Control charge & discharge
2026-08-17 03:10:01.309299: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:10:01.310826: Using load_power data to fill gaps in load_today data
2026-08-17 03:10:02.448834: Processing 721 30-minute periods for power integration
2026-08-17 03:10:02.674922: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:10:02.675115: Car charging hold False, threshold 6.0kWh
2026-08-17 03:10:02.675193: Current data so far today: load 2.05kWh, import 1.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:10:02.706515: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:10:02.706661: Cars: SoC: [46.88]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:10:02.707811: Standing charge is set to 46.63p
2026-08-17 03:10:02.842118: 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:10:02.842477: 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:10:02.842770: 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:10:02.843060: 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:10:02.843332: 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:10:02.843571: 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:10:02.843797: Octopus: Intelligent slot at 08-17 00:30:00-08-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:10:02.844033: Octopus: Intelligent slot at 08-17 01:30:00-08-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:10:02.844262: Octopus: Intelligent slot at 08-17 02:00:00-08-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:10:02.844503: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.844730: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.844892: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.845050: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.845156: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.845368: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:10:02.845458: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:10:02.852162: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:10:02.852722: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:10:02.903053: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:10:02.903418: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:10:02.904782: High export rate found rates in range 99p to -99p
2026-08-17 03:10:02.931763: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:10:02.931934: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:10:02.932005: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:10:02.950192: 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:10:02.950733: Last hour: net energy 0.88kWh, import 0.88kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 7.0p, import 7.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:10:03.040009: Today's energy total net 1.9kWh, import 1.9kWh, export 0.0kWh, cost 61.83p, import 15.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:10:03.040193: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:10:03.131432: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:10:03.167714: Today's load divergence 96.08%, in-day adjustment 72.05%, damping 0.95x, yesterday 68.37% today 96.27% blend 86.81%
2026-08-17 03:10:03.167832: Today's predicted so far 2.64kWh with 0.0kWh car/iBoost excluded, 0.26kWh import ignored, and 2.64kWh forecast extra.
2026-08-17 03:10:03.167889: Today's actual load so far 2.03kWh with 0.0kWh car/iBoost excluded, and 0.26kWh import ignored.
2026-08-17 03:10:03.224934: Inverter 0: Type SK Sunsynk
2026-08-17 03:10:03.225102: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:10:03.225377: Reserve min: 7%, battery_min: 7%
2026-08-17 03:10:03.225502: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:10:03.225961: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -535W, load power 531W, PV Power 0W
2026-08-17 03:10:03.226213: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:10:03.226346: Inverter 0 scheduled charge enable is True
2026-08-17 03:10:03.226426: 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-17 03:10:03.226584: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 03:10:03.226781: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:10:03.226830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:10:03.226898: Inverter 0 scheduled discharge enable is False
2026-08-17 03:10:03.227087: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:10:03.227139: Inverter 0 discharge windows currently []
2026-08-17 03:10:03.227179: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:10:03.227211: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:10:03.227251: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:10:03.351698: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:10:03.351813: Plan was last updated on 2026-08-17 03:00:00+01:00 and is now 10.0 minutes old
2026-08-17 03:10:03.352110: Best charge window [ 17-08 02:30:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 72%, 18-08 00:00:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:00:00 @ 8.0p 100% ]
2026-08-17 03:10:03.352181: Best export window [  ]
2026-08-17 03:10:03.353315: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:10:03.357299: Load divergence over 8.0 hours mean 530.41W, min 292.2W, max 1566.6W, std dev 345.43W, divergence 32.56%
2026-08-17 03:10:03.383904: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:10:03.384074: LoadML is_calculating False
2026-08-17 03:10:03.384159: Creating pool of 12 processes to match your CPU count
2026-08-17 03:10:03.550935: predict base end_record 08-18 03:10:00, final soc 10.56kWh, metric 225.41p, metric_keep 15.18kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 14.56kWh, PV 0.0kWh
2026-08-17 03:10:03.762403: Battery has 20.0 hours left - now at 10.56kWh
2026-08-17 03:10:03.822475: predict base10 end_record 08-18 03:10:00, final soc 10.56kWh, metric 241.28p, metric_keep 24.15kWh, min_soc 1.12kWh @ 08-17 22:40:00, load 15.15kWh, PV 0.0kWh
2026-08-17 03:10:03.927559: predict best10 end_record 08-18 03:10:00, final soc 2.65kWh, metric 157.17p, metric_keep 6.45kWh, min_soc 1.12kWh @ 08-17 23:40:00, load 15.15kWh, PV 0.0kWh
2026-08-17 03:10:04.050371: predict best end_record 08-18 03:10:00, final soc 2.78kWh, metric 153.18p, metric_keep 1.45kWh, min_soc 1.41kWh @ 08-17 23:55:00, load 14.56kWh, PV 0.0kWh
2026-08-17 03:10:04.050474: Saving plan best values to HA entities
2026-08-17 03:10:04.313395: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:10:04.321241: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:10:04.328489: Best charging limit SoC's [10.5, 11.5, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 5.59kWh, house 0kWh, export 0.0kWh, metric 153.18p, metric10 157.17p
2026-08-17 03:10:04.431152: Marginal costs baseline metric (no standing charge): 106.5419
2026-08-17 03:10:04.732459: Marginal energy costs matrix computed: min=8.17 max=31.74
2026-08-17 03:10:04.845379: Rate array import [{'start': 190, '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': 1630, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 190, 'end': 1630, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:10:04.845915: - Your estimated bill for today is £0.73 and tomorrow is £2.10
2026-08-17 03:10:04.845983: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:10:04.846007: - The battery is currently at 66% and is charging to 66% for the next 20 minutes.
2026-08-17 03:10:04.846025: - For the next 48 hours there will be no solar generation.
2026-08-17 03:10:04.846043: - You will reach a minimum of 9% battery in 20 hours.
2026-08-17 03:10:04.846060: - Your car is currently charging.
2026-08-17 03:10:04.846078: 
2026-08-17 03:10:04.904684: Plan calculation took 1.55 seconds
2026-08-17 03:10:04.908670: No high rate period found
2026-08-17 03:10:04.977523: Import threshold used for optimisation was 8.0p
2026-08-17 03:10:05.050042: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 25: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0]
2026-08-17 03:10:05.059368: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 02:30:00
2026-08-17 03:10:05.059507: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 04:00:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:10:05.059768: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:10:05.059910: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:10:05.060161: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:10:05.060446: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:10:05.060610: No export window planned
2026-08-17 03:10:05.060756: Inverter 0 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:10:05.060796: Adjust idle time, charge 00:00:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-17 03:10:05.061004: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-17 03:10:05.061109: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:10:05.061192: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:10:05.061264: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:10:05.061396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061553: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061662: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061704: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061765: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061791: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061857: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.061933: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:05.062210: Inverter 0 count register writes 0
2026-08-17 03:10:05.086557: 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:10:05.086907: Recompute is saving previous plan...
2026-08-17 03:10:05.088219: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 66% ]
2026-08-17 03:10:05.088332: Best export window [  ]
2026-08-17 03:10:05.089349: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:10:05.092724: Load divergence over 8.0 hours mean 530.41W, min 292.2W, max 1566.6W, std dev 345.43W, divergence 32.56%
2026-08-17 03:10:05.112558: Calculating data from yesterday for savings calculation
2026-08-17 03:10:05.124661: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1630, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 03:10:05.176615: 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 03:10:05.202366: 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 03:10:05.230860: 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 03:10:05.265047: 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 03:10:05.358618: 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 03:10:05.358808: 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 03:10:05.373766: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:10:05.373926: LoadML is_calculating False
2026-08-17 03:10:05.374041: Creating pool of 12 processes to match your CPU count
2026-08-17 03:10:05.495360: 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:10:05.496463: Optimise levels pass started at 2026-08-17 03:10:05
2026-08-17 03:10:05.496556: Optimise all windows, total charge 25 export 1
2026-08-17 03:10:06.458942: >> Region optimisation pass width 960 gives best_metric 239.5p, best_cost 238.49p, best_cycle 38.19kWh, best_import 22.08kWh
2026-08-17 03:10:06.686780: >> Region optimisation pass width 480 gives best_metric 239.5p, best_cost 238.49p, best_cycle 38.19kWh, best_import 22.08kWh
2026-08-17 03:10:07.020728: >> Region optimisation pass width 240 gives best_metric 239.5p, best_cost 238.49p, best_cycle 38.19kWh, best_import 22.08kWh
2026-08-17 03:10:08.185615: >> Region optimisation pass width 120 gives best_metric 234.87p, best_cost 245.82p, best_cycle 40.38kWh, best_import 23.0kWh
2026-08-17 03:10:08.185955: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 14
2026-08-17 03:10:08.186073: Optimise levels pass ended at 2026-08-17 03:10:08, duration 2.7 seconds tried 64 combinations
2026-08-17 03:10:08.186160: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 234.87p, best_keep 0.19kWh, best_cycle 40.38kWh, best_carbon 0kg, best_import 23.0kWh
2026-08-17 03:10:08.213395: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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:10:11.488354: Tweak plan optimisation started metric 91.36p, cost 103.25p
2026-08-17 03:10:11.911582: Tweak optimisation finished metric 91.36p, cost 103.25p, metric_keep 0.1kWh, cycle 16.34kWh, carbon 0kg, import 5.18kWh, changed 8 window(s)
2026-08-17 03:10:11.939154: Swap charge optimisation started metric 91.36p, cost 103.25p, min_improvement_swap 0.1p
2026-08-17 03:10:12.384448: Swap charge optimisation finished metric 91.36p, cost 103.25p
2026-08-17 03:10:12.464476: Raw charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 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 81%, 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 91%, 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 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 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% ] reserve 1.12
2026-08-17 03:10:12.465378: Unclipped charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:10:12.465737: Unfiltered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:10:12.466034: Filtered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:10:12.516614: Previous plan best metric is 93.51 (cost 121.4) and new plan best metric is 91.36 (cost 103.25)
2026-08-17 03:10:12.516934: New plan metric is significantly better from previous plan, using new plan
2026-08-17 03:10:12.517048: Plan valid is now true after recompute was False
2026-08-17 03:10:12.555725: predict base end_record 08-18 03:30:00, final soc 10.56kWh, metric 227.21p, metric_keep 15.18kWh, min_soc 1.12kWh @ 08-17 23:10:00, load 14.78kWh, PV 0.0kWh
2026-08-17 03:10:12.731645: Battery has 20.0 hours left - now at 10.56kWh
2026-08-17 03:10:12.784534: predict base10 end_record 08-18 03:30:00, final soc 10.56kWh, metric 243.16p, metric_keep 24.15kWh, min_soc 1.12kWh @ 08-17 22:40:00, load 15.39kWh, PV 0.0kWh
2026-08-17 03:10:12.893089: predict best10 end_record 08-18 03:30:00, final soc 1.24kWh, metric 150.24p, metric_keep 1.66kWh, min_soc 1.24kWh @ 08-18 03:25:00, load 15.39kWh, PV 0.0kWh
2026-08-17 03:10:13.020254: predict best end_record 08-18 03:30:00, final soc 1.84kWh, metric 149.88p, metric_keep 0.1kWh, min_soc 1.84kWh @ 08-18 03:25:00, load 14.78kWh, PV 0.0kWh
2026-08-17 03:10:13.021613: Saving plan best values to HA entities
2026-08-17 03:10:13.275648: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:10:13.283290: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:10:13.293444: Best charging limit SoC's [10.5, 16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.18kWh, house 0kWh, export 0.0kWh, metric 149.88p, metric10 150.24p
2026-08-17 03:10:13.396800: Marginal costs baseline metric (no standing charge): 103.2451
2026-08-17 03:10:13.763467: Marginal energy costs matrix computed: min=2.62 max=20.15
2026-08-17 03:10:13.880920: Rate array import [{'start': 190, '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': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 190, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:10:13.881748: - Your estimated bill for today is £1.03 and tomorrow is £2.39
2026-08-17 03:10:13.881845: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:10:13.881906: - The battery is currently at 66% and is charging to 66% for the next 20 minutes.
2026-08-17 03:10:13.881944: - For the next 48 hours there will be no solar generation.
2026-08-17 03:10:13.881980: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 03:10:13.882014: - Your car is currently charging.
2026-08-17 03:10:13.882049: 
2026-08-17 03:10:13.958912: Plan calculation took 8.87 seconds
2026-08-17 03:10:13.959358: Inverter 0: Type SK Sunsynk
2026-08-17 03:10:13.959416: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:10:13.959676: Reserve min: 7%, battery_min: 7%
2026-08-17 03:10:13.959761: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:10:13.960170: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -535W, load power 531W, PV Power 0W
2026-08-17 03:10:13.960439: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:10:13.960552: Inverter 0 scheduled charge enable is True
2026-08-17 03:10:13.960608: 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-17 03:10:13.960722: Inverter 0 Charge settings: 08-17 00:00:00-08-17 04:00:00, limit 66.0%, power 5.0kW
2026-08-17 03:10:13.960866: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:10:13.961062: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:10:13.961145: Inverter 0 scheduled discharge enable is False
2026-08-17 03:10:13.961406: Inverter 0 idle time is 08-17 04:00:00-08-17 23:59:00
2026-08-17 03:10:13.961463: Inverter 0 discharge windows currently []
2026-08-17 03:10:13.961491: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:10:13.961511: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:10:13.961529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:10:14.056211: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:00:00
2026-08-17 03:10:14.056373: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:10:14.056562: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:10:14.056694: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:10:14.056891: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:10:14.057245: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:10:14.057341: Inverter 0 set new demand (idle) start time to 05:30:00 was 04:00:00
2026-08-17 03:10:19.069310: Inverter 0 write_and_poll_value: Wrote 05:30:00 to idle_start_time, successfully now 05:30:00
2026-08-17 03:10:24.079872: Inverter 0 write_and_poll_value: Wrote 05:30:00 to charge_end_time, successfully now 05:30:00
2026-08-17 03:10:24.080084: Inverter 0 Updated start and end charge window to 00:00:00 - 05:30:00 (old 00:00:00 - 04:00:00)
2026-08-17 03:10:24.080241: No export window planned
2026-08-17 03:10:24.080485: Inverter 0 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:10:24.080585: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:10:24.080927: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:10:24.081147: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:10:24.081269: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:10:24.081367: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:10:24.081551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.081938: 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 03:10:24.124568: 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 03:10:24.229850: 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 03:10:24.336102: 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 03:10:24.440355: 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 03:10:24.544812: 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 03:10:24.613543: 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 03:10:24.717684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.717835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.717933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.717978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.718033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.718089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.718156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:10:24.718260: Inverter 0 count register writes 0
2026-08-17 03:10:24.756678: Total inverter register writes now 848
2026-08-17 03:10:24.808813: Info: Completed run status Hold charging
2026-08-17 03:10:24.818548: Info: record_status Hold charging target 66%-66%
2026-08-17 03:10:24.828510: Saved current settings to /config/predbat_config.json
2026-08-17 03:10:24.829033: Compare, best tariff: current metric 104.68p
2026-08-17 03:11:03.991127: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:11:03.991397: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:11:03.991434: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:11:03.991565: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:11:03.991605: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:11:03.991625: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:11:03.991643: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:13:04.245472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:13:04.245765: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:13:04.245843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:13:04.246067: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:13:04.246203: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:13:04.246236: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:13:04.246263: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:14:56.207316: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 03:14:56.516594: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 03:15:00.494663: --------------- PredBat - update at 2026-08-17 03:15:00+01:00 with clock skew 0 minutes, minutes now 195
2026-08-17 03:15:00.495552: Saved current settings to /config/predbat_config.json
2026-08-17 03:15:00.496165: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 03:15:00.496276: 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:15:00.496411: 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:15:00.526942: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:15:00.527076: days_previous_auto enabled - will 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:15:00.527265: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:15:00.527798: 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:15:00.527926: Predbat mode is set to Control charge & discharge
2026-08-17 03:15:00.731229: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:15:00.731388: Using load_power data to fill gaps in load_today data
2026-08-17 03:15:01.465652: Processing 721 30-minute periods for power integration
2026-08-17 03:15:01.643310: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:15:01.643477: Car charging hold False, threshold 6.0kWh
2026-08-17 03:15:01.643565: Current data so far today: load 2.1kWh, import 1.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:15:01.659304: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:15:01.659408: 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 03:15:01.660008: Standing charge is set to 46.63p
2026-08-17 03:15:01.773512: 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:15:01.773808: 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:15:01.773988: 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:15:01.774172: 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:15:01.774364: 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:15:01.774529: 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:15:01.774693: Octopus: Intelligent slot at 08-17 00:30:00-08-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:15:01.774836: Octopus: Intelligent slot at 08-17 01:30:00-08-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:15:01.774982: Octopus: Intelligent slot at 08-17 02:00:00-08-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:15:01.775144: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775296: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775398: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775473: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775554: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775712: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:15:01.775765: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:15:01.780473: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:15:01.780877: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:15:01.817339: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:15:01.817471: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:15:01.818587: High export rate found rates in range 99p to -99p
2026-08-17 03:15:01.840407: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:15:01.840544: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:15:01.840596: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:15:01.855348: 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:15:01.855744: Last hour: net energy 0.85kWh, import 0.85kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 6.8p, import 6.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:15:01.914908: Today's energy total net 1.9kWh, import 1.9kWh, export 0.0kWh, cost 61.83p, import 15.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:15:01.915083: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:15:01.993676: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:15:02.020542: Today's load divergence 96.24%, in-day adjustment 72.17%, damping 0.95x, yesterday 68.37% today 96.43% blend 86.46%
2026-08-17 03:15:02.020665: Today's predicted so far 2.65kWh with 0.0kWh car/iBoost excluded, 0.25kWh import ignored, and 2.65kWh forecast extra.
2026-08-17 03:15:02.020700: Today's actual load so far 2.07kWh with 0.0kWh car/iBoost excluded, and 0.25kWh import ignored.
2026-08-17 03:15:02.070472: Inverter 0: Type SK Sunsynk
2026-08-17 03:15:02.070579: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:15:02.070840: Reserve min: 7%, battery_min: 7%
2026-08-17 03:15:02.070925: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:15:02.071218: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -523W, load power 522W, PV Power 0W
2026-08-17 03:15:02.071393: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:15:02.071483: Inverter 0 scheduled charge enable is True
2026-08-17 03:15:02.071527: 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:15:02.071622: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 03:15:02.071746: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:15:02.071781: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:15:02.071818: Inverter 0 scheduled discharge enable is False
2026-08-17 03:15:02.071946: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:15:02.071983: Inverter 0 discharge windows currently []
2026-08-17 03:15:02.072009: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:15:02.072063: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:15:02.072119: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:15:02.156787: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:15:02.156891: Plan was last updated on 2026-08-17 03:10:00+01:00 and is now 5.0 minutes old
2026-08-17 03:15:02.157216: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ]
2026-08-17 03:15:02.157274: Best export window [  ]
2026-08-17 03:15:02.158005: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:15:02.160569: Load divergence over 8.0 hours mean 533.71W, min 259.8W, max 1618.2W, std dev 351.03W, divergence 32.89%
2026-08-17 03:15:02.175891: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:15:02.176116: LoadML is_calculating False
2026-08-17 03:15:02.176214: Creating pool of 12 processes to match your CPU count
2026-08-17 03:15:02.307947: predict base end_record 08-18 03:35:00, final soc 10.56kWh, metric 221.19p, metric_keep 4.73kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.84kWh, PV 0.0kWh
2026-08-17 03:15:02.471056: Battery has 20.58 hours left - now at 10.56kWh
2026-08-17 03:15:02.520166: predict base10 end_record 08-18 03:35:00, final soc 10.56kWh, metric 227.78p, metric_keep 11.26kWh, min_soc 1.12kWh @ 08-17 23:25:00, load 15.45kWh, PV 0.0kWh
2026-08-17 03:15:02.621655: predict best10 end_record 08-18 03:35:00, final soc 1.56kWh, metric 153.11p, metric_keep 1.78kWh, min_soc 1.24kWh @ 08-18 03:25:00, load 15.45kWh, PV 0.0kWh
2026-08-17 03:15:02.717310: predict best end_record 08-18 03:35:00, final soc 2.23kWh, metric 153.3p, metric_keep 0.09kWh, min_soc 1.84kWh @ 08-18 03:25:00, load 14.84kWh, PV 0.0kWh
2026-08-17 03:15:02.717411: Saving plan best values to HA entities
2026-08-17 03:15:02.945166: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:15:02.953370: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:15:02.962001: Best charging limit SoC's [10.5, 16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.6kWh, house 0.0kWh, export 0.0kWh, metric 153.3p, metric10 153.11p
2026-08-17 03:15:03.075086: Marginal costs baseline metric (no standing charge): 106.6704
2026-08-17 03:15:03.420604: Marginal energy costs matrix computed: min=2.62 max=20.19
2026-08-17 03:15:03.522081: Rate array import [{'start': 195, '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': 1655, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 195, 'end': 1655, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:15:03.522832: - Your estimated bill for today is £1.03 and tomorrow is £2.40
2026-08-17 03:15:03.522911: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:15:03.522948: - The battery is currently at 66% and is charging to 66% for the next 15 minutes.
2026-08-17 03:15:03.522978: - For the next 48 hours there will be no solar generation.
2026-08-17 03:15:03.523006: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 03:15:03.523036: - Your car is currently charging.
2026-08-17 03:15:03.523064: 
2026-08-17 03:15:03.594728: Plan calculation took 1.44 seconds
2026-08-17 03:15:03.600011: No high rate period found
2026-08-17 03:15:03.702835: Import threshold used for optimisation was 8.0p
2026-08-17 03:15:03.788448: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 25: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0]
2026-08-17 03:15:03.799018: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:00:00
2026-08-17 03:15:03.799289: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:15:03.799605: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:15:03.799751: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:15:03.799990: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:15:03.800550: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:15:03.800756: No export window planned
2026-08-17 03:15:03.800901: Inverter 0 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:15:03.800941: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:15:03.801150: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:15:03.801250: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:15:03.801338: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:15:03.801428: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:15:03.801548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801774: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801813: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801840: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801879: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801906: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801936: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.801961: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:15:03.802263: Inverter 0 count register writes 0
2026-08-17 03:15:03.828062: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 03:15:03.836368: Total inverter register writes now 848
2026-08-17 03:15:03.891504: Info: Completed run status Hold charging
2026-08-17 03:15:03.900334: Info: record_status Hold charging target 66%-66%
2026-08-17 03:15:03.910453: Saved current settings to /config/predbat_config.json
2026-08-17 03:15:03.910836: Compare, best tariff: current metric 104.68p
2026-08-17 03:15:34.044942: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:15:34.045425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:15:34.045504: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:15:34.045719: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:15:34.045779: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:15:34.045811: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:15:34.045844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:16:07.743278: Info: HAHistory: Pruning history data started.
2026-08-17 03:16:07.747216: Info: HAHistory: Pruning history data completed.
2026-08-17 03:17:34.327842: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:17:34.328132: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:17:34.328176: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:17:34.328339: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:17:34.328381: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:17:34.328411: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:17:34.328451: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:19:48.603585: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:19:48.603966: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:19:48.604017: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:19:48.604160: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:19:48.604201: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:19:48.604223: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:19:48.604241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:20:00.706081: --------------- PredBat - update at 2026-08-17 03:20:00+01:00 with clock skew 0 minutes, minutes now 200
2026-08-17 03:20:00.707811: Saved current settings to /config/predbat_config.json
2026-08-17 03:20:00.708178: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 03:20:00.708477: 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:20:00.708674: 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:20:00.761780: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:20:00.761989: days_previous_auto enabled - will 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:20:00.762328: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:20:00.763138: 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:20:00.763403: Predbat mode is set to Control charge & discharge
2026-08-17 03:20:01.038254: Found 21602 load_today datapoints going back 27 days
2026-08-17 03:20:01.038480: Using load_power data to fill gaps in load_today data
2026-08-17 03:20:01.948070: Processing 721 30-minute periods for power integration
2026-08-17 03:20:02.163915: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:20:02.164105: Car charging hold False, threshold 6.0kWh
2026-08-17 03:20:02.164178: Current data so far today: load 2.15kWh, import 2.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:20:02.182560: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:20:02.182673: 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 03:20:02.183473: Standing charge is set to 46.63p
2026-08-17 03:20:02.293755: 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:20:02.294147: 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:20:02.294466: 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:20:02.294756: 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:20:02.295038: 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:20:02.295344: 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:20:02.295613: Octopus: Intelligent slot at 08-17 00:30:00-08-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:20:02.295829: Octopus: Intelligent slot at 08-17 01:30:00-08-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:20:02.296018: Octopus: Intelligent slot at 08-17 02:00:00-08-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:20:02.296193: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296401: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296507: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296582: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296689: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296859: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:20:02.296922: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:20:02.303457: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:20:02.304198: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:20:02.348518: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:20:02.348654: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:20:02.349882: High export rate found rates in range 99p to -99p
2026-08-17 03:20:02.377855: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:20:02.378004: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:20:02.378068: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:20:02.392031: 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:20:02.392411: Last hour: net energy 0.93kWh, import 0.93kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 7.4p, import 7.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:20:02.454081: Today's energy total net 2.0kWh, import 2.0kWh, export 0.0kWh, cost 62.63p, import 16.0p, export 0.0p, carbon 0.0kg
2026-08-17 03:20:02.454246: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:20:02.547508: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:20:02.578036: Today's load divergence 96.29%, in-day adjustment 72.27%, damping 0.95x, yesterday 68.37% today 96.48% blend 86.11%
2026-08-17 03:20:02.578188: Today's predicted so far 2.69kWh with 0.0kWh car/iBoost excluded, 0.28kWh import ignored, and 2.69kWh forecast extra.
2026-08-17 03:20:02.578243: Today's actual load so far 2.11kWh with 0.0kWh car/iBoost excluded, and 0.28kWh import ignored.
2026-08-17 03:20:02.644339: Inverter 0: Type SK Sunsynk
2026-08-17 03:20:02.644463: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:20:02.644737: Reserve min: 7%, battery_min: 7%
2026-08-17 03:20:02.644833: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:20:02.645168: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -514W, load power 512W, PV Power 0W
2026-08-17 03:20:02.645367: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:20:02.645460: Inverter 0 scheduled charge enable is True
2026-08-17 03:20:02.645505: 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:20:02.645596: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 03:20:02.645722: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:20:02.645759: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:20:02.645796: Inverter 0 scheduled discharge enable is False
2026-08-17 03:20:02.645915: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:20:02.645976: Inverter 0 discharge windows currently []
2026-08-17 03:20:02.646000: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:20:02.646020: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:20:02.646037: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:20:02.725889: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:20:02.726001: Plan was last updated on 2026-08-17 03:10:00+01:00 and is now 10.0 minutes old
2026-08-17 03:20:02.726314: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ]
2026-08-17 03:20:02.726360: Best export window [  ]
2026-08-17 03:20:02.727191: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:20:02.730694: Load divergence over 8.0 hours mean 536.78W, min 260.4W, max 1689.0W, std dev 348.81W, divergence 32.49%
2026-08-17 03:20:02.752067: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:20:02.752240: LoadML is_calculating False
2026-08-17 03:20:02.752367: Creating pool of 12 processes to match your CPU count
2026-08-17 03:20:02.896606: predict base end_record 08-18 03:40:00, final soc 10.56kWh, metric 222.11p, metric_keep 4.83kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.91kWh, PV 0.0kWh
2026-08-17 03:20:03.055997: Battery has 20.5 hours left - now at 10.56kWh
2026-08-17 03:20:03.105407: predict base10 end_record 08-18 03:40:00, final soc 10.56kWh, metric 228.96p, metric_keep 11.47kWh, min_soc 1.12kWh @ 08-17 23:20:00, load 15.52kWh, PV 0.0kWh
2026-08-17 03:20:03.189345: predict best10 end_record 08-18 03:40:00, final soc 1.88kWh, metric 156.75p, metric_keep 1.85kWh, min_soc 1.23kWh @ 08-18 03:25:00, load 15.52kWh, PV 0.0kWh
2026-08-17 03:20:03.282915: predict best end_record 08-18 03:40:00, final soc 2.61kWh, metric 157.5p, metric_keep 0.1kWh, min_soc 1.84kWh @ 08-18 03:25:00, load 14.91kWh, PV 0.0kWh
2026-08-17 03:20:03.283027: Saving plan best values to HA entities
2026-08-17 03:20:03.479681: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:20:03.486621: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:20:03.493494: Best charging limit SoC's [10.5, 16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 6.03kWh, house 0kWh, export 0.0kWh, metric 157.5p, metric10 156.75p
2026-08-17 03:20:03.567624: Marginal costs baseline metric (no standing charge): 110.8678
2026-08-17 03:20:03.860544: Marginal energy costs matrix computed: min=2.67 max=20.22
2026-08-17 03:20:03.933988: Rate array import [{'start': 200, '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': 1660, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 200, 'end': 1660, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:20:03.934487: - Your estimated bill for today is £1.03 and tomorrow is £2.40
2026-08-17 03:20:03.934535: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:20:03.934558: - The battery is currently at 66% and is charging to 66% for the next 10 minutes.
2026-08-17 03:20:03.934576: - For the next 48 hours there will be no solar generation.
2026-08-17 03:20:03.934594: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 03:20:03.934630: - Your car is currently charging.
2026-08-17 03:20:03.934648: 
2026-08-17 03:20:03.994973: Plan calculation took 1.27 seconds
2026-08-17 03:20:03.999541: No high rate period found
2026-08-17 03:20:04.056769: Import threshold used for optimisation was 8.0p
2026-08-17 03:20:04.120155: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 25: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0]
2026-08-17 03:20:04.128755: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:00:00
2026-08-17 03:20:04.128911: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:20:04.129198: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:20:04.129338: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:20:04.129521: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:20:04.129810: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:20:04.129956: No export window planned
2026-08-17 03:20:04.130095: Inverter 0 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:20:04.130133: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:20:04.130297: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:20:04.130396: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:20:04.130459: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:20:04.130530: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:20:04.130644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130883: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130947: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.130978: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131008: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131040: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131071: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131097: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:04.131378: Inverter 0 count register writes 0
2026-08-17 03:20:04.150738: 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:20:04.150940: Recompute is saving previous plan...
2026-08-17 03:20:04.151931: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 66% ]
2026-08-17 03:20:04.151986: Best export window [  ]
2026-08-17 03:20:04.152842: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:20:04.156053: Load divergence over 8.0 hours mean 536.78W, min 260.4W, max 1689.0W, std dev 348.81W, divergence 32.49%
2026-08-17 03:20:04.173827: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:20:04.173987: LoadML is_calculating False
2026-08-17 03:20:04.174067: Creating pool of 12 processes to match your CPU count
2026-08-17 03:20:04.281933: 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:20:04.283036: Optimise levels pass started at 2026-08-17 03:20:04
2026-08-17 03:20:04.283101: Optimise all windows, total charge 25 export 1
2026-08-17 03:20:04.986054: >> Region optimisation pass width 960 gives best_metric 241.26p, best_cost 239.61p, best_cycle 38.23kWh, best_import 22.12kWh
2026-08-17 03:20:05.178881: >> Region optimisation pass width 480 gives best_metric 241.26p, best_cost 239.61p, best_cycle 38.23kWh, best_import 22.12kWh
2026-08-17 03:20:05.521761: >> Region optimisation pass width 240 gives best_metric 241.26p, best_cost 239.61p, best_cycle 38.23kWh, best_import 22.12kWh
2026-08-17 03:20:06.764443: >> Region optimisation pass width 120 gives best_metric 236.08p, best_cost 246.06p, best_cycle 40.56kWh, best_import 22.93kWh
2026-08-17 03:20:06.764863: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 14
2026-08-17 03:20:06.765061: Optimise levels pass ended at 2026-08-17 03:20:06, duration 2.5 seconds tried 64 combinations
2026-08-17 03:20:06.765199: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 236.08p, best_keep 0.33kWh, best_cycle 40.56kWh, best_carbon 0kg, best_import 22.93kWh
2026-08-17 03:20:06.788900: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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:20:09.556255: Tweak plan optimisation started metric 91.54p, cost 103.37p
2026-08-17 03:20:09.897606: Tweak optimisation finished metric 91.54p, cost 103.37p, metric_keep 0.1kWh, cycle 16.35kWh, carbon 0kg, import 5.09kWh, changed 8 window(s)
2026-08-17 03:20:09.918109: Swap charge optimisation started metric 91.54p, cost 103.37p, min_improvement_swap 0.1p
2026-08-17 03:20:10.336376: Swap charge optimisation finished metric 91.54p, cost 103.37p
2026-08-17 03:20:10.424729: Raw charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 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 81%, 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 91%, 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 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 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% ] reserve 1.12
2026-08-17 03:20:10.425349: Unclipped charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:20:10.425657: Unfiltered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:20:10.425901: Filtered charge windows [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:20:10.477107: Previous plan best metric is 91.54 (cost 103.37) and new plan best metric is 91.54 (cost 103.37)
2026-08-17 03:20:10.477424: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:20:10.477633: Plan valid is now true after recompute was False
2026-08-17 03:20:10.525321: predict base end_record 08-18 03:30:00, final soc 10.56kWh, metric 221.28p, metric_keep 4.83kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.8kWh, PV 0.0kWh
2026-08-17 03:20:10.899469: Battery has 20.5 hours left - now at 10.56kWh
2026-08-17 03:20:10.949762: predict base10 end_record 08-18 03:30:00, final soc 10.56kWh, metric 228.09p, metric_keep 11.47kWh, min_soc 1.12kWh @ 08-17 23:20:00, load 15.41kWh, PV 0.0kWh
2026-08-17 03:20:11.041846: predict best10 end_record 08-18 03:30:00, final soc 1.23kWh, metric 150.33p, metric_keep 1.66kWh, min_soc 1.23kWh @ 08-18 03:25:00, load 15.41kWh, PV 0.0kWh
2026-08-17 03:20:11.160179: predict best end_record 08-18 03:30:00, final soc 1.84kWh, metric 150.01p, metric_keep 0.1kWh, min_soc 1.84kWh @ 08-18 03:25:00, load 14.8kWh, PV 0.0kWh
2026-08-17 03:20:11.160306: Saving plan best values to HA entities
2026-08-17 03:20:11.407671: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:20:11.414414: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:20:11.420906: Best charging limit SoC's [10.5, 16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.09kWh, house 0kWh, export 0.0kWh, metric 150.01p, metric10 150.33p
2026-08-17 03:20:11.501018: Marginal costs baseline metric (no standing charge): 103.3731
2026-08-17 03:20:11.778315: Marginal energy costs matrix computed: min=2.67 max=20.22
2026-08-17 03:20:11.902487: Rate array import [{'start': 200, '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': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 200, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:20:11.902921: - Your estimated bill for today is £1.03 and tomorrow is £2.40
2026-08-17 03:20:11.902967: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:20:11.902986: - The battery is currently at 66% and is charging to 66% for the next 10 minutes.
2026-08-17 03:20:11.903001: - For the next 48 hours there will be no solar generation.
2026-08-17 03:20:11.903014: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 03:20:11.903030: - Your car is currently charging.
2026-08-17 03:20:11.903044: 
2026-08-17 03:20:11.955273: Plan calculation took 7.80 seconds
2026-08-17 03:20:11.955642: Inverter 0: Type SK Sunsynk
2026-08-17 03:20:11.955684: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:20:11.955921: Reserve min: 7%, battery_min: 7%
2026-08-17 03:20:11.956061: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:20:11.956396: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -514W, load power 512W, PV Power 0W
2026-08-17 03:20:11.956650: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:20:11.956750: Inverter 0 scheduled charge enable is True
2026-08-17 03:20:11.956794: 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:20:11.956886: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 03:20:11.957053: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:20:11.957099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:20:11.957134: Inverter 0 scheduled discharge enable is False
2026-08-17 03:20:11.957246: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:20:11.957278: Inverter 0 discharge windows currently []
2026-08-17 03:20:11.957313: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:20:11.957330: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:20:11.957344: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:20:12.017528: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:00:00
2026-08-17 03:20:12.017649: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:20:12.017787: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:20:12.017856: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:20:12.017969: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:20:12.018124: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:20:12.026767: No export window planned
2026-08-17 03:20:12.026993: Inverter 0 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:20:12.027035: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:20:12.027219: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:20:12.027319: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:20:12.027382: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:20:12.027435: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:20:12.027538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027748: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027777: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027798: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027822: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027843: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027871: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027892: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.027989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.028011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.028031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.028050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.028070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:20:12.028087: Inverter 0 count register writes 0
2026-08-17 03:20:12.051466: Total inverter register writes now 848
2026-08-17 03:20:12.089039: Info: Completed run status Hold charging
2026-08-17 03:20:12.095947: Info: record_status Hold charging target 66%-66%
2026-08-17 03:20:12.105323: Saved current settings to /config/predbat_config.json
2026-08-17 03:20:12.105717: Compare, best tariff: current metric 104.68p
2026-08-17 03:20:49.233797: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:20:49.234188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:20:49.234245: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:20:49.234457: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:20:49.234505: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:20:49.234527: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:20:49.234553: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:23:03.511128: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:23:03.511457: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:23:03.511496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:23:03.511659: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:23:03.511749: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:23:03.511772: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:23:03.511791: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:25:00.751920: --------------- PredBat - update at 2026-08-17 03:25:00+01:00 with clock skew 0 minutes, minutes now 205
2026-08-17 03:25:00.752853: Saved current settings to /config/predbat_config.json
2026-08-17 03:25:00.753047: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 03:25:00.753175: 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:25:00.753276: 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:25:00.779411: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:25:00.779547: days_previous_auto enabled - will 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:25:00.779763: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:25:00.780294: 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:25:00.780432: Predbat mode is set to Control charge & discharge
2026-08-17 03:25:00.996148: Found 21602 load_today datapoints going back 27 days
2026-08-17 03:25:00.996335: Using load_power data to fill gaps in load_today data
2026-08-17 03:25:01.910258: Processing 721 30-minute periods for power integration
2026-08-17 03:25:02.111038: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:25:02.111270: Car charging hold False, threshold 6.0kWh
2026-08-17 03:25:02.111410: Current data so far today: load 2.2kWh, import 2.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:25:02.133162: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:25:02.133309: 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 03:25:02.134270: Standing charge is set to 46.63p
2026-08-17 03:25:02.248914: 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:25:02.249337: 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:25:02.249809: 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:25:02.250128: 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:25:02.250415: 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:25:02.250632: 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:25:02.250827: Octopus: Intelligent slot at 08-17 00:30:00-08-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:25:02.251008: Octopus: Intelligent slot at 08-17 01:30:00-08-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:25:02.251215: Octopus: Intelligent slot at 08-17 02:00:00-08-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:25:02.251421: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.251688: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.251824: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.251916: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.252056: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.252332: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:25:02.252511: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:25:02.258701: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:25:02.259150: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:25:02.299720: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:25:02.299863: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:25:02.300929: High export rate found rates in range 99p to -99p
2026-08-17 03:25:02.322589: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:25:02.322726: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:25:02.322780: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:25:02.338374: 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:25:02.338826: Last hour: net energy 0.9kWh, import 0.9kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 7.2p, import 7.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:25:02.399676: Today's energy total net 2.0kWh, import 2.0kWh, export 0.0kWh, cost 62.63p, import 16.0p, export 0.0p, carbon 0.0kg
2026-08-17 03:25:02.399915: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:25:02.476784: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:25:02.500429: Today's load divergence 96.42%, in-day adjustment 72.39%, damping 0.95x, yesterday 68.37% today 96.59% blend 85.76%
2026-08-17 03:25:02.500578: Today's predicted so far 2.72kWh with 0.0kWh car/iBoost excluded, 0.3kWh import ignored, and 2.72kWh forecast extra.
2026-08-17 03:25:02.500620: Today's actual load so far 2.16kWh with 0.0kWh car/iBoost excluded, and 0.3kWh import ignored.
2026-08-17 03:25:02.550636: Inverter 0: Type SK Sunsynk
2026-08-17 03:25:02.550726: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:25:02.550910: Reserve min: 7%, battery_min: 7%
2026-08-17 03:25:02.550981: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:25:02.551244: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -507W, load power 507W, PV Power 0W
2026-08-17 03:25:02.551428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:25:02.551541: Inverter 0 scheduled charge enable is True
2026-08-17 03:25:02.551587: 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:25:02.551675: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 03:25:02.551797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:25:02.551833: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:25:02.551870: Inverter 0 scheduled discharge enable is False
2026-08-17 03:25:02.551988: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:25:02.552023: Inverter 0 discharge windows currently []
2026-08-17 03:25:02.552046: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:25:02.552069: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:25:02.552086: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:25:02.642064: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:25:02.642178: Plan was last updated on 2026-08-17 03:20:00+01:00 and is now 5.0 minutes old
2026-08-17 03:25:02.642491: Best charge window [ 17-08 03:00:00 - 17-08 03:30:00 @ 8.0p 66%, 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ]
2026-08-17 03:25:02.642536: Best export window [  ]
2026-08-17 03:25:02.643473: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:25:02.646639: Load divergence over 8.0 hours mean 540.02W, min 260.4W, max 1688.4W, std dev 342.42W, divergence 31.7%
2026-08-17 03:25:02.668290: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:25:02.668439: LoadML is_calculating False
2026-08-17 03:25:02.668516: Creating pool of 12 processes to match your CPU count
2026-08-17 03:25:02.797094: predict base end_record 08-18 03:35:00, final soc 10.56kWh, metric 221.45p, metric_keep 5.01kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.88kWh, PV 0.0kWh
2026-08-17 03:25:02.943190: Battery has 20.42 hours left - now at 10.56kWh
2026-08-17 03:25:02.997181: predict base10 end_record 08-18 03:35:00, final soc 10.56kWh, metric 228.66p, metric_keep 11.67kWh, min_soc 1.12kWh @ 08-17 23:20:00, load 15.48kWh, PV 0.0kWh
2026-08-17 03:25:03.098202: predict best10 end_record 08-18 03:35:00, final soc 1.55kWh, metric 153.21p, metric_keep 1.82kWh, min_soc 1.22kWh @ 08-18 03:25:00, load 15.48kWh, PV 0.0kWh
2026-08-17 03:25:03.190183: predict best end_record 08-18 03:35:00, final soc 2.21kWh, metric 153.44p, metric_keep 0.11kWh, min_soc 1.83kWh @ 08-18 03:25:00, load 14.88kWh, PV 0.0kWh
2026-08-17 03:25:03.190283: Saving plan best values to HA entities
2026-08-17 03:25:03.401076: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:25:03.408633: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:25:03.415848: Best charging limit SoC's [10.5, 16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.52kWh, house 0.0kWh, export 0.0kWh, metric 153.44p, metric10 153.21p
2026-08-17 03:25:03.501605: Marginal costs baseline metric (no standing charge): 106.8032
2026-08-17 03:25:03.863367: Marginal energy costs matrix computed: min=2.74 max=20.29
2026-08-17 03:25:03.960363: Rate array import [{'start': 205, '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': 1655, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 205, 'end': 1655, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:25:03.960913: - Your estimated bill for today is £1.03 and tomorrow is £2.41
2026-08-17 03:25:03.961023: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:25:03.961066: - The battery is currently at 66% and is charging to 66% for the next 5 minutes.
2026-08-17 03:25:03.961118: - For the next 48 hours there will be no solar generation.
2026-08-17 03:25:03.961160: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 03:25:03.961182: - Your car is currently charging.
2026-08-17 03:25:03.961200: 
2026-08-17 03:25:04.028058: Plan calculation took 1.39 seconds
2026-08-17 03:25:04.033286: No high rate period found
2026-08-17 03:25:04.104345: Import threshold used for optimisation was 8.0p
2026-08-17 03:25:04.169130: Low import rate windows [0: 08-17 03:00:00 - 08-17 03:30:00 @ 8.0, 1: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 2: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 3: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 4: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 5: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 6: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 7: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 8: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 9: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 10: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 11: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 12: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 13: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 14: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 15: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 16: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 17: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 18: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 19: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 20: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 21: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 22: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 23: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 24: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 25: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0]
2026-08-17 03:25:04.176121: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:00:00
2026-08-17 03:25:04.176246: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 66%
2026-08-17 03:25:04.176432: Inverter 0 Target SoC 66%, (this inverter 66%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:25:04.176527: Inverter 0 Hold charging as SoC 66% is above target SoC 66% (global soc target 66%) set_discharge_during_charge True
2026-08-17 03:25:04.176668: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:25:04.176888: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:25:04.177037: No export window planned
2026-08-17 03:25:04.177162: Inverter 0 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:25:04.177194: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:25:04.177315: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:25:04.177410: Inverter 0 setting charging SoC to 66% as per target
2026-08-17 03:25:04.177469: Inverter 0 adjust target SoC for charge to 66% (10.56kWh/16.0kWh 16.0kWh) based on going from 66% -> 66% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 10.56kWh
2026-08-17 03:25:04.177530: Inverter 0 Current Target SoC is 66%, already at target
2026-08-17 03:25:04.177629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177851: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177882: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177905: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177934: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177954: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.177980: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178000: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:25:04.178282: Inverter 0 count register writes 0
2026-08-17 03:25:04.201163: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 03:25:04.210147: Total inverter register writes now 848
2026-08-17 03:25:04.251045: Info: Completed run status Hold charging
2026-08-17 03:25:04.257515: Info: record_status Hold charging target 66%-66%
2026-08-17 03:25:04.265876: Saved current settings to /config/predbat_config.json
2026-08-17 03:25:04.266268: Compare, best tariff: current metric 104.68p
2026-08-17 03:25:48.873568: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:25:48.874000: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:25:48.874073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:25:48.874309: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:25:48.874370: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:25:48.874432: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:25:48.874476: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:26:01.226411: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 03:26:02.435881: Processing 1297 30-minute periods for power integration
2026-08-17 03:26:02.543781: ML Component: Car charging hold False, car energy reported load False
2026-08-17 03:26:02.653350: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:26:02.760351: ML Temperature data points: 48756
2026-08-17 03:26:03.046755: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 03:26:03.098408: ML Component: Data fetch completed, load data age 58.0 days, 16865 data points
2026-08-17 03:26:03.098543: ML Component: No training needed, model age is 0.57 hours
2026-08-17 03:26:03.098622: ML Component: Generating predictions load data age 58.0 days, 16865 data points
2026-08-17 03:26:03.268204: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0484 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:26:12.261679: ML Component: Generated 576 predictions (total 24.03 kWh over 48h)
2026-08-17 03:26:12.296469: ML Component: Prediction cycle completed
2026-08-17 03:26:12.407598: ML Component: Saved 16865 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 03:27:49.053215: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:27:49.053516: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:27:49.053563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:27:49.053699: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:27:49.053739: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:27:49.053759: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:27:49.053777: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:29:49.280071: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:29:49.280336: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:29:49.280379: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:29:49.280548: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:29:49.280590: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:29:49.280611: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:29:49.280629: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:30:00.379706: --------------- PredBat - update at 2026-08-17 03:30:00+01:00 with clock skew 0 minutes, minutes now 210
2026-08-17 03:30:00.380484: Saved current settings to /config/predbat_config.json
2026-08-17 03:30:00.380649: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 03:30:00.380746: 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:30:00.380887: 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:30:00.403601: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:30:00.403730: days_previous_auto enabled - will 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:30:00.403941: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:30:00.404473: 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:30:00.404624: Predbat mode is set to Control charge & discharge
2026-08-17 03:30:00.609918: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:30:00.610053: Using load_power data to fill gaps in load_today data
2026-08-17 03:30:01.288344: Processing 721 30-minute periods for power integration
2026-08-17 03:30:01.448179: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:30:01.448300: Car charging hold False, threshold 6.0kWh
2026-08-17 03:30:01.448339: Current data so far today: load 2.25kWh, import 2.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:30:01.461616: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:30:01.461704: 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 03:30:01.462291: Standing charge is set to 46.63p
2026-08-17 03:30:01.555878: 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:30:01.556180: 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:30:01.556426: 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:30:01.556673: 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:30:01.556919: 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:30:01.557169: 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:30:01.557393: Octopus: Intelligent slot at 08-17 00:30:00-08-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:30:01.557606: Octopus: Intelligent slot at 08-17 01:30:00-08-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:30:01.557766: Octopus: Intelligent slot at 08-17 02:00:00-08-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:30:01.557915: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558060: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558141: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 8.0, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558200: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558262: Octopus: Intelligent slot at 08-17 03:00:00-08-17 05:00:00, assumed price 33.75, amount 14.8, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558426: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.87, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:30:01.558522: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:30:01.563099: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:30:01.563432: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:30:01.598460: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:30:01.598587: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:30:01.599586: High export rate found rates in range 99p to -99p
2026-08-17 03:30:01.620140: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:30:01.620270: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:30:01.620324: Car 0 charging plan is: [{'start': 180, 'end': 300, 'kwh': 14.8, 'average': 8.0, 'cost': 118.4, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.8665, 'average': 8.0, 'cost': 6.93, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:30:01.634510: 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:30:01.634802: Last hour: net energy 0.9kWh, import 0.9kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 7.2p, import 7.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:30:01.698830: 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:30:01.698991: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:30:01.766814: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:30:01.784914: Today's load divergence 96.01%, in-day adjustment 72.43%, damping 0.95x, yesterday 68.37% today 96.21% blend 85.42%
2026-08-17 03:30:01.785024: Today's predicted so far 2.85kWh with 0.0kWh car/iBoost excluded, 0.31kWh import ignored, and 2.85kWh forecast extra.
2026-08-17 03:30:01.785053: Today's actual load so far 2.23kWh with 0.0kWh car/iBoost excluded, and 0.31kWh import ignored.
2026-08-17 03:30:01.822590: Inverter 0: Type SK Sunsynk
2026-08-17 03:30:01.822676: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:30:01.822871: Reserve min: 7%, battery_min: 7%
2026-08-17 03:30:01.822945: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:30:01.823229: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -535W, load power 532W, PV Power 0W
2026-08-17 03:30:01.823405: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:30:01.823513: Inverter 0 scheduled charge enable is True
2026-08-17 03:30:01.823576: 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:30:01.823686: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 66.0%, power 5.0kW
2026-08-17 03:30:01.823831: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:30:01.823867: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:30:01.823904: Inverter 0 scheduled discharge enable is False
2026-08-17 03:30:01.824064: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:30:01.824100: Inverter 0 discharge windows currently []
2026-08-17 03:30:01.824119: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:30:01.824147: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:30:01.824175: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:30:01.892892: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:30:01.893036: Plan was last updated on 2026-08-17 03:20:00+01:00 and is now 10.0 minutes old
2026-08-17 03:30:01.893103: Current charge window has expired, removing it
2026-08-17 03:30:01.893349: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ]
2026-08-17 03:30:01.893399: Best export window [  ]
2026-08-17 03:30:01.894107: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:30:01.896672: Load divergence over 8.0 hours mean 541.84W, min 262.2W, max 1598.4W, std dev 339.05W, divergence 31.29%
2026-08-17 03:30:01.911613: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:30:01.911738: LoadML is_calculating False
2026-08-17 03:30:01.911815: Creating pool of 12 processes to match your CPU count
2026-08-17 03:30:02.024781: predict base end_record 08-18 03:40:00, final soc 10.56kWh, metric 222.59p, metric_keep 5.02kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.97kWh, PV 0.0kWh
2026-08-17 03:30:02.172735: Battery has 20.33 hours left - now at 10.56kWh
2026-08-17 03:30:02.221595: predict base10 end_record 08-18 03:40:00, final soc 10.56kWh, metric 229.96p, metric_keep 11.75kWh, min_soc 1.12kWh @ 08-17 23:20:00, load 15.58kWh, PV 0.0kWh
2026-08-17 03:30:02.310853: predict best10 end_record 08-18 03:40:00, final soc 1.84kWh, metric 156.92p, metric_keep 2.03kWh, min_soc 1.19kWh @ 08-18 03:25:00, load 15.58kWh, PV 0.0kWh
2026-08-17 03:30:02.396140: predict best end_record 08-18 03:40:00, final soc 2.57kWh, metric 157.69p, metric_keep 0.14kWh, min_soc 1.8kWh @ 08-18 03:25:00, load 14.97kWh, PV 0.0kWh
2026-08-17 03:30:02.396245: Saving plan best values to HA entities
2026-08-17 03:30:02.592031: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:30:02.598788: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:30:02.605690: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.95kWh, house 0kWh, export 0.0kWh, metric 157.69p, metric10 156.92p
2026-08-17 03:30:02.690861: Marginal costs baseline metric (no standing charge): 111.0598
2026-08-17 03:30:02.981986: Marginal energy costs matrix computed: min=2.96 max=20.32
2026-08-17 03:30:03.070023: Rate array import [{'start': 210, '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': 1660, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 210, 'end': 1660, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:30:03.070654: - Your estimated bill for today is £1.04 and tomorrow is £2.41
2026-08-17 03:30:03.070718: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:30:03.071304: - The battery is currently at 66% and is charging to 81% for the next 30 minutes.
2026-08-17 03:30:03.071347: - For the next 48 hours there will be no solar generation.
2026-08-17 03:30:03.071367: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 03:30:03.071385: - Your car is currently charging.
2026-08-17 03:30:03.071402: 
2026-08-17 03:30:03.123931: Plan calculation took 1.23 seconds
2026-08-17 03:30:03.127493: No high rate period found
2026-08-17 03:30:03.182105: Import threshold used for optimisation was 8.0p
2026-08-17 03:30:03.240499: 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]
2026-08-17 03:30:03.246901: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:30:03.247031: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 03:30:03.247216: 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:30:03.247487: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:30:03.247767: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:30:03.247914: No export window planned
2026-08-17 03:30:03.248169: Inverter 0 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:30:03.248231: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:30:03.248467: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:30:03.248625: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-17 03:30:08.255940: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-17 03:30:13.360546: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-17 03:30:13.360703: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:30:13.360766: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:30:13.360910: Inverter 0 Current charge limit is 66% and new target is 100%
2026-08-17 03:30:18.461223: Inverter 0 write_and_poll_value: Wrote 100 to charge_limit, successfully now 100.0
2026-08-17 03:30:18.461524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:18.461816: 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 03:30:18.550268: 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 03:30:18.650300: 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 03:30:18.695478: 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 03:30:18.799247: 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 03:30:18.903107: 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 03:30:19.008265: 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 03:30:19.076398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:19.076710: Inverter 0 count register writes 2
2026-08-17 03:30:19.095277: 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:30:19.095486: Recompute is saving previous plan...
2026-08-17 03:30:19.096419: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 66%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 66%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 66%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 66%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 66%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 66%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 66%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 66%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 66%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 66%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 66%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 66%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 66%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 66%, 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 66%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 66%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 66%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 66%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 66%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 66%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 66%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 66%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 66%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 66% ]
2026-08-17 03:30:19.096484: Best export window [  ]
2026-08-17 03:30:19.097355: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:30:19.100555: Load divergence over 8.0 hours mean 541.84W, min 262.2W, max 1598.4W, std dev 339.05W, divergence 31.29%
2026-08-17 03:30:19.118290: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.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:30:19.118420: LoadML is_calculating False
2026-08-17 03:30:19.118506: Creating pool of 12 processes to match your CPU count
2026-08-17 03:30:19.210885: 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:30:19.211884: Optimise levels pass started at 2026-08-17 03:30:19
2026-08-17 03:30:19.211950: Optimise all windows, total charge 25 export 1
2026-08-17 03:30:19.884838: >> Region optimisation pass width 960 gives best_metric 243.29p, best_cost 241.06p, best_cycle 38.27kWh, best_import 22.2kWh
2026-08-17 03:30:20.063142: >> Region optimisation pass width 480 gives best_metric 243.29p, best_cost 241.06p, best_cycle 38.27kWh, best_import 22.2kWh
2026-08-17 03:30:20.358022: >> Region optimisation pass width 240 gives best_metric 243.29p, best_cost 241.06p, best_cycle 38.27kWh, best_import 22.2kWh
2026-08-17 03:30:21.197905: >> Region optimisation pass width 120 gives best_metric 237.68p, best_cost 246.53p, best_cycle 40.72kWh, best_import 22.89kWh
2026-08-17 03:30:21.198113: Calculated end_record as 08-18 03:30:00 based on best_price 8.0p, next_charge_start 08-17 03:30:00, max_windows 13
2026-08-17 03:30:21.198401: Optimise levels pass ended at 2026-08-17 03:30:21, duration 2.0 seconds tried 61 combinations
2026-08-17 03:30:21.198519: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 237.68p, best_keep 0.56kWh, best_cycle 40.72kWh, best_carbon 0kg, best_import 22.89kWh
2026-08-17 03:30:21.215203: Starting detailed optimisation end_record 08-18 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, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 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:30:23.386363: Tweak plan optimisation started metric 92.01p, cost 103.55p
2026-08-17 03:30:23.715728: Tweak optimisation finished metric 92.01p, cost 103.55p, metric_keep 0.14kWh, cycle 16.38kWh, carbon 0kg, import 5.01kWh, changed 8 window(s)
2026-08-17 03:30:23.735720: Swap charge optimisation started metric 92.01p, cost 103.55p, min_improvement_swap 0.1p
2026-08-17 03:30:23.932362: Swap charge optimisation finished metric 92.01p, cost 103.55p
2026-08-17 03:30:23.979100: 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 81%, 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 91%, 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 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 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% ] reserve 1.12
2026-08-17 03:30:23.979512: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:30:23.979792: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:30:23.980012: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:30:24.011404: Previous plan best metric is 92.01 (cost 103.55) and new plan best metric is 92.01 (cost 103.55)
2026-08-17 03:30:24.011627: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:30:24.011804: Plan valid is now true after recompute was False
2026-08-17 03:30:24.038435: predict base end_record 08-18 03:30:00, final soc 10.56kWh, metric 221.74p, metric_keep 5.02kWh, min_soc 1.12kWh @ 08-17 23:50:00, load 14.86kWh, PV 0.0kWh
2026-08-17 03:30:24.148604: Battery has 20.33 hours left - now at 10.56kWh
2026-08-17 03:30:24.186593: predict base10 end_record 08-18 03:30:00, final soc 10.56kWh, metric 229.07p, metric_keep 11.75kWh, min_soc 1.12kWh @ 08-17 23:20:00, load 15.47kWh, PV 0.0kWh
2026-08-17 03:30:24.258423: predict best10 end_record 08-18 03:30:00, final soc 1.19kWh, metric 150.48p, metric_keep 1.82kWh, min_soc 1.19kWh @ 08-18 03:25:00, load 15.47kWh, PV 0.0kWh
2026-08-17 03:30:24.327072: predict best end_record 08-18 03:30:00, final soc 1.8kWh, metric 150.18p, metric_keep 0.14kWh, min_soc 1.8kWh @ 08-18 03:25:00, load 14.86kWh, PV 0.0kWh
2026-08-17 03:30:24.327163: Saving plan best values to HA entities
2026-08-17 03:30:24.474954: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:30:24.480402: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:30:24.486301: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.01kWh, house 0kWh, export 0.0kWh, metric 150.18p, metric10 150.48p
2026-08-17 03:30:24.560637: Marginal costs baseline metric (no standing charge): 103.5491
2026-08-17 03:30:24.840114: Marginal energy costs matrix computed: min=2.96 max=20.32
2026-08-17 03:30:24.906796: Rate array import [{'start': 210, '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': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 210, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:30:24.907263: - Your estimated bill for today is £1.04 and tomorrow is £2.41
2026-08-17 03:30:24.907324: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:30:24.907366: - The battery is currently at 66% and is charging to 81% for the next 30 minutes.
2026-08-17 03:30:24.907402: - For the next 48 hours there will be no solar generation.
2026-08-17 03:30:24.907460: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 03:30:24.907487: - Your car is currently charging.
2026-08-17 03:30:24.907505: 
2026-08-17 03:30:24.960288: Plan calculation took 5.86 seconds
2026-08-17 03:30:24.960669: Inverter 0: Type SK Sunsynk
2026-08-17 03:30:24.960720: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:30:24.961016: Reserve min: 7%, battery_min: 7%
2026-08-17 03:30:24.961112: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, 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:30:24.961500: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power -6W, current battery voltage 51.2V, grid power -540W, load power 533W, PV Power 0W
2026-08-17 03:30:24.961746: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:30:24.961855: Inverter 0 scheduled charge enable is True
2026-08-17 03:30:24.961909: 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:30:24.962002: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:30:24.962127: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:30:24.962168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:30:24.962206: Inverter 0 scheduled discharge enable is False
2026-08-17 03:30:24.962338: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:30:24.962376: Inverter 0 discharge windows currently []
2026-08-17 03:30:24.962398: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:30:24.962420: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:30:24.962438: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:30:25.023188: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:30:25.023321: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 03:30:25.023473: 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:30:25.023641: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:30:25.023834: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:30:25.023926: No export window planned
2026-08-17 03:30:25.024038: Inverter 0 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:30:25.024074: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:30:25.024212: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:30:25.024322: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:30:25.024367: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:30:25.024416: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:30:25.024539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024771: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024866: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024901: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.024927: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025010: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025051: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:30:25.025294: Inverter 0 count register writes 0
2026-08-17 03:30:25.050745: Total inverter register writes now 850
2026-08-17 03:30:25.090390: Info: Completed run status Charging
2026-08-17 03:30:25.414246: Info: record_status Charging target 66%-100.0%
2026-08-17 03:30:25.422264: Saved current settings to /config/predbat_config.json
2026-08-17 03:30:25.422604: Compare, best tariff: current metric 104.68p
2026-08-17 03:31:03.540065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:31:03.540338: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:31:03.540374: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:31:03.540565: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:31:03.540633: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:31:03.540655: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:31:03.540673: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:33:03.752771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:33:03.753111: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:33:03.753205: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:33:03.753695: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:33:03.753753: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:33:03.753778: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:33:03.753796: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:35:00.971278: --------------- PredBat - update at 2026-08-17 03:35:00+01:00 with clock skew 0 minutes, minutes now 215
2026-08-17 03:35:00.972057: Saved current settings to /config/predbat_config.json
2026-08-17 03:35:00.972209: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 03:35:00.972322: 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:00.972398: 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:00.992118: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:35:00.992245: days_previous_auto enabled - will 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:00.992414: Warn: calculate_pv90_plan is Off so forcing pv_metric90_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:00.992989: 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:00.993119: Predbat mode is set to Control charge & discharge
2026-08-17 03:35:01.190589: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:35:01.190758: Using load_power data to fill gaps in load_today data
2026-08-17 03:35:02.043814: Processing 721 30-minute periods for power integration
2026-08-17 03:35:02.203713: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:35:02.203844: Car charging hold False, threshold 6.0kWh
2026-08-17 03:35:02.203886: Current data so far today: load 2.3kWh, import 2.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:35:02.217736: 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:02.217821: 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:02.218671: Standing charge is set to 46.63p
2026-08-17 03:35:02.305549: 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:02.305797: 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:02.305971: 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:02.306130: 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:02.306281: 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:02.306433: 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:02.306602: Octopus: Intelligent slot at 08-17 00:30:00-08-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:02.306748: Octopus: Intelligent slot at 08-17 01:30:00-08-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:02.306889: Octopus: Intelligent slot at 08-17 02:00:00-08-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:02.307092: 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:02.307280: 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:02.307387: 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:02.307459: 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:02.307616: 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:02.307670: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:35:02.313112: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:35:02.313633: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:35:02.349973: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:35:02.350097: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:35:02.351316: High export rate found rates in range 99p to -99p
2026-08-17 03:35:02.373613: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:35:02.373751: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:35:02.373823: 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:02.389662: 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